国家计算机等级考试2级C语言机试答案.docx
《国家计算机等级考试2级C语言机试答案.docx》由会员分享,可在线阅读,更多相关《国家计算机等级考试2级C语言机试答案.docx(229页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1套:一、程序填空题下列给定程序中,函数fun的功能是:计算如下公式并且把计算结果作为函数值返回。例如:若形参e的值为le-3,函数的返回值为0.551690。请在下面划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:部分源程序在文件BLANK1.C中。不得增行或删行,也不得更改程序的结构!试题程序:#include double fun(double e) int i, k; double s, t, x;s=0; k=l; i=2;/* * ou nd * */ x=_1_/4;/* fou nd */ while(x _2_e) s=s+k*x;k=k* (-1);t=2
2、*i;/* * fou nd */x=_3_/(t*t);i+;return s;main() double e=le-3;printfCXnThe result is: %fn,fun(e);程序改错题 下列给定程序中函数fun的功能是:求出以下分数序列的前n项之和。和值通过函数值返 回。例如,若n = 5,则应输出:8.391667请改正程序中的错误,使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:# include # include # include /不 *found*/void fun (int n ) int a=2,b=l,
3、c,k; double s=0.0; for(k=l ;k=n;k+) (/* found* * * * * */ s = s + (Double)a / b; c = a; a = a + b; b = c; ) return (s);Void main() (int n = 5;system(4kCLSM);printf( MnThe value of function is:fun ( n );) 三、 程序设计题请编写一个函数fun,其功能是:找出2XM整型二维数组中最大元素的值,并将此值返回调 用函数。注意:部分源程序给出去下。请勿改动主函数main和其它函数中的任何内容,仅在函数f
4、un的花括号中填入你编写的若 干语句。给定源程序:#define M 4#include Int fun (int aM) ( void main() (int arr2M=5,8,3,45,76,-4,12,82); printf(max =%dn, fun(arr);)第1套【参考答案】 一、程序填空题(1)3.0 或(double(2)(3) (t+1)二、 程序改错题1 )double fun(int n) (2)s=s+(double)a/b; 三、程序设计题int fun (int aM) (int i,j,max=a00;for(i=0;i2;i+)for(j=0;jM;j+)i
5、f(maxaij) max=aij;return max;I第2套:一、程序填空题下列给定程序中,函数fun的功能是:计算如下公式前n项的和,并作为函数值返回。例如,当形参n的值为的时,函数返回值为:9.612558o请在程序的下划线处填入正确的内容并把卜.划线删除,使程序得出正确的结果。注意:部分源程序给出去下。不得增行或删行,也不得更改程序的结构!试题程序:#include double fun(int n) int i; double s, t;/* * found*/s=_1_;/* * fou nd */for(i=l; i=_2_; i+) t=2.0*i;/字* found */
6、s=s+(2.0*i-l)*(2.0*i+1)/_3_;)return s;Void main() int n=-l;while(n0): ); scanf(M%dn,&n); printf(nThe result is: %fn,fun(n);二、 程序改错题下列给定程序中函数fun的功能是:统计substr所指子字符串在str所指的字符串中出现的 次数。例如,若字符串为aaaslkaaas,子字符串为as,则应输出2。请改正程序中的错误,使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include int fun (char * st
7、r,char *substr) int i,j,k,num=0;/*found*/for(i = 0, stri, i+)fbr(j=i,k=O;substrk=strj ;k+j+)/* *ound*/If(substrk+l=W) num+;break;return num;)main()(char str80,substr80;printf(nInput a string:);gets(str);printf(Input a substring:1);gets(substr);printf(n%dnfun(str,substr);)三、 程序设计题请编写一个函数fun,其功能是:根据以下
8、公式求“的值(要求满足精度0.0005,即某项小于0.0005时停止迭代):程序运行后,如果输入精度0.0005,则程序输出为3.14。注意:部分源程序给出去下。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若 干语句。给定源程序:#include #include #include double fun ( double eps)Void main() double x;printf(nInput eps:);scanf(H%lf;&x);printf(Mneps = %lf, PI=%lfnH, x, fun(x);)第2套【参考答案】-、程序填空题(D
9、O (2)n(3) (t*t)二、程序改错题l)for(i=0;stri;i+)(2)if(substrk+1 = *0)三、程序设计题double fun (double eps)(double s= 1.0,s 1 = 1.0;int n=l;while(sl=eps)/*当某项大于精度要求时,继续求下一项*/sl=sl*n/(2*n+l);/* 求多项式的每一项*/s=s+sl;/* 求和*/n+;return 2*s;第3套:一、 程序填空题给定程序中,函数fun的功能是:统计形参s所指字符串中数字字符出现的次数,并存放在 形参t所指的变量中,最后在主函数中输出。例如,形参s所指的字符
10、串为: uabcdef35adgh3kjsdf7,则输出结果为:4。请在下面划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:部分源程序给出去如下。不得增行或删行,也不得更改程序的结构!试题程序:#include void fun(char *s, int *t) int i, n;n=0;/萃* found * */for(i=0;1!=0; i+)/字字* found* */if(si=O,&si= 2) n+;/不*found*/3;main() char s80=,abcdef35adgh3kjsdf7M;int t;printf(nThe original string
11、 is : %snM,s);fun(s,&t);printf(unThe result is : %dnt);)二、程序改错题下列给定程序中函数fun的功能是:实现两个变量值的交换,规定不允许增加语句和表达 式。例如变量a中的值原为8, b中的值原为3,程序运行后a中的值为3, b中的值为8。 请改正程序中的错误,使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序:# include # include # include int fun(int *x,int y) int t;/* *found*/I*found*/ retum(y);)vo
12、id main() int a = 3, b = 8 ;printf(%d %dn, a, b); b = fun(&a, b);printf(n%d %dnM, a, b);三、程序设计题编写函数fun,它的功能是:求出1至IJ 1000之间能被7或11整除、但不能同时被7和II 整除的所有整数,并将它们放在a所指的数组中,通过n返回这些数的个数。注意:部分源程序给出去下。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若 干语句。给定源程序:# include # include # include void fun (int *a, int *n) vo
13、id main() int aa1000, n, k ; system( “CLS”); fun ( aa, &n );for ( k = 0 ; k n ; k+ ) if(k + 1)% 10= 0) printf(5d,aak);printf(“n); elseprintf(5d”, aakj)第3套【参考答案】一、程序填空题(l)si(2) 9(3)*t=n二、程序改错题l)t = *x ; *x = y ;(2)return(t);或 return t;二、程序设计题void fun (int *a, int *n)(int i,j=0;for(i=l;i=1000;i+)/*求1到
14、1000之内能被7或11整除、但不能同时被7和11整除的所有整数,并放入数组a中*/if(i%7=0lli%l l=0)&i%77!=0) aj+=i;*n=j;)第4套:一、程序填空题下列给定程序中,函数fun的功能是:把形参a所指数组中的奇数按原顺序依次存放到a0, al, a2、中,把偶数从数组中删除,奇数个数通过函数值返回。例如:若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7,删除偶数后a所指数组 中的数据为:9、1、3、5、7,返回值为5。请在下面划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:部分源程序给出去下。不得增行或删行,也不得更改程序的结
15、构!试题程序:#include #define N 9 int fun(int a, int n) int i,j;j = 0;for (i=0; in; i+)/* * fou nd */ if(ai%2=-1)/字 * found* */ aj = ai; 2一;)/* fou nd */return3;main() int bN=9J,4,23,6,5,8,7), i,n; printf(nnThe original data :nM);for (i=0; iN; i+) printf(n%4d bi);printf(MnM);n = fun(b, N);printf(nThe numb
16、er of odd : %d nM, n);printf(nnThe odd number :nn);for (i=0; in; i+) printf(%4d H, bi);printf(nnH);二、程序改错题下列给定程序中函数fun的功能是:求出两个非零正整数的最大公约数,并作为函数值返 回。例如,若给numl和num2分别为49和21,则输出的最大公约数为7:若numl和num2分 别为27和81,则输出的最大公约数为27。请改正程序中的错误,使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include int fun(int aj
17、nt b) int r,t;if(ab) /字* found * /t=a; b=a; a=t;r=a%b;while(r!=0) a=b; b=r; r=a%b; /豕* found */retum(a);)main() int numl, num2,a;printf(uInput numl num2: ); scanf(%d%dn,&num 1 ,&num2);printf(numl= %d num2= %dnnu,num 1 ,num2);a=fun(num l,num2);printf(The maximun common divisor is %dnn,a);)三、程序设计题规定输入
18、的字符串中只包含字母和*号。请编写函数fun,它的功能是:删除字符串中所有 的*号。在编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为:*A*BC*DEF*G*,删除后,字符串中的内容应当是:ABCDEFGo注意:部分源程序给出去下。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若 干语句。给定源程序:# include #include void fun( char *a ) (void main() char s81;printf(MEnter a string:nH);gets(s);fun( s);printf(The string
19、 after deleted:nH);puts(s);第4套【参考答案】一、程序填空题(1)1(2)j+(3)j二、程序改错题1)t=a;a=b;b=t;(2)return(b);或 return b;三、程序设计题 void fun( char *a ) (int i,j=O;for(i=0;ai !=、0;i+)if(ai !=*)a|j+=ai;/*若不是要删除的字符则留下*/a|j=O;第5套:一、程序填空题下列给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高 位到低位相反的顺序组成一个新的数,并作为函数值返回。例如,输入一个整数:27638496,函数返
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 国家 计算机等级考试 语言 答案
限制150内