1、C 语言考试模拟题1 一、 程序修改题(30 分)在考生文件夹下,给定程序 MODI.C 的功能是:输入一个百分制成绩,打印出五级记分成绩。考试成绩在 90 分或 90 分以上为优秀,8089 分为良好,7079 为中等,6069 为及格,低于 60 分为不及格。请修改并运行该程序,然后将源程序文件 MODI.C 提交。程序中有两处错误,错误都在提示行:/*found*/的下面一行,请考生注意。请改正程序中的错误,使它能得出正确的结果。注意:程序中的其它地方请考生不要随意改动,不得增行或删行,也不得更改程序的结构!#include #include #include #include void
2、 main() int score,t;printf(“Please enter a score:“);doscanf(“%d“,while(score100);t=score/10;/*found*/switch(score) -switch(t) case 10:case 9:printf(“优秀!n“);break;case 8:printf(“良好!n“);break;case 7:printf(“中等!n“);break;case 6:printf(“及格!n“);break;/*found*/else :printf(“不及格!n“);:switch(score) -switch(
3、t) else :printf(“不及格!n“)-defalut: printf(“ 不及格!n“)二、 程序填空题(30 分)在考生文件夹下,给定程序 FILL.C 的功能是:打印出 1 至 1000 中满足其个位数字的立方等于其本身的所有整数。本题的结果为:1 64 125 216 729。请填空,并运行该程序,然后将源程序文件 FILL.C 提交。程序有两个空(1)、(2) 需要补充完整。并将程序调试出所需的结果。注意:不要随意改动程序,不得增行或删行,也不得更改程序的结构!#include main()int i,g;for(i=1;i#include int fun(char str
4、1,char ch)/*begin*/*end*/void main() void NONO( );/函数声明char str180,ch;int count; printf(“Enter str1:n“);gets(str1);printf(“Enter ch:n“);ch=getchar();count=fun(str1,ch);printf(“Result is: %dn“,count);NONO( );void NONO( )FILE *fr,*fw;int i, count;char str80, ch;fr=fopen(“D:exam11400207PROGIN.DAT“,“r“)
5、; fw=fopen(“D:exam11400207PROGOUT.DAT“,“w“);for(i=1; i= A int s=0;/*found*/for ( i=1; i for ( i=0; iif (arri % 2 = 1)二、 程序填空题(30 分)在考生文件夹下,给定程序 FILL.C 的功能是:求一维数组 a 中素数之和。例如:如果数组 a 的元素为:2,3,5,7,8,9,10,11,12,13,15,17,则程序的输出应为:Sum is: 58。请填空,并运行该程序,然后将源程序文件 FILL.C 提交。程序有两个空(1)、(2) 需要补充完整。并将程序调试出所需的结果。注
6、意:不要随意改动程序,不得增行或删行,也不得更改程序的结构!#include #include #include void main() int a12=2,3,5,7,8,9,10,11,12,13,15,17,i,j,k,s;/*found*/_(1)int s=0_;for ( i=0; ik )/*found*/s=s+_(2)_ ai_;printf(“Sum is: %dn“,s);三、 程序设计题(40 分)在考生文件夹下,要求程序 PROG.C 的功能是:求 3*3 矩阵的最小值并输出。例如,当矩阵为:-1 2 34 9 57 8 6则最小值为:-1部分源程序存在文件 PROG
7、.C 中。请在 fun( )函数中的 /*begin*/ 与 /*end*/之间填入你编写的若干语句,存盘并运行,直到得出正确结果。请勿改动其它位置的任何内容。注意:main()函数中的最后一行以及 main()函数后面的内容,考生不必阅读,但千万不要对这些内容作任何改动。运行并调试程序,然后将源程序文件 PROG.C 提交。#include #define N 3int fun(int aNN)int min;/*begin*/*end*/return min;void main() void NONO( );/函数声明int aNN=-1,2,3,4,9,5,7,8,6;int i,j,m
8、in; printf(“array is:n“);for(i=0;i#include void main() int a33=4,4,34,37,3,12,5,6,5,i,j,max,min;max = min = a00;for ( i=0; i for ( j=0; j( min aij)min = aij;printf(“The max is: %dn“, max);printf(“The min is: %dn“, min);二、 程序填空题(30 分)在考生文件夹下,给定程序 FILL.C 的功能是:计算 1 到 M(M 为偶数)之间的奇数之和及偶数之和。程序运行结果为:sum of
9、 evens is 2550sum of odds is 2500请填空,并运行该程序,然后将源程序文件 FILL.C 提交。程序有两个空(1)、(2) 需要补充完整。并将程序调试出所需的结果。注意:不要随意改动程序,不得增行或删行,也不得更改程序的结构!#include #define M 100void main() int a,b,c,i;clrscr();a=0;c=0; /*found*/for(i=1;_(1)i#include double average( int arr , int n ) int k=0,i; double s;s = 0;for ( i=0 ;is=ave
10、rage(a,12)printf(“The result is: %.2fn“, s);二、 程序填空题(30 分)在考生文件夹下,给定程序 FILL.C 的功能是:求两个正整数 x,y 的最大公约数和最小公倍数。例如:如果 x=24,y=36,程序的输出应为:max is : 12min is : 72 。请填空,并运行该程序,然后将源程序文件 FILL.C 提交。程序有两个空(1)、(2) 需要补充完整。并将程序调试出所需的结果。注意:不要随意改动程序,不得增行或删行,也不得更改程序的结构!#include #include #include void main() int x,y,t,m
11、ax,min,i,n1,n2;printf(“Please enter two numbers:“);scanf(“%d,%d“,if(x y)t = x; x = y; y = t;n1=x; n2=y;t = n2 % n1;/*found*/while( _(1)t=0 或 t_ )n2 = n1 ;n1 = t ;t = n2 % n1;/*found*/max = _(2)n1_ ;min = x * y / max ;printf(“max is : %dn“,max);printf(“min is : %dn“,min);三、 程序设计题(40 分)在考生文件夹下,要求程序 PR
12、OG.C 的功能是:按下面的公式求 sum 的近似值 ,n 的值由键盘输入,输出保留 4 位小数。1 1 1 1 sum = 1 - + - + +(-1 )(n-1) 3 5 7 2n-1例如:当 n=3 时,结果为 0.8667;当 n=10 时,结果为:0.7605 部分源程序存在文件 PROG.C中。请在 fun( )函数中的 /*begin*/ 与 /*end*/之间填入你编写的若干语句,存盘并运行,直到得出正确结果。请勿改动其它位置的任何内容。注意:main()函数中的最后一行以及 main()函数后面的内容,考生不必阅读,但千万不要对这些内容作任何改动。运行并调试程序,然后将源程
13、序文件 PROG.C 提交。#include “stdio.h“double fun( int n )double c;/*begin*/*end*/void main() void NONO( );/函数声明double sum;int n;printf(“Enter n:n“);scanf(“%d“,sum=fun(n);printf(“sum=%.4fn“,sum);NONO( );void NONO( ) FILE *fr,*fw;int i, x;fr=fopen(“D:exam11400202PROGIN.DAT“,“r“);fw=fopen(“D:exam11400202PROGOUT.DAT“,“w“);for(i=1;i=5;i+) fscanf(fr,“%d“,fprintf(fw,“s=%.4fn“,fun(x);fclose(fr);fclose(fw);Answer: int i;double sum=0.0;for(i=1;i=n;i+) c=1.0/(double)(2*i-1);if(i%2!=0)sum+=c;elsesum-=c;return sum;注:1,此套题库是个人从二十套考试模拟题挑选出来的比较好的题目。3,鉴于个人的能力有限,以及多方面收集资料的误差等原因。解答可能会有纰漏以及些许错误,望电科班的童鞋们斧正.谢谢!