全国计算机等级考试C语言上机考试题库2140套.docx
- 文档编号:2148139
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:102
- 大小:52.15KB
全国计算机等级考试C语言上机考试题库2140套.docx
《全国计算机等级考试C语言上机考试题库2140套.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试C语言上机考试题库2140套.docx(102页珍藏版)》请在冰豆网上搜索。
全国计算机等级考试C语言上机考试题库2140套
2017年全国计算机等级考试C语言上机考试题库
学生练习用第21套至第40套
第二十一套
1、程序填空
给定程序中,函数fun的功能是:
将形参s所指字符串中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数值返回。
例如,形参s所指的字符串为abs5def126jkm8,程序执行后的输出结果为22。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:
部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
-----------------------------------------------------------------------------------------------------------------
#include
#include
#include
intfun(char*s)
{intsum=0;
while(*s){
/**********found**********/
if(isdigit(*s))sum+=*s-__1__;
/**********found**********/
__2__;
}
/**********found**********/
return__3__;
}
main()
{chars[81];intn;
printf("\nEnterastring:
\n\n");gets(s);
n=fun(s);
printf("\nTheresultis:
%d\n\n",n);
}
-----------------------------------------------------------------------------------------------------------------
【参考答案】
(1)48
(2)s++(3)sum
【解题思路】
本题是把字符串中是数字字符转换成对应的数值并进行累加。
填空1:
'0'字符对应的ASCII码值是48,因此数字字符转换成对应数值时只要减去48,即是该数字字符对应的数值,所以应填48。
填空2:
判断完一个字符之后,将字符串指针移到下一个位置,所以应填s++。
填空3:
返回累加和sum,所以应填sum。
2、程序修改
下列给定的程序中,函数fun的功能是:
计算并输出k以内最大的10个能被13或17整除的自然数之和。
k的值由主函数传入,若k的值为500,则函数的值为4622。
请改正程序中的错误,使它能得出正确的结果。
注意:
部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!
-----------------------------------------------------------------------------------------------------------------
#include
#include
#include
intfun(intk)
{intm=0,mc=0,j;
while((k>=2)&&(mc<10))
{
/*************found**************/
if((k%13=0)||(k%17=0))
{m=m+k;mc++;}
k--;
/*************found**************/
returnm;
}
voidmain()
{system("CLS");
printf("%d\n",fun(500));
}
-----------------------------------------------------------------------------------------------------------------
【参考答案】
(1)if((k%13==0)||(k%17==0))
(2)}returnm;
【解题思路】
(1)C语言中,x能被y整除的表示方法是x%y==0,而不是题目中所表示的x%y=0。
所以,if((k%13=0)||(k%17=0))修改后的结果应该是答案所示信息。
(2)程序中缺少程序完整所需的"}",此类信息在做题时一定要注意,可以在做题前先运行一下程序,这样明显的错误一般都会有错误信息显示出来。
比如丢失"}"的错误信息是"Compoundstatementmissing}infunctionfun"。
3、程序设计
编写函数fun,它的功能是:
求小于形参n同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回。
例如,若n为1000时,程序输出应为:
s=153.909064。
注意:
部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
-----------------------------------------------------------------------------------------------------------------
#include
#include
doublefun(intn)
{
}
main()/*主函数*/
{voidNONO();
printf("s=%f\n",fun(1000));
NONO();
}
voidNONO()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。
*/
FILE*fp,*wf;
inti,n;
doubles;
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,"%f\n",s);
}
fclose(fp);
fclose(wf);
}
-----------------------------------------------------------------------------------------------------------------
【参考答案】
doublefun(intn)
{
doublesum=0.0;
inti;
for(i=21;i<=n;i++)
if((i%3==0)&&(i%7==0))
sum+=i;
returnsqrt(sum);
}
【解题思路】
本题考查算术运算的算法,首先利用一个for循环判断小于n且能同时被3和7整除的整数,并将满足条件的整数累加到sum,之后调用sqrt函数计算sum的平方根,并作为函数的返回值。
第二十二套
1、程序填空
给定程序中,函数fun的功能是:
找出形参s所指字符串中出现频率最高的字母(不区分大小写),并统计出其出现的次数。
例如,形参s所指的字符串为:
abcAbsmaxless,程序执行后的输出结果为:
letter'a':
3times
letter's':
3times
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:
部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
-----------------------------------------------------------------------------------------------------------------
#include
#include
#include
voidfun(char*s)
{intk[26]={0},n,i,max=0;charch;
while(*s)
{if(isalpha(*s)){
/**********found**********/
ch=tolower(__1__);
n=ch-'a';
/**********found**********/
k[n]+=__2__;
}
s++;
/**********found**********/
if(max } printf("\nAftercount: \n"); for(i=0;i<26;i++) if(k[i]==max)printf("\nletter\'%c\': %dtimes\n",i+'a',k[i]); } main() {chars[81]; printf("\nEnterastring: \n\n");gets(s); fun(s); } ----------------------------------------------------------------------------------------------------------------- 【参考答案】 (1)*s (2)1(3)k[n] 【解题思路】 本题统计字符串中各字母的个数,建立了一个包括26个整型变量的数组,用来存储每个字母的个数。 填空1: isalpha函数的作用是判断当前字符是否为字母,tolower函数的作用是将当前字母转换为小写字母,所以应填*s。 填空2: 把该字母出现的个数累加到指定的数组中,所以应填1。 填空3: max用来记录出现次数最高的字母的出现次数,如果当前该字母出现次数大于最大次数max,那么把该次数赋值给max,所以应填k[n]。 2、程序修改 下列给定程序中,函数fun的功能是: 求S的值。 例如,当k为10时,函数的值应为1.533852。 请改正程序中的错误,使它能得出正确的结果。 注意: 部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构! ----------------------------------------------------------------------------------------------------------------- #include #include #include #include /*************found**************/ fun(intk) { intn;floats,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++; } /*************found**************/ returns } voidmain() {system("CLS");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国 计算机等级考试 语言 上机 考试 题库 2140
![提示](https://static.bdocx.com/images/bang_tan.gif)