ImageVerifierCode 换一换
格式:DOCX , 页数:102 ,大小:52.15KB ,
资源ID:5640544      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5640544.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(全国计算机等级考试C语言上机考试题库2140套.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

全国计算机等级考试C语言上机考试题库2140套.docx

1、全国计算机等级考试C语言上机考试题库 2140套2017年全国计算机等级考试C语言上机考试题库学生练习用第21套至第40套第二十一套1、程序填空给定程序中,函数fun的功能是:将形参s所指字符串中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数值返回。例如,形参s所指的字符串为abs5def126jkm8,程序执行后的输出结果为22。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:部分源程序在文件BLANK1.C中。不得增行或删行,也不得更改程序的结构!-#include #include #include int fun(char *s) int sum

2、=0; while(*s) /*found*/ 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,即是该数

3、字字符对应的数值,所以应填48。填空2:判断完一个字符之后,将字符串指针移到下一个位置,所以应填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)&(m

4、c10) /*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)(2) return m;【解题思路】(1)C语言中,x能被y整除的表示方法是x%y0,而不是题目中所表示的x%y0。所以,if(k%130)|(k%170)修改后的结果应该是答案所示信息。(2)程序中缺少程序完整所需的,此类信息在做题时一定要注意,可以在做题前先运行一下程序,这样明显的错误一般都会有错误信息显示出

5、来。比如丢失的错误信息是Compound 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 ( 10

6、00) ); NONO();void 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;

7、for(i=21;i=n;i+) 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+)

9、if (ki=max) printf(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;

11、 s=s*w*w/p/q; n+; /*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的花括号中填入你编写的若干语句。-#inclu

12、de#include#includedouble 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

14、,k; for(i=0; iN; 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; print

15、f(nThe original stringnn); for(i=0;iN;i+)puts(chi); printf(n); fun(ch);-【参考答案】(1)i (2)psj (3)tp【解题思路】本题是按字符串的长短进行排序。填空1:外循环每循环一次,k应保存当前的i值,所以应填i。填空2:使用内循环对i1后面的字符串长度进行比较,所以应填psj。填空3:此处的作用是交换两个变量的值,所以应填tp。2、程序修改已知一个数列从0项开始的前3项:0、0、1,以后的各项都是其相邻的前3项之和。下列给定的程序中,函数fun的功能是:计算并输出该数列前n项的平方根之和sum。n的值通过形参传入。例

16、如,当n10时,程序的输出结果应为23.197745。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!-#include #include #include #include /*found*/fun(int n) double sum, s0, s1, s2, s; int k; sum=1.0; if (n=2) sum=0.0; s0=0.0; s1=0.0; s2=1.0; for (k=4;k=n;k+) s=s0+s1+s2; sum+=sqrt(s); s0=s1;s1=s2;s2=s;

17、 /*found*/ return sumvoid main()int n; system(CLS); printf(Input N=); scanf(%d,&n); printf(%fn,fun(n);-【参考答案】(1)double fun(int n)(2)return sum;【解题思路】(1)根据函数的返回值可知函数fun应定义为double类型。(2)语法错误,缺分号。3、程序设计请编写函数fun,它的功能是计算下列级数和,和值由函数值返回。 例如,当n10,x0.3时,函数值为1.349859。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,

18、仅在函数fun的花括号中填入你编写的若干语句。-#include#include#include#includedouble fun(double x, int n) void main() FILE *wf; system(CLS); printf(%f ,fun(0.3,10);/*/ wf=fopen(out.dat,w); fprintf(wf,%f,fun(0.3,10); fclose(wf);/*/-【参考答案】double fun(double x,int n) int i; double s=1.0,s1=1.0; for(i=1;i=n;i+) s1=s1*i; /*各项中

19、的阶乘*/ s=s+pow(x,i)/s1; /*按公式求出*/ return s;【解题思路】程序定义了变量s1和s,s1表示每项的分母(即各项的阶乘),s存放累加和。循环语句控制累加的次数,在循环体中进行阶乘和累加操作,累加的结果存入s中。此处使用了求乘方函数pow(x,i),其含义是求x的i次方的值。第二十四套1、程序填空给定程序中,函数fun的功能是:根据形参i的值返回某个函数的值。当调用正确时,程序输出:x15.000000,x23.000000,x1*x1+x1*x2=40.000000。注意:部分源程序在文件BLANK1.C中。不得增行或删行,也不得更改程序的结构!-#include double f1(double x) return x*x; double f2(double x, double y) return x*y; /*found*/_1_ fun(int i, double x, double y) if (i=1)/*found*/ return _2_(x); else/*found*/ return _3_(x, y);main() double x1=5, x2=3, r; r = fun(1, x1, x2); r += fun(2, x1,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1