(2013——2014学年第 1 学期)
考试形式 笔试(闭卷) 使用学生 全校13级理工科(非行知)专业
考试时间 120 分钟 出卷时间 2013 年 12 月 24 日
说明:考生应将全部答案都写在答题纸上,否则作无效处理。
一、程序阅读与填空(35小题,每小题2分,共70分)
1.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】 从键盘上输入10个学生的成绩,统计并输出最高成绩和最低成绩。
运行示例:
Enter marks: 78 80 65 66 95.5 72 90 75 88 81.5
amax=95.5
amin=65.0
【程序】
#include void main() { float x, amax, amin; int i; printf(“Enter marks:”); for(i=1; i<=10; i++) { (1) ; if( i==1) (2) ; else if ( x>amax ) (3) ; else if (x printf(“amax=%.1f\\namin=%.1f\\n”, amax, amin); } 【供选择的答案】 (1)A.scanf(“%d”, &x) B.scanf(“%f”, &x) C.amax=amin=x D.scanf(“%lf”, &x) (2)A.amax=amin=x B.amax=amin=0 C.amax=x D.amin=x (3)A.x=amax B.amax=x C.x=amin D.amin=x (4)A.x=amax B.amax=x C.x=amin D.amin=x 2.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 输入15个字符,统计英文字母、空格、数字和其它字符的个数。 运行示例: Enter 15 characters:a B5c&d*!221Gh? digit=4,letter=6,blank=1,other=4 【程序】 #include void main( ) { int i,digit,blank ,letter,other; (5) ch; digit=blank=letter=other=0; printf("Enter 15 characters:"); i=1; do{ ch = (6) ; if (('a'<=ch&&ch<='z')||('A'<=ch&&ch<='Z')) letter++; ( (7) ) digit++; ( (8) ) blank++; ; i= i+1; }while( i<= 15 ); printf("digit=%d,letter=%d,blank=%d,other=%d digit,letter,blank,other); } 【供选择的答案】 (5)A.int .double C.char D.float (6)A.getchar B.getchar() C.gets() D.putchar() (7)A.'0'<=ch&&ch<='9' B.0<=ch&&ch<=9 C.'0'<=ch <='9' D.0<=ch<=9 (8)A.ch==' ' B.ch<=' ' C.ch=' ' D.ch=32 3.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 输入一批整数(以零或负数为结束标志),求偶数和。 运行示例: Enter an integer:9 4 6 10 31 -1 sum=20 【程序】 #include void main() {even; even=0; (9) ) { if( (10) ) even = even+x; (11) ; printf("sum=%d (12) ); } 【供选择的答案】 (9) A.x<=0 B.x==0 C.x!=0 .x>0 (10)A.x%2!=0 B.x%2==0 C.x/2==0 .x%2=0 (11)A.scanf("%d",&x) .scanf("%d",x) C.x++ .x=even (12)A.sum B.even C.x .20 4.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 输入N个整数到一个数组中,将它们由小到大排序后输出。 运行示例: Input 5 numbers:9 4 6 10 31 4 6 9 10 31 【程序】 #include #define N 5 void main() { int i, j, temp, a[N]; printf("Input %d numbers:", N ); for(i=0; i (14) ; i++) { k=i; (15) ; j< N; j++) (16) ) k = j; temp=a[i]; a[i]=a[k]; a[k]=temp; N;i++) printf("%d ",a[i]); } 【供选择的答案】 (13) A.a[i] .&a[i] C.a D.a[N] (14) A.N B.N-1 C.a[N-1] D.a[N] (15) A.0 .1 C.i .i+1 (16) A.a[k]>a[j] .a[k] C.a[j]>a[j+1] .a[j]5.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 输入一个整数,按逆序输出。 运行示例: Input n: 12345 The reversed digits are:54321 【程序】 #include void main ( ) { int n; (17) ; printf("Input n: "); scanf("%d",&n); (18) ; } void reverse(int n) { printf("%d (19) ); (20) ); } 【供选择的答案】 (17) A.reverse(int n) B.void reverse(int n) C.int reverse(int n) D.reverse(n) (18) A.reverse(int n) B.void reverse(int n) C.reverse(n) .int reverse(int n) (19) A.n%10 B.int n%10 C.n/10 .int n/10 (20) A.n%10 B.int n%10 C.n/10 D.int n/10 6.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 输入一个学生数学、物理、c语言的成绩,求其平均值。 运行示例: 输入:70 82 95 输出: aver:82.33 【程序】 #include struct score{ int phys; int c_language; float aver; }; void main() { (21) s; (22) ); (23) ; printf("aver:%.2f\\n”, (24) ); } 【供选择的答案】 (21) A.struct .struct score C.char .int (22) A.&score.math, &score.phys, &score.c_language B.&math, &phys, &c_language C.&s.math, &s.phys, &s.c_language D.&s->math, &s->phys, &s->c_language (23) A. (s.math+s.phys+s.c_language)/3.0 B. (s->math+s->phys+s->c_language)/3.0 C.(s.math+s.phys+s.c_language)/3 D.(s->math+s->phys+s->c_language)/3 (24) A.*s.aver .aver C.s.aver D.s->aver 7.阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序】 #include int f1(int n) { int i; for(i=2;i return 1; } int f2(int n) { int i,sum=0; for(i=0;i } int f3(int n) { int i,p =1; for(i=1;i int f4(int n) { if(n==1) return 2; else return (n+1)*f4(n-1); } void main() { \\nf1(15)); 10)); printf("%d\\n",f3(5)); printf("%d\\n",f4(5)); } 【问题】 (25)程序运行时,第1行输出 (25) 。 A.0 B.1 C.3 .15 (26)程序运行时,第2行输出 (26) 。 A.55 .45 .30 .20 (27)程序运行时,第3行输出 (27) 。 A.6 .24 .120 D.720 (28)程序运行时,第4行输出 (28) 。 A.6 .24 .120 D.720 8.阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序1】 #include void main() { int i, j, t, a[3][4] = {1,3,5,7,9,11,13,15,17,19,21,23}; { t = a[i][j]; a[i][j] = a[i][3-j]; a[i][3-j] = t; } printf("%d\\n", a[2][2]); } 【程序2】 #include int k = 1; void Fun() { /*第4行*/ %d,", k); k++; } void main() printf("%d", k); } 【问题】 (29)程序1运行时,第1行输出 (29) 。 .1 .3 .5 .7 (30)程序1运行时,第2行输出 (30) 。 .15 .17 .19 .21 (31)程序2运行时,程序的输出是 (31) 。 .1,1,1 B.1,2,1 C.1,2,3 D.1,1,2 (32)程序2运行时,将第4行改为“static int k=1;”后,程序的输出是 (32) 。 A.1,1,1 B.1,2,1 C.1,2,3 D.1,1,2 9.阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序】 #include #include int strprocess(char *p1,char *p2, char *p3) { int len1, len2, len3; len1 = strlen(p1); len2 = strlen(p2); len3 = strlen(p3); printf("%s\\n",p1+len2); printf("%s\\n",p1+len3); return (len2+len3)>len1? 1:0; } void main() { char str1[100]="The c language exam "; /*注意最后有一个空格*/ char str2[100]="is easy."; char str3[100]="is difficult."; strprocess(str1,str2, str3)) printf("%s\\n",strcat(str1,str2)); else printf("%s\\n",strcat(str1,str3)); } 【问题】 (33)程序运行时,第1行输出 (33) 。 .nguage exam B.anguage exam C.guage exam D.exam (34) 程序运行时,第2行输出 (34) 。 A.exam B.e exam C.guage exam D.anguage exam (35) 程序运行时,第3行输出 (35) 。 A.is easy. B.is difficult. C.The c language exam is difficult. D.The c language exam is easy. 二、程序编写(共30分) 10.(8分)有一个函数: 编写程序,输入x,输出y的值。 11.(12分)按下面要求编写程序: (1)定义函数f(n)计算1+3+5+……+(2n-1),函数返回值类型是double。 (2)定义函数main(),输入正整数n,计算并输出下列算式的值。要求调用函数f(n)计算1+3+5+……+(2n-1)。 12.(10分)编写程序,输入一长度不大于100的字符串,将该字符串反序后输出。 浙江师范大学《C语言程序设计》考试卷参 (2013——2014学年第 1 学期) 考试形式 笔试(闭卷) 使用学生 全校13级理工科(非行知)专业 考试时间 120 分钟 出卷时间 2013 年 12 月 24 日 试题1—试题9(每小题2分,共70分) #include void main() { float y,x; scanf("%f",&x); if (x<0) y=x; else if (x<5) y=2*x-1; else y=4*x+5; printf("y=%f",y); } 试题11(共12分) #include double f(int n) { n; i++) sum = sum + 2*i-1; } void main() { s = s + 1/f(i); } 试题12(共10分) #include #include void main() { temp=str[i]; str[i]=str[j]; str[j]=temp; }
试题10(共8分)试题1 题号 1 2 3 4 答案 B A B D 试题2 题号 5 6 7 8 答案 C B A A 试题3 题号 9 10 11 12 答案 D B A B 试题4 题号 13 14 15 16 答案 B B D A 试题5 题号 17 18 19 20 答案 B C A C 试题6 题号 21 22 23 24 答案 B C A C 试题7 题号 25 26 27 28 答案 A D B D 试题8 题号 29 30 31 32 答案 B C A B 试题9 题号 33 34 35 答案 A B D