1、全国计算机等级考试二级C语言上机考试试题详解第四部分 全国计算机等级考试二级C语言上机考试试题详解第7章全国计算机等级考试二级C语言上机考试试题第1套填空题:请补充main函数,该函数的功能是:把一个字符串中的所有小写字母字符全部转换成大写字母字符,其他字符不变,结果保存原来的字符串中。 例如:当strN=“123 abcdef ABCDEF!”时,结果输出:“123ABCDEFABCDEF!”。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 试题程序: #include #include #include #d
2、efine N 80 main() int i; char strN=123abcdef ABCDEF!; char *pf=str; printf(*original string*n); puts(str); 【1】 ; while(*(pf+j) if(*(pf+j)=a&*(pf+j)=z) *(pf+j)= 【2】 ;j+; else 【3】 ; printf(*new string*n); puts(str); system(pause);改错题:下列给定程序中,函数fun()的功能是逐个比较a,b两个字符串对应位置中的字符,把ASC值小或相等的字符依次存放到c数组中,形成一个新的
3、字符串。 例如:a中的字符串为fshADfg,b中的字符串为sdAEdi, 则c中的字符串应为fdAADf。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include void fun(char *p,char *q,char *c) int k=0; while(*p|*q) /*found*/ if (*p=*q) ck=*q; else ck=*p; if(*p) p+; if(*q) q+; /*found*/ K+ main() char a10=fshADfg,b10=sdAEdi,
4、c80=0; fun(a,b,c); printf(The string a:);puts(a); printf(The string b:);puts(b); printf(The result:);puts(C);编程题:请编写函数fun(),其功能是将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和十位上,b数的十位和个位数依次放出c数的百位和千位上。 例如,当a=16,b=35, 调用该函数后,c=5361。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
5、试题程序: #include void fun(int a,int b,long *c) main() int a,b;long c; printf(Input a,b;); scanf(dd,&a,&b); fun(a,b,&c); printf(The result is:ldln,c);第2套填空题:请补充main函数,该函数的功能是求方程ax2+bx+c=0的两个实数根。方程的系数a、b、c从键盘输入,如果判别式 (disc=b2-4ac)小于0,则要求重新输入a、b、c的值。 例如,当a=1,b=2,c=1时,方程的两个根分别是x1-1.00,x2=-1.00。 注意:部分源程序给出
6、如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:#includemath.h#includemain() float a,b,c,disc,xl,x2;do printf(Input a,b,c:);scanf(f,f,f,&a,&b,&c);disc=b*b-4*a*c;if(disc0)printf(disc=fn lnput again!n,disc);while( 【1】 );printf(*the result*n1);x1=【2】;x2=【3】;printf(nx1=6.2fnx2=6.2fn,x1,x2);改
7、错题 :下列给定程序中,函数fun()的功能是根据整型形参m,计算如下公式的值。y=l-1/(22)+1/(33)-1/(44)+(-1)(m+1)/(mm)例如:m中的值为5,则应输出0.838611。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include#includedouble fun(int m) double y=1.0;/*found*/int j=1, i;for(i=2;i=m;i+) j=-1*j;/*found*/y+=1/(i*i);return(y);main() int n=5;print
8、f(nThe result islfn,fun(n);编程题:请编一个函数void fun(int ttMN,int ppN,tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。二维数组中的数已在主函数中给出。注意;部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include #include #define M 3#define N 4void fun(int ttMN,int pN)main() int tMN=68,32,54,12,14,24,88,58,42,22,4
9、4,56;int pN,i,j,k;printf(The riginal data is:n);for(i=0;iM;i+) for(j=0;jN;j+) printf(6d,tij);printf(n);fun(t,p);printf(nThe result is:n);for(k=0;kN;k+)printf(4d,pk);printf(n);第3套填空题:数组xxN保存着一组3位数的无符号正整数,其元素的个数通过变量num传入函数fun()。请补充函数fun(),该函数的功能是:从数组xx中找出个位和百位的数字相等的所有无符号整数,结果保存在数组中,其个数由函数fun()返回。 例如:当
10、xx8=135,78,72,32,222,424,333,141,541时,bb6=787,232,222,424,333,141。 注意:部分源程序给出如下. 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include #define N 1000 int fun(int xx,int bb,int num) int i,n=0; int g,b; for(i=0;inum;i+) g= 【1】 ;b=xxi/100;if(g=b) 【2】 ; return 【3】 ; main() int xx8=135,787,2
11、32,222,424,333,141,541,yyN; int num=8,n=0,i=0; printf(*original data*n); for(i=0;inum;i+) printf(u,xxi); printf(nnn); n=fun(xx,YY,num); printf(nyy=); for(i=0;in;i+) printf(u,yyi);改错题:下列给定程序中函数fun()的功能是计算1/n!的值。 例如:给n输入5,则输出0.008333。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #inclu
12、de #include /*found*/ int fun(int n) double result=1.0; if(n=0) return 1.0; while(n1&n170) /*found*/ result*=n+; result=1/result; return result; main() int n; printf(Input N:); scanf(d,&n); printf(”n1/d!=lfn,n,fun(n);编程题:编写函数fun(),它的功能是求n以内(不包括n)同时能被5与11整除的所有自然数之和的平方根s,并作为函数值返回。 例如:n为1000时,函数值应为s=96.979379。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include #include #include double fun(int n) main() int n=1000; printf(s=fn,fun(1000);第4套填空题:给定程序的功能是判断字符ch是否与串str中的某个字符相同;若相同,什么也不做,若不同,则插在串的最后。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:不得增行或删行,也不得更改程序的结构!试题程序:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1