1、计算机二级C语言试题 改错部分国家二级计算机-C语言上机100套题-电子版(改错上)=001=-下列给定程序中,函数fun的功能是:分别统计字符串中大写字母和小写字母的个数。例如,给字符串s输入:AaaaBBb123CCccccd,则应输出结果:upper=5,1ower=9。请改正程序中的错误,使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:-#include#include/*found*/void fun(char *s,int a,int b)while(*s)/*found*/if(*s=A & *s=a & *s=z)b+;s+;
2、main()char s100;int upper=0,lower=0;printf(nplease a string :);gets(s);fun(s,&upper,&lower);printf(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)+;=002=下列给定程序中,函数fun()的功能是:根据整型形参m的值,计算如下公式的值。t=1-1/(22)-
3、1/(33)-1/(mm)请改正函数fun()中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include #include #include double fun(int m)double y=1.0; int I;/*found*/ for(I=2;Im;I+) /*found*/ y-=1/(I*I); return(y);void main()int n=5; system(CLS); printf(nThe result is %1fn, fun(n);-(1)错误:for(I=2; Im; I+)正确:for(I=2;
4、 I=m; I+)(2)错误:y-=1/(I*I);正确:y-=1.0/(I*I);=003=下列给定程序中,fun函数的功能是:根据形参m,计算下列公式的值。t=1+1/2+1/3+1/4+1/m例如,若输入5,则应输出2.283333。请改正程序中的错误,使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include #include #include double fun(int m) double t=1.0; int I; for(I=2;I=m;I+)/*found*/ t+=1.0/k;/*found*/ return I;v
5、oid main()int m;system(CLS);printf(nPlease enter 1integer number: );scanf(%d,&m);printf(nThe result is %1fn, fun(m);-(1)错误:t+=1.0/k;正确:t+=1.0/I;(2)错误:return I;正确:return t;=004=下列给定的程序中,函数fun的功能是:计算并输出k以内最大的10个能被13或17整除的自然数之和。K的值由主函数传入,若k的值为500,则函数的值为4622。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不
6、得更改程序的结构。试题程序:#include #include #include int fun(int k) int m=0,mc=0, j; while(k=2)&(mc10) /*found*/ if(k%13=0)|(k%17=0) m=m+k;mc+; k-;/*found*/ return m;void main()system(CLS); printf(%dn ,fun(500);-(1)错误:if(k%13=0)|(k%17=0)正确:if(k%13=0)|(k%17=0)(2)错误:缺少大括号 正确:加 005=下列给定程序中,函数fun的功能是:根据整型形参m,计算如下公式
7、的值。例如,若m中的值为5,则应输出:1.463611。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include #include double fun(int m)double y=1.0;int i;/*found*/for (i=2; im; i+)/*found*/y+=1/(i*i);return(y);main( )int n=5;printf(nThe result is%1fn,fun(n);-(1)错误:for (i=2;im;i+)正确:for(i=2;i=m;i+)(2)错误:y+=1/(i*i
8、)正确:y+=1.0/(i*i)=006=下列给定程序中,函数fun的功能是:按如下递归公式求函数值。例如,当给n输入5时,函数值为18;当给n输入3时,函数值为14。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include /*found*/int fun (n)int c;/*found*/if(n=1)c=10;elsec=fun(n-1)+2;return (c);main ( )int n;printf(Enter n:);scanf(%d, &n);printf(The result:%dnn,fun(n
9、);-(1)错误:int fun(n)正确:int fun (int n)(2)错误:if (n=1)正确:if (n=1)=007=下列给定程序中函数fun的功能是:计算n!。例如,给n输入5,则输出120.000000。请改正程序中的错误,使程序能输出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include #includedouble fun(int n) double result = 1.0;/*found*/if n=0return 1.0;while (n1 & n170)/*found*/result = n-;return re
10、sult;main ( )int n;printf(Input N:);scanf(%d,&n);printf(nn%d!=%lfnn,n,fun(n);-(1)错误:if n=0正确:if( n=0)(2)错误:result =n-;正确:result *=n-;=008=下列给定程序中函数fun的功能是:计算正整数num各位上的数字之积。例如,若输入252,则输出应该是20。若输入202,则输出应该是0。 请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include #include long fun(long nu
11、m)/*found*/long k;dok*=num%10;/*found*/num =10;while (num);return (k);main ( )long n;printf(please enter a number:);scanf(%ld,&n);printf(n%ldn,fun(n);-(1)错误:long k;正确:long k=1;(2)错误:num =10;正确:num /=10;009=下列给定程序中函数fun的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如当s中的数为87653142时,t中的数为7531。请改正函
12、数fun中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include #include #include void fun(long s,long *t)int d;long s1=1;/*found*/t=0;while(s0) d=s%10;/*found*/ if(d%2=0) *t=d*s1+*t; s1*=10; s/=10; void main()long s, t;system(CLS);printf(nPlease enter s: ); scanf(%ld,&s);fun(s,&t);printf(The res
13、ult is :%ldn,t);-(1)错误:t=0;正确:*t=0;(2)错误:if(d%2=0)正确:if(d%2!=0)=010=下列给定程序中,函数fun的功能是:计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。请改正函数fun中的错误或在横线处填上适当的内容并把横线删除,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include #include #include #define N 80int fun(char *s,char *t) int n;char *p, *r;n = 0;/*found*/p = &s0
14、;*r = t;while (*p)if (*r = *p)r+;if(*r = 0)n+;/*found*/_填空_p+;return n;main ( )char aN,bN;int m;printf(nPlease enter string a :);gets(a);printf(nPlease enter sUbstring b :);gets(b);m = fun(a,b);m = printf(nThe result is:m=%dn,m);-(1)错误:*r =t;正确:r=t;(2)应填:r=t;或r=&t0;=011=数列中,第一项为3,后一项都比前一项的值增5。下列给定程序
15、中,函数fun的功能是:计算前n(4n50)项的累计和。在累加过程中把那些被4除后余2的当前累加值放入数组中,符合此条件的累加值的个数作为函数值返回主函数里。如,当n的值为20时,该数列为3,8,13,18,23,28,93,98。符合此条件的累加值应为42,126,366,570,1010。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include #define N 20int fun(int n, int *a)/*found*/ int i,j,k,sum; sum=0; for(k=3,i=0;in;i+,k
16、+=5) sum=sum+k;/*found*/ if(sum%4=2) aj+=sum; /*found*/ return j;void main()int aN,d,n,i;printf(nEnter n(4=n=50): );scanf(%d,&n);d=fun(n,a);printf(nnThe result :n );for(i=0;id;i+) printf(%6d ,ai);printf(nn );-(1)错误:int i,j,k,sum;正确:int i,j=0,k,sum;(2)错误:if(sum%4=2)正确:if(sum%4=2)(3)错误:return j;正确:ret
17、urn j+;=012=在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。下列给定程序中,函数fun的功能是:计算数组元素中值为正数的平均值(不包括0)。例如:数组中元素的值依次为39,-47,21,2,-8,15,0,则程序的运行结果为19.250000。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include #include double fun(int x ) /*found*/int sum= 0.0;int c = 0,i = 0;while (xi != 0)if (xi 0)s
18、um += xi;c+;i+;/*found*/sum=c;return sum;main ( )int x1000;int i=0;printf(nPlease enter some dat a(end with 0):);doscanf(%d, &xi); while (xi+ !=0);printf(%lfn,fun(x);-(1)错误:int sum=0.0;正确:double sum=0.0;(2)错误:sum=c;正确:sum/=c;=013=下列给定程序中,函数fun的功能是:求k!(k13),所求阶乘的值作为函数值返回。例如:若k=10,则应输出3628800。请改正程序中的错
19、误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include#include long fun(int k) /*found*/if k1 return (k*fun(k-1);return 1;main ( )int k=10;printf(%d!=%ldn,k,fun(k);-(1)错误:if k1正确:if(k1)=014=下列给定程序中,函数fun的功能是:求出数组中最大数和次最大数,并把最大数和a0中的数对调、次最大数和a1中的数对调。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include #include stdio.
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1