湖南工业大学c语言题库 下载本文

C语言考试模拟题 1一、 程序修改题(30分) 在考生文件夹下,给定程序MODI.C的功能是: 输入一个百分制成绩,打印出五级记分成绩。考试成绩在90分或90分以 上为优秀,80~89分为良好,70~79为中等,60~69为及格,低于60分 为不及格。 请修改并运行该程序,然后将源程序文件MODI.C提交。 程序中有两处错误,错误都在提示行: /***********found***********/的下面一行,请考生注意。 请改正程序中的错误,使它能得出正确的结果。 注意:程序中的其它地方请考生不要随意改动,不得增行 或删行,也不得更改程序的结构! #include /*************found**************/ #include switch(score) ----switch(t) #include { case 10: #include case 9:printf(\优秀!\\n\ void main() case 8:printf(\良好!\\n\ { int score,t; case 7:printf(\中等!\\n\ printf(\ case 6:printf(\及格!\\n\ do /*************found**************/ scanf(\ else :printf(\不及格!\\n\ while(score<0||score>100); } t=score/10; }switch(score) ----switch(t) else :printf(\不及格!\\n\不及格!\\n\ 二、 程序填空题(30分) 在考生文件夹下,给定程序FILL.C的功能是: 打印出1至1000中满足其个位数字的立方等于其本身的所有整数。本题的结果为:1 64 125 216 729。 请填空,并运行该程序,然后将源程序文件FILL.C提交。 程序有两个空(1)、(2)需要补充完整。并将程序调试出 所需的结果。 注意:不要随意改动程序,不得增行或删行,也不得更 改程序的结构! #include /************found************/ main() if(_(2)_ g*g*g==i __) { int i,g; for(i=1;i<1000;i++) printf(\ { } /************found************/ printf(\ } g=i___(1)% ___10; 三、 程序设计题(40分) 在考生文件夹下,给定程序PROG.C的功能是: 求指定字符在字符串中出现的次数并输出。 例如,当字符串为\,指定字符为'a’时 则应输出:Result is: 2 部分源程序存在文件PROG.C中。请打开该程序文件, 在fun( )函数中的/*******begin********/ 与 /********end*********/ 之间填入你编写的若干语句。 main( )函数中的最后一行和main( )函数后面的程序学生不必阅读,但不要进行任何改动,也不要改动其它位置的任何内容。 保存、运行并调试程序,最后将源程序文件PROG.C提交。 #include } #include void NONO( ) int fun(char str1[],char ch) {FILE *fr,*fw; { int i, count; /***********begin***********/ char str[80], ch; /************end************/ } fr=fopen(\ void main() T\ { fw=fopen(\ void NONO( );//函数声明 char str1[80],ch; DAT\ int count; for(i=1; i<=2; i++) printf(\ str1:\\n\ { fscanf(fr,\ gets(str1); ch=fgetc(fr); printf(\ ch:\\n\ count=fun(str,ch); ch=getchar(); fprintf(fw,\ count=fun(str1,ch); fclose(fr); printf(\ fclose(fw); NONO( ); } Answer : { char c; int count=0; while((c=getchar()) != '\\n') {if(c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z') ++count; } 2一、 程序修改题(30分) 在考生文件夹下,给定程序MODI.C的功能是: 求一维数组a中值为奇数的元素之和。 例如,当一维数组a中的元素为:11,4,2,7,3,12,5,34,5,9 程序的输出应为:The result is: 40。 请修改并运行该程序,然后将源程序文件MODI.C提交。 程序中有两处错误,错误都在提示行: /***********found***********/的下面一行,请考生注意。 请改正程序中的错误,使它能得出正确的结果。 注意:程序中的其它地方请考生不要随意改动,不得增行 或删行,也不得更改程序的结构! #include for ( i=1; i<10; i++) #include /************found************/ void main() if (i % 2 == 1) { int arr[10]={11,4,2,7,3,12,5,34,5,9},i; s = s + arr[i]; int s=0; printf(\ /************found************/ } for ( i=1; i<10; i++) > >for ( i=0; i<10; i++) if (i % 2 == 1) >>if (arr[i] % 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)需要补充完整。并将程序调试出 所需的结果。 注意:不要随意改动程序,不得增行或删行,也不得更 改程序的结构! #include k=(int)sqrt(a[i]); #include for ( j=2;j <= k; j++) #include if (a[i] % j == 0) void main() break; { int if( j>k ) a[12]={2,3,5,7,8,9,10,11,12,13,15,17},i,j,k,s; /************found************/ /************found************/ s=s+__(2)_ a[i]_; ___(1)int s=0__; } for ( i=0; i<12; i++) printf(\ { } 三、 程序设计题(40分) 在考生文件夹下,要求程序PROG.C的功能是:求3*3矩阵的最小值并输出。 例如,当矩阵为: -1 2 3 4 9 5 7 8 6 则最小值为:-1 部分源程序存在文件PROG.C中。 请在fun( )函数中的/*******begin********/ 与 /********end*********/