2022年二级程序设计题 .pdf
程序设计题共 2 题,每题5 分调试程序中要修改、编译、运行,观察结果的正确性容易出现 VC 死掉现象,这时用 Ctrl+Del+Alt组合键进入Windows 任务管理器,结束 VC 进程。就可以继续操作了。第一题/*-【程序设计】-功能:统计出若干个学生的平均成绩,最高分以及得最高分的人数。例如:输入10 名学生的成绩分别为92 87 68 56 92 84 67 75 92 66 则输出平均成绩为77.9,最高分为 92,得最高分的人数为3 人。-*/#include stdio.h float max=0;int j=0;float fun(float array,int n)/*Program*/*End*/yzj()FILE*IN,*OUT;名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 6 页 -float iIN10,iOUT;int iCOUNT;IN=fopen(in.dat,r);if(IN=NULL)printf(Please V erify The Currernt Dir.It May Be Changed);OUT=fopen(out.dat,w);if(OUT=NULL)printf(Please V erify The Current Dir.It May Be Changed);for(iCOUNT=0;iCOUNT10;iCOUNT+)fscanf(IN,%f,&iINiCOUNT);iOUT=fun(iIN,10);fprintf(OUT,%f%fn,iOUT,max);fclose(IN);fclose(OUT);main()float a10,ave;int i=0;for(i=0;i10;i+)scanf(%f,&ai);ave=fun(a,10);printf(ave=%fn,ave);printf(max=%fn,max);printf(Total:%dn,j);yzj();修改后的程序:参考/*-【程序设计】-功能:统计出若干个学生的平均成绩,最高分以及得最高分的人数。例如:输入10 名学生的成绩分别为92 87 68 56 92 84 67 75 92 66 则输出平均成绩为77.9,最高分为92,得最高分的人数为3 人。-*/#include stdio.h float max=0;int j=0;名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 6 页 -float fun(float array,int n)/*Program*/int i;float sum=0,av=0;max=array0;for(i=0;in;i+)sum=sum+arrayi;if(max0)av=sum/n;for(i=0;in;i+)if(max-arrayi)0.05)j+;return av;/*End*/yzj()FILE*IN,*OUT;float iIN10,iOUT;int iCOUNT;IN=fopen(in.dat,r);if(IN=NULL)printf(Please Verify The Currernt Dir.It May Be Changed);OUT=fopen(out.dat,w);if(OUT=NULL)printf(Please Verify The Current Dir.It May Be Changed);for(iCOUNT=0;iCOUNT10;iCOUNT+)fscanf(IN,%f,&iINiCOUNT);iOUT=fun(iIN,10);fprintf(OUT,%f%fn,iOUT,max);fclose(IN);fclose(OUT);main()float a10,ave;int i=0;for(i=0;i10;i+)scanf(%f,&ai);ave=fun(a,10);printf(ave=%fn,ave);名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 6 页 -printf(max=%fn,max);printf(Total:%dn,j);yzj();标准答案:第二题/*-【程序设计】-功能:求 x 到 y 之间的奇数和(包括x 和 y)。-*/#include stdio.h int fun(int x,int y)/*Program*/*End*/void yzj()FILE*IN,*OUT;int n;int i2;int o;IN=fopen(in.dat,r);if(IN=NULL)名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 6 页 -printf(Read File Error);OUT=fopen(out.dat,w);if(OUT=NULL)printf(Write File Error);for(n=0;n2;n+)fscanf(IN,%d,&in);o=fun(i0,i1);fprintf(OUT,%dn,o);fclose(IN);fclose(OUT);main()int s;s=fun(1,1999);printf(s=%dn,s);yzj();老师的答案:/*-【程序设计】-功能:求x 到 y 之间的奇数和(包括x 和 y)。-*/#include stdio.h int fun(int x,int y)/*Program*/int i,sum=0;for(i=x;i=y;i+)if(i%2=0)sum+=i;return sum;名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 6 页 -/*End*/void yzj()FILE*IN,*OUT;int n;int i2;int o;IN=fopen(in.dat,r);if(IN=NULL)printf(Read File Error);OUT=fopen(out.dat,w);if(OUT=NULL)printf(Write File Error);for(n=0;n2;n+)fscanf(IN,%d,&in);o=fun(i0,i1);fprintf(OUT,%dn,o);fclose(IN);fclose(OUT);main()int s;s=fun(1,1999);printf(s=%dn,s);yzj();标准答案:名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 6 页 -