月计算机二级c语言上机题库.doc
《月计算机二级c语言上机题库.doc》由会员分享,可在线阅读,更多相关《月计算机二级c语言上机题库.doc(477页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流月计算机二级c语言上机题库.精品文档.2012年3月计算机二级c语言上机题库.第1套填空题请补充FUN函数,FUN函数的功能是求10的阶乘。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序: #include long fun(int n)if (_1_)return (n*fun(_2_);return _3_;main()printf(10!=%ldn, fun(10);第1处填空:n1或1n第2处填空:n-1第3处填空:1或11或1L改错题下列给定程序的
2、功能是:读入一个整数K(2=K=10000),打印它的所有因子(即所有为素数的因子)。例如,若输入整数2310,则应输出:2、3、5、7、11。请改正程序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序: #include #include /*found*/IsPrime(int n);int i, m;m = 1;/*found*/for (i=2; in; i+)if !(n%i)m = 0;break;return(m);main()int j, k;printf(nplease enter an integer number
3、 between 2 and 10000:);scanf(%d, &k);printf(nnThe prime factor(s) of %d is(are):, k);for (j=2; jk; j+)if (!(k%j) & (IsPrime(j)printf( %4d, j);printf(n);第1处:Isprime(int n);应改为Isprime(int n)第2处:if !(n%i)应该为if(!(n%i)编程题M个人的成绩存放在score数组中,请编写函数fun,它的功能是:返回低于平均分的认输,并将低于平均分的分数放在below所指的数组中。例如,当score数组中的数据为
4、10、20、30、40、50、60、70、80、90时,函数返回的认输应该是4,below中的数据应我10、20、30、40。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序: #include #include #include int fun(int score,int m, int below)main()int i,n,below9;int score9=10,20,30,40,50,60,70,80,90;FILE *out;n=fun(score,9,below);printf(nBelow the av
5、erage score are :);out=fopen(out.dat, w);for(i=0;in;i+) printf(%d ,belowi);fprintf(out, %dn, belowi);fclose(out);答案是: int fun(int score, int m, int below) int I, k=0,aver=0; for(i=0;im;i+) aver+=scorei;aver/=m;for(i=0;im;i+)if(scoreiaver) belowk=scorei; k+;return k;第2套填空题请在函数FUN的横线上填写若干表达式,使从键盘上输入一个
6、整数N,输出斐波纳契数列。斐波纳契数列是一种整数数列,其中每数等于前面两数之和,如:0 1 1 2 3 5 8 13.请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#include int fun(int n);main()int i, n = 0;scanf(%d, &n);for (i=0; in; i+)printf(%d , fun(i);int fun(int n)if (_1_)return 0;else if (_2_)return 1;elsereturn _3_;第1处填空:n=0或0=n或!n第2处填空:n=1或
7、1=n第3处填空:fun(n-1)+fun(n-2)或fun(n-2)+fun(n-1)改错题下列给定程序中,函数FUN的功能是:逐个比较a、b两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到c数组中,形成一个新的字符串。例如,若a中的字符串为aBCDeFgH,b中的字符串为:ABcd,则c中的字符串应为:aBcdeFgH。请改正程序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序: #include #include void fun(char *p, char *q, char *c)/*found*/int k
8、 = 1;/*found*/while (*p != *q)if (*p *q)ck = *q;elseck = *p;if (*p)p+;if (*q)q+;k+;main()char a10 = aBCDeFgH, b10 = ABcd, c80 = 0;fun(a, b, c);printf(The string a:);puts(a);printf(The string b:);puts(b);printf(The result:);put s(c);第1处:int k=1应改为int k=0;第2处:while(*p!=*q)应改为while(*p|*q)编程题请编写函数fun,它的
9、功能是:求出1到1000之内能被7或11整除、但不能同时被7或11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include #include void fun(int *a,int *n)main()int aa1000,n,k;FILE *out;fun(aa,&n);out=fopen(out.dat, w);for(k=0;kn;k+)if(k+1)%10=0)printf(%5dn,aak);fprintf(out, %dn, aak
10、);elseprintf(%5d,aak);fprintf(out, %d, aak);fclose(out);答案是:void fun(int *a,int *n) int i,j=0; for(i=2;i1000;i+)if( (i%7=0|i%11=0)&i%77!=0)aj+=i;*n=j;第3套填空题请补充函数FUN(CHAR *S),该函数的功能是把字符串中的内容逆置.例如:字符串中原有的字符串为abcde,则调用该函数后,串中的内容为edcba.请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#include #incl
11、ude #include #define N 81void fun(char *s)int i, n = strlen(s)-1;char t;for (i=0; in; i+, _1_)t = si;_2_;_3_;main()char aN;printf(Enter a string:);gets(a);printf(The original string is:);puts(a);fun(a);printf(n);printf(The string after modified:);puts(a);第1处填空:n-或-n或n-=1或n=n-1第2处填空:si=sn或*(s+i)=*(s+
12、n)第3处填空:sn=t或*(s+n)=t改错题下列给定的程序中,函数fun的功能是:依次取出字符串中所以数字字符,形成新的字符串,并取代原字符串。请改正函数fun中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include #include void fun(char *s)int i, j;/*found*/for (i=0, j=0; si!=0; i+)if (sj=0 & si=9)sj = si;/*found*/sj = 0;main()char item80;printf(nEnter a string :);g
13、ets(item);printf(nnThe string is : %sn, item);fun(item);printf(nnThe string of changing is : %sn, item);第1处:sj=si;应改为sj+=si第2处:sj=”/0”;应改为sj=0;编程题请编写函数void fun(int x,int pp,int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在 pp所指的数组中,这些除数的个数通过形参 n返回.例如,若x中的值为 30,则有 4个数符合要求,它们是 1,3,5,15.注意:部分源程序给出如下。请勿改动主函数mai
14、n和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include #include void fun(int x, int pp, int *n)main()int x, aa1000, n, i;FILE *out;printf(nPlease enter an integer number:n); scanf(%d,&x);fun(x,aa,&n);for(i=0;in;i+)printf(%d , aai);printf(n);fun(730, aa, &n);out = fopen(out.dat, w);for (i = 0; i n; i+)fpr
15、intf(out, %dn, aai);fclose(out);答案是:void fun(int x,int pp,int *n) int i=1,j=0,k=0,*t=pp; for(i=0;i=x;i+)if(i%2!=0) tj=i; j+;for(i=0;ij;i+)if(x%ti=0) ppk=ti;k+;*n=k;第4套填空题请补充函数FUN,它的功能是:计算并输出N(包括N)以内能被3或7整除的所有自然数的倒数之和。例如,在主函数中从键盘给N输入30后,输出为:S=1.226323。请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。
16、试题程序: #include double fun(int n)int i;double sum = 0.0;for (i=1; _1_; i+)if (i%3=0 _2_ i%7=0)sum += _3_/i;return sum;main()int n;double s;printf(nInput n: );scanf(%d, &n);s = fun(n);printf(nns=%fn, s);第1处填空:i=i第2处填空:|第3处填空:1.0或(double)1改错题下列给定程序中,fun函数的功能是:分别统计字符串中大写字母和小写字母的个数。例如,给字符串s输入:AaaaBBb123C
17、Cccccd,则应输出结果:upper=6,lower=8请改正程序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序: #include #include /*found*/void fun(char *s, int a, int b)while (*s)/*found*/if (*s=A & *s=a & *s=z)b+;s+;main()char s100; int upper = 0, lower = 0;printf(nPlease a string : );gets(s);fun(s, &upper, &lower);pri
18、ntf(n upper=%d lower=%dn, upper, lower);第1处:void fun (char *s,int a,int b)应改为void fun(char *s,int *a,int *b)第2处:a+;应改为(*a)+;第3处:b+;应改为(*b)+;编程题请编写一个函数void fun(char*tt,int pp),统计在tt字符串中“a”到“z”26个字母各自出现的次数,并依次存放在pp所指数组中。例如,当输入字符串abcdefgabcdeabc后,程序的输出结果应该是:33322110000000000000000000注意:部分源程序给出如下。请勿改动主函
19、数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:# include # include void fun(char *tt, int pp)main()char aa1000;int bb26, k;FILE *out;printf(nPlease enter a char string:);scanf(%s,aa);fun(aa,bb);for(k=0;k26 ; k+)printf(%d,bbk);printf(n);fun(a bosom friend afar brings a distant land near, bb);out = fope
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 语言 上机 题库
限制150内