资源描述:
《2010全国计算机等级考试c++上机试题及答案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一、填空题 请补充函数fun,该函数的功能是:统计所有小于等于x(x>2)的素数的个数,素数的个数作为函数值返回。例如,输入x=20,结果:2,3,5,7,11,13,17,19。 请勿改动主函数main与其他函数中的任何内容,仅在fun函数的横线上填写所需的若干表达式或语句。 注意:部分源程序给出如下。 #include intfun(intx) { inti,j,count=0; printf("theprimenumberbetween2to%d",x); for(i=2;i<=x;i++) { for(___1___;j if(___
2、2___%j==0) break; if(___3___>=i) { count++; printf(count%15?"%5d":"%5d",i); } } returncount; main() { intx=20,result; result=fun(x); printf("thenumberofprimeis:%d",result); } 二、改错题 下列给定程序中函数fun的功能是:计算m!。例如,给m输入3,则输出6.000000。 请修改程序中的错误,使程序能输出正确的结果。 注意:不要改动main函数,不能
3、增行或删行,也不能更改程序的结构。 #include #include doublefun(intm) { doubleresult=1.0; /********error********/ ifm==0 return1.0; while(m>1&&m<170) /*******error*********/ result=m--; returnresult; } main() { intm; printf("inputm:"); scanf("%d",&m); printf("%d!=%1f",m,fun(m)); }三
4、、编程题 学生的记录由学生和成绩组成,m名学生的数据已在主函数中放入结构体数组stu中,请编写函数fun,它的功能是:把分数最高的学生数据放在high所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。 请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 注意:部分源程序给出如下。 #include #definem10 typedefstruct { charnum[10]; ints; }score; intfun(score*p,score*q) { } main() {
5、scorestu[m]={{"02",69},{"04",85}, {"01",91},{"08",64},{"06",87},{"015",85},{"013",91},{"012",64},{"011",91},{"017",64}}; scorehigh[m]; inti,n; file*out; n=fun(stu,high); printf("the%dhighscore:",n); for(i=0;i printf("%s%4d",high[i].num, high[i].s); printf(""); out=fopen("out
6、file.dat","w"); fprintf(out,"%d",n); for(i=0;i fprintf(out,"%4d",high[i].s); fclose(out); } 980