全国计算机等级考试二级c语言上机精选题库共40套Word格式文档下载.docx
- 文档编号:21767355
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:159
- 大小:84.55KB
全国计算机等级考试二级c语言上机精选题库共40套Word格式文档下载.docx
《全国计算机等级考试二级c语言上机精选题库共40套Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级c语言上机精选题库共40套Word格式文档下载.docx(159页珍藏版)》请在冰豆网上搜索。
doubley=0,d;
inti;
/********found********/
for(i=100,i<
=m,i+=100)
d=(double)i*(double)i;
y+=1.0/d;
return(y);
intn=2000;
printf("
\nTheresultis%lf\n"
fun(n));
三、编程题
请编写函数fun,该函数的功能是:
统计个年龄段的人数。
N个年龄通过调用随机函数获得,并放在主函数的age数组中;
要求函数把0至9岁年龄段的人数放在d[0]中,把10至19岁年龄段的人数放在d[1]中,把20至29岁年龄段的人数放在d[2]中,其余依此类推,把100岁(含100)以上年龄的人数都放在d[10]中。
结果在主函数中输出。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#defineN50
#defineM11
voidfun(int*a,int*b)
doublernd()
statict=29,c=217,m=1024,r=0;
r=(r*t+c)%m;
return((double)r/m);
{
intage[N],i,d[M];
FILE*out;
for(i=0;
age[i]=(int)(115*rnd());
Theoriginaldata:
\n"
);
i++)
printf((i+1)%10==0?
"
%4d\n"
:
%4d"
age[i]);
\n\n"
fun(age,d);
out=fopen("
out.dat"
"
w"
i<
10;
i++)
%4d---%4d:
%4d\n"
i*10,i*10+9,d[i]);
fprintf(out,"
Over100:
d[10]);
fprintf(out,"
fclose(out);
答案:
一、1、bb[i]=0或*(bb+i)=0
2、bb[i]+=score[i][j]或bb[i]=b[i]+score[i][j]或bb[i]=score[i][j]+bb[i]
二、1、fun(intm)应改为doublefun(intm)
2、for(i=100,i<
=m,i+=100)应改为for(i=100;
=m;
i+=100)
三、
voidfun(int*a,int*b)
for(j=0;
j<
j++)
b[j]=0;
for(i=0;
if(a[i]>
=0&
&
a[i]<
=9)
b[0]+=1;
elseif(a[i]>
=10&
=19)
b[1]+=1;
elseif(a[i>
=20&
=29)
b[2]+=1;
=30&
=39)
b[3]+=1;
=40&
=49])
b[4]+=1;
=50&
=59)
b[5]+=1;
=60&
=69)
b[6]+=1;
=70&
=79)
b[7]+=1;
=80&
=89)
b[8]+=1;
=90&
=99)
b[9]+=1;
else
b[10]+=1;
第2套
填空题
请补充main函数,该函数的功能是:
从键盘输入一组字符串,以’*’结束输入,并显示出这个字符串。
例如,输入abcdef*,结果显示abcdef。
仅在横线上添入所编写的若干表达式或语句,勿改动函数中的其他任何内容。
#defineN80
inti=-1,j=0;
charstr[N];
\nInputastring\n"
do
i++;
scanf(_1_);
}while(_2_);
\n*******displaythestring*******\n"
while(j<
i)
printf(_3_);
j++;
(1)“%c”,&
str[i]
(2)str[i]!
=’*’
(3)”%c”,str[j]
改错题:
下列给定程序中,函数fun的功能是:
计算并输出high以内最大的10个素数之和。
High由主函数传给fun函数。
若high的值为100,则函数的值为732。
math.h>
intfun(inthigh)
intsum=0,n=0,j,yes;
while((high>
=2)&
(n<
10))
yes=1;
for(j=2;
=high/2;
/********found********/
if(high%j==0)
{
yes=0;
break
}
if(yes)
{
sum+=high;
n++;
}
high--;
returnsum;
%d\n"
fun(100));
break改为break;
程序设计:
请编写函数fun,该函数的功能是:
统计一行字符串中单词的个数,作为函数值返回。
一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始和结束都没有空格。
#include<
string.h>
intfun(char*s)
charline[N];
intnum=0;
FILE*out;
char*test[]={"
HelloWorld!
"
Thisisateststring."
ab"
cdefg,sfl"
};
Enterastring:
gets(line);
num=fun(line);
Thenumberofwordis:
%d\n\n"
num);
out=fopen("
for(num=0;
num<
4;
num++)
printf(out,"
fun(test[num]));
fclose(out);
第3套
第一题:
已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体中,给定程序的功能是找出成绩最低的学生记录,通过形参返回函数。
请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。
#defineN10
typedefstructss
charnum[10];
ints;
}STU;
fun(STUa[],STU*s)
stuh;
h=a[0];
for(i=1;
if(a[i].s<
h.s)
h=a[i];
*s=h;
STUa[N]=
{"
A01"
81},{"
A02"
89},{"
A03"
66},{"
A04"
87},
A05"
77},{"
A06"
90},{"
A07"
79},{"
A08"
61},
A09"
80},{"
A10"
71}
},m;
*****Theoriginaldata*****\n"
No=%sMark=%d\n"
a[i].num,a[i].s);
fun(a,&
m);
*****THERESULT*****\n"
Thelowest:
%s,%d\n"
m.num,m.s);
第二题:
将字符串p中的所有字符复制到字符串b中,要求每复制三个字符之后插入一个空格。
例如,在调用fun函数之前给字符串a输入ABCDEFGHIJK,调用函数之后,字符串之后,字符串b中的内容则为ABCDEFGHIJK。
请改正程序中的错误,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
voidfun(char*p,char*b)
inti,k=0;
while(*p)
/********found********/
i=0;
while(i<
3&
*p)
b[k]=*p;
k++;
p++;
i++;
if(*p)
b[k++]='
'
;
b[k]='
\0'
chara[80],b[80];
Enterastring:
"
gets(a);
Theoriginalstring:
puts(a);
fun(a,b);
\nThestringafterinsertspace:
puts(b);
第三题:
请编写一个函数fun,它的功能是:
计算并输出给定整数n的所有因子(不包括1与自身)之和。
规定n的值不大于1000。
例如,若主函数从键盘给n输入的值为856,则输出为sum=763。
intfun(intn)
intn,sum;
Inputn:
scanf("
%d"
&
n);
sum=fun(n);
sum=%d\n"
sum);
fun(123));
fun(456));
fun(789));
fun(147));
fun(258));
intfun(intn)
ints=0,i;
for(i=2;
=n-1;
if(n%i==0)
s+=i;
returns;
第4套
请补充main函数,该函数的功能是:
把字符串str1中的非空格字符拷贝到字符串str2中.
例如,若str1=”nicetomeetyou!
”,则str2=”nicetomeetyou!
”
仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其他任何内容.
staticcharstr1[N]="
nicetomeetyou!
charstr2[N];
inti=0,j=0;
\n******str1******\n"
puts(str1);
while(str1[i])
if(___1___)
str2[j++]=str1[i];
___2___;
\n******str2******\n"
j;
%c"
str2[i]);
改错题
下列给定程序中,函数fun的功能是:
将大写字母转换为对应小写字母之后的第五个字母;
若小写字母为v~z,使小写字母的值减21.转换后的小写字母作为函数值返回.例如,若形参是字母A,则转换字母为小写字母f;
若形参是字母W,则转换为小写字母b.
请改正函数fun中的错误,使它能得出正确的结果。
注意:
ctype.h>
charfun(charc)
if(c>
='
A'
&
c<
Z'
)
c=c-32;
a'
u'
c=c-5;
elseif(c>
v'
z'
c=c-21;
returnc;
charc1,c2;
\nEnteraletter(A-Z):
c1=getchar();
if(isupper(c1))
c2=fun(c1);
\n\nTheletter%cchangeto%c\n"
c1,c2);
else
\nEnter(A-Z)!
编程题
请编写函数fun,其功能是:
将s所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。
例如,若s所指字符串中的内容为ABCDEFG12345,其中字符A的ASCII码值为奇数、……、
字符1的ASCII码值也为奇数、……都应当删除,其他依次类推。
最后t所指的叔祖中的内容应是BDF24。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
voidfun(char*s,chart[])
chars[100],t[100],Msg[]="
PleaseenterstringS:
printf(Msg);
%s"
s);
fun(s,t);
\nTheresultis:
%s\n"
t);
fun(Msg,t);
第1处填空str1[i]!
=’’或’’!
=str1[i]
第2处填空i++或++i或i+=1或i=i+1
第1处:
c=c-32;
应改为c=c+32;
第2处:
c=c-5;
应改为c=c+5;
voidfun(char*s,chart[])
intI,j=0,n;
n=strlen(s);
n;
if(s[i]%2==0)
t[j]=s[i];
j++;
t[j]=’\0’
第5套
填空题
请补充main函数,该函数的功能是:
输出一个N*N矩阵,要求非周边元素赋值0,周边元素赋值1。
仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其他内容。
intbb[N][N];
inti,j,n;
\nInputn:
&
if(i==0||i==n-1||j==0||j==n-1)
___1___;
else
___2___;
\n*****theresult*******\n"
printf("
bb[i][j]);
下列给定程序中函数fun的功能是:
从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中,例如,当s中的数为7654321时,t中的数为7531。
/********found********/
voidfun(longs,longt)
longs1=10;
*t=s%10;
while(s>
0)
s=s/100;
*t=s%10*s1+*t;
s1=s1*100;
longs,t;
\nPleaseenters:
%ld"
s);
fun(s,&
t);
Theresultis:
%ld\n"
将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是:
将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。
例如,当a=45,b=12,调用该函数后,c=2415。
voidfun(inta,intb,long*c)
main()
inta,b;
longc;
printf("
Inputa,b;
scanf("
%d%d"
a,&
b);
fun(a,b,&
c);
Theresultis:
c);
for(a=20;
a<
50;
a+=3)
fun(a,109-a,&
%ld\n"
答案
第一题(填空题)
第1处填空:
bb[i][j]=1
第2处填空:
bb[i][j]=0
第二题(改错题)
voidfun(longs,longt)应改为voidfun(longs,long*t)
s1=s1*100;
应改为s1=s1*10;
第三题(编程题)
voidfun(int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国 计算机等级考试 二级 语言 上机 精选 题库 40