全国计算机等级考试C语言上机考试题库2140套Word下载.docx
- 文档编号:18627646
- 上传时间:2022-12-29
- 格式:DOCX
- 页数:102
- 大小:52.15KB
全国计算机等级考试C语言上机考试题库2140套Word下载.docx
《全国计算机等级考试C语言上机考试题库2140套Word下载.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试C语言上机考试题库2140套Word下载.docx(102页珍藏版)》请在冰豆网上搜索。
);
gets(s);
n=fun(s);
\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函数,不得增行或删行,也不得更改程序的结构!
conio.h>
stdlib.h>
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--;
returnm;
voidmain()
{system("
CLS"
%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的花括号中填入你编写的若干语句。
math.h>
doublefun(intn)
{
main()/*主函数*/
{voidNONO();
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的平方根,并作为函数的返回值。
第二十二套
找出形参s所指字符串中出现频率最高的字母(不区分大小写),并统计出其出现的次数。
例如,形参s所指的字符串为:
abcAbsmaxless,程序执行后的输出结果为:
letter'
a'
:
3times
s'
voidfun(char*s)
{intk[26]={0},n,i,max=0;
charch;
while(*s)
{if(isalpha(*s)){
ch=tolower(__1__);
n=ch-'
;
k[n]+=__2__;
s++;
if(max<
k[n])max=__3__;
\nAftercount:
\n"
for(i=0;
i<
26;
if(k[i]==max)printf("
\nletter\'
%c\'
:
%dtimes\n"
i+'
k[i]);
fun(s);
(1)*s
(2)1(3)k[n]
本题统计字符串中各字母的个数,建立了一个包括26个整型变量的数组,用来存储每个字母的个数。
isalpha函数的作用是判断当前字符是否为字母,tolower函数的作用是将当前字母转换为小写字母,所以应填*s。
把该字母出现的个数累加到指定的数组中,所以应填1。
max用来记录出现次数最高的字母的出现次数,如果当前该字母出现次数大于最大次数max,那么把该次数赋值给max,所以应填k[n]。
下列给定程序中,函数fun的功能是:
求S的值。
例如,当k为10时,函数的值应为1.533852。
fun(intk)
{
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++;
returns
{system("
%f\n"
fun(10));
(1)floatfun(intk)
(2)returns;
(1)此处为函数定义错误,根据返回值的类型可知函数类型标识符应为float。
(2)语法错误。
请编写函数fun,其功能是:
计算并输出下列多项式的值。
例如,当n=10时,函数值为0.909091。
#include<
FILE*wf;
system("
/******************************/
wf=fopen("
fprintf(wf,"
%f"
fclose(wf);
/*****************************/
doubles=0.0;
for(i=1;
s=s+1.0/(i*(i+1));
/*求级数的和*/
returns;
本题要求级数的和,由多项式的形式可知,应使用循环语句实现,循环的通项为1/n(n+1)。
本程序首先定义了和变量及循环变量,然后运用一个for语句求出级数的和,最后将和变量s返回。
第二十三套
利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。
ss所指字符串数组中共有N个字符串,且串长小于M。
#defineN5
#defineM8
voidfun(char(*ss)[M])
{char*ps[N],*tp;
inti,j,k;
N;
i++)ps[i]=ss[i];
N-1;
k=__1__;
for(j=i+1;
j<
j++)
if(strlen(ps[k])<
strlen(__2__))k=j;
tp=ps[i];
ps[i]=ps[k];
ps[k]=__3__;
\nThestringaftersortingbylength:
i++)puts(ps[i]);
{charch[N][M]={"
red"
green"
blue"
yellow"
black"
};
\nTheoriginalstring\n\n"
i++)puts(ch[i]);
fun(ch);
(1)i
(2)ps[j](3)tp
本题是按字符串的长短进行排序。
外循环每循环一次,k应保存当前的i值,所以应填i。
使用内循环对i+1后面的字符串长度进行比较,所以应填ps[j]。
此处的作用是交换两个变量的值,所以应填tp。
已知一个数列从0项开始的前3项:
0、0、1,以后的各项都是其相邻的前3项之和。
计算并输出该数列前n项的平方根之和sum。
n的值通过形参传入。
例如,当n=10时,程序的输出结果应为23.197745。
fun(intn)
{doublesum,s0,s1,s2,s;
intk;
sum=1.0;
if(n<
=2)sum=0.0;
s0=0.0;
s1=0.0;
s2=1.0;
for(k=4;
k<
k++)
{s=s0+s1+s2;
sum+=sqrt(s);
s0=s1;
s1=s2;
s2=s;
returnsum
{intn;
InputN="
scanf("
&
n);
fun(n));
(1)doublefun(intn)
(2)returnsum;
(1)根据函数的返回值可知函数fun应定义为double类型。
(2)语法错误,缺分号。
请编写函数fun,它的功能是计算下列级数和,和值由函数值返回。
例如,当n=10,x=0.3时,函数值为1.349859。
doublefun(doublex,intn)
%f"
fun(0.3,10));
doublefun(doublex,intn)
doubles=1.0,s1=1.0;
s1=s1*i;
/*各项中的阶乘*/
s=s+pow(x,i)/s1;
/*按公式求出*/
程序定义了变量s1和s,s1表示每项的分母(即各项的阶乘),s存放累加和。
循环语句控制累加的次数,在循环体中进行阶乘和累加操作,累加的结果存入s中。
此处使用了求乘方函数pow(x,i),其含义是求x的i次方的值。
第二十四套
根据形参i的值返回某个函数的值。
当调用正确时,程序输出:
x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.000000。
doublef1(doublex)
{returnx*x;
doublef2(doublex,doubley)
{returnx*y;
__1__fun(inti,doublex,doubley)
{if(i==1)
return__2__(x);
else
return__3__(x,y);
{doublex1=5,x2=3,r;
r=fun(1,x1,x2);
r+=fun(2,x1,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国计算机等级考试C语言上机考试题库 2140套 全国 计算机等级考试 语言 上机 考试 题库 2140