2017年全国计算机等级考试C语言上机考试题库-21-40套.doc
《2017年全国计算机等级考试C语言上机考试题库-21-40套.doc》由会员分享,可在线阅读,更多相关《2017年全国计算机等级考试C语言上机考试题库-21-40套.doc(73页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、优质文本2017年全国计算机等级考试C语言上机考试题库学生练习用第21套至第40套第二十一套1、程序填空给定程序中,函数fun的功能是:将形参s所指字符串中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数值返回。例如,形参s所指的字符串为abs5def126jkm8,程序执行后的输出结果为22。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:局部源程序在文件BLANK1.C中。不得增行或删行,也不得更改程序的结构!-#include #include #include int fun(char *s) int sum=0; while(*s) /*foun
2、d*/ if( isdigit(*s) ) sum+= *s- _1_ ;/*found*/ _2_; /*found*/ return _3_ ;main() char s81; int n; printf(nEnter a string:nn); gets(s); n=fun(s); printf(nThe result is: %dnn,n);-【参考答案】(1)48 (2)s+ (3)sum【解题思路】此题是把字符串中是数字字符转换成对应的数值并进行累加。填空1:0字符对应的ASCII码值是48,因此数字字符转换成对应数值时只要减去48,即是该数字字符对应的数值,所以应填48。填空2:
3、判断完一个字符之后,将字符串指针移到下一个位置,所以应填s。填空3:返回累加和sum,所以应填sum。2、程序修改以下给定的程序中,函数fun的功能是:计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值由主函数传入,假设k的值为500,那么函数的值为4622。请改正程序中的错误,使它能得出正确的结果。注意:局部源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!-#include #include #include int fun(int k) int m=0,mc=0, j; while(k=2)&(mc10) /*found*/ if(
4、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)(2) return m;【解题思路】(1)C语言中,x能被y整除的表示方法是x%y0,而不是题目中所表示的x%y0。所以,if(k%130)|(k%170)修改后的结果应该是答案所示信息。(2)程序中缺少程序完整所需的,此类信息在做题时一定要注意,可以在做题前先运行一下程序,这样明显的错误一般都会有错误信息显示出来。比方丧失的错误信息是Compou
5、nd statement missing in function fun。3、程序设计编写函数fun,它的功能是:求小于形参n同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回。例如,假设n为1000时,程序输出应为:s153.909064。注意:局部源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的假设干语句。-#include #include double fun( int n)main() /* 主函数 */ void NONO (); printf(s =%fn, fun ( 1000) ); NONO();vo
6、id NONO ()/* 本函数用于翻开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *fp, *wf ; int i, n ; double s; fp = fopen(in.dat,r) ; wf = fopen(out.dat,w) ; for(i = 0 ; i 10 ; i+) fscanf(fp, %d, &n) ; s = fun(n) ; fprintf(wf, %fn, s) ; fclose(fp) ; fclose(wf) ;-【参考答案】 double fun(int n) double sum=0.0; int i; for(i=21;i=n;i+)
7、 if(i%3=0)&(i%7=0) sum+=i; return sqrt(sum); 【解题思路】此题考查算术运算的算法,首先利用一个for循环判断小于n且能同时被3和7整除的整数,并将满足条件的整数累加到sum,之后调用sqrt函数计算sum的平方根,并作为函数的返回值。第二十二套1、程序填空给定程序中,函数fun的功能是:找出形参s所指字符串中出现频率最高的字母(不区分大小写),并统计出其出现的次数。例如,形参s所指的字符串为:abcAbsmaxless,程序执行后的输出结果为:lettera:3timesletters:3times请在程序的下画线处填入正确的内容并把下画线删除,使程
8、序得出正确的结果。注意:局部源程序在文件BLANK1.C中。不得增行或删行,也不得更改程序的结构!-#include #include #include void fun(char *s) int k26=0,n,i,max=0; char ch; while(*s) if( isalpha(*s) ) /*found*/ ch=tolower(_1_); n=ch-a;/*found*/ kn+= _2_ ; s+;/*found*/ if(maxkn) max= _3_ ; printf(nAfter count :n); for(i=0; i26;i+) if (ki=max) prin
9、tf(nletter %c : %d timesn,i+a,ki);main() char s81; printf(nEnter a string:nn); gets(s); fun(s);-【参考答案】(1)*s (2)1 (3)kn【解题思路】此题统计字符串中各字母的个数,建立了一个包括26个整型变量的数组,用来存储每个字母的个数。填空1:isalpha函数的作用是判断当前字符是否为字母,tolower函数的作用是将当前字母转换为小写字母,所以应填*s。填空2:把该字母出现的个数累加到指定的数组中,所以应填1。填空3:max用来记录出现次数最高的字母的出现次数,如果当前该字母出现次数大于最
10、大次数max,那么把该次数赋值给max,所以应填kn。2、程序修改以下给定程序中,函数fun的功能是:求S的值。 例如,当k为10时,函数的值应为1.533852。请改正程序中的错误,使它能得出正确的结果。注意:局部源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!-#include #include #include #include /*found*/fun(int k) int n; float s, w, p, q; n=1; s=1.0; while(n=k) w=2.0*n; p=w-1.0; q=w+1.0; s=s*w*w/p/q; n+
11、; /*found*/ return svoid main() system(CLS); printf(%fn ,fun(10);-【参考答案】(1)float fun(int k)(2)return s;【解题思路】(1)此处为函数定义错误,根据返回值的类型可知函数类型标识符应为float。(2)语法错误。3、程序设计请编写函数fun,其功能是:计算并输出以下多项式的值。 例如,当n10时,函数值为0.909091。注意:局部源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的假设干语句。-#include#include#incl
12、udedouble fun(int n) void main() FILE *wf; system(CLS); printf(%fn,fun(10);/*/ wf=fopen(out.dat,w); fprintf(wf,%f,fun(10); fclose(wf);/*/-【参考答案】double fun(int n) int i; double s=0.0; for(i=1;i=n;i+) s=s+1.0/(i*(i+1); /*求级数的和*/ return s;【解题思路】此题要求级数的和,由多项式的形式可知,应使用循环语句实现,循环的通项为1/n(n+1)。本程序首先定义了和变量及循环
13、变量,然后运用一个for语句求出级数的和,最后将和变量s返回。第二十三套1、程序填空给定程序中,函数fun的功能是:利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。ss所指字符串数组中共有N个字符串,且串长小于M。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:局部源程序在文件BLANK1.C中。不得增行或删行,也不得更改程序的结构!-#include #include #define N 5#define M 8void fun(char (*ss)M) char *psN,*tp; int i,j,k; for(i=0; iN
14、; i+) psi=ssi; for(i=0; iN-1; i+) /*found*/ k= _1_ ; for(j=i+1; jN; j+)/*found*/ if(strlen(psk) strlen(_2_) ) k=j;/*found*/ tp=psi; psi=psk; psk= _3_ ; printf(nThe string after sorting by length:nn); for(i=0; iN; i+) puts(psi);main() char chNM=red,green,blue,yellow,black; int i; printf(nThe original
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2017 全国 计算机等级考试 语言 上机 考试 题库 21 40
限制150内