《《c语言程序设计》谭浩强浙师大练习题》由会员分享,可在线阅读,更多相关《《c语言程序设计》谭浩强浙师大练习题(10页珍藏版)》请在金锄头文库上搜索。
1、浙江师范大学C 语言程序设计考试卷考试形式 笔试(闭卷) 使用学生 全校 08 级理科(非行知)专业 考试时间 120 分钟 出卷时间 2009 年 5 月 31 日 【说明】(1)考生应将全部答案都写在答题纸上,否则作无效处理。 (2) 试题 17 为程序选择填空题,为每个空格挑选出一个正确答案写在答题纸上。试 题 89 为程序设计题。试题试题 1 1 (每小题 2 分,共 10 分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,选择一个正确答案. 【程序说明】求多项式的值,直到最后一项的绝对值小于 10-4. 11111.3579【运行示例】sum = 0.7854480.7854
2、48 【程序】#include #include void main() int i=1, flag=1; double item, (2) ; do item = (3) ; sum = sum+ item ; flag = (4) ; while( (5) ); printf(“sum = %.2f n“, sum); 【供选择的答案】 (1) A.math.h B.string.h C.ctype.h D.stdlib.h (2) A.s B.sum C.sum = 0D.sum = 1 (3) A.1 / 2*i-1 B.1 / (2*i-1) C.flag / (2*i-1)D.(d
3、ouble)flag / (2*i-1)(4) A.0 B.1 C.-1D.- flag(5) A. item = 0.0001B. fabs(item) = 0.0001 C. item void main() int n, i, j; float temp, a100; printf(“Enter n(n0): “); while(scanf(“%d“, /输入正整数 nprintf(“Enter %d floats: “, n); for(i=0; i 0B.n = 0D.n i B.j 0 C.j ajB. aj-1 aj C. aj aj+1D. aj-1 aj+1 试题试题 3 3
4、 (每小题 2 分,共 8 分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,选择一个正确答案. 【程序说明】 输入十六进制整数形式的字符串, 调用函数 htod 将它转换成十进制整数,然后输出该 整数. 【运行示例】Enter hexadecimal string: 4f4f Deciamal integer is: 7979【程序】#include int ctoi(char c) if (c=0 for(i=0;i void f1( int x, int y); void f2( int *x, int y ); void f3( int x, int *y ); void f4
5、( int *x, int *y); void main() int a=1, b=2;f1(a, b); printf(“a=%d, b=%d n”, a,b);a = 1, b = 2; f2( printf(“a=%d, b=%d n”, a,b);a = 1, b = 2; f3(a, printf(“a=%d, b=%d n”, a,b);a = 1, b = 2; f4( printf(“a=%d, b=%d n”, a,b); void f1(int x, int y) int t; t = x;x = y; y = t; void f2(int *x, int y) int t
6、; t = *x; *x = y; y = t; void f3(int x, int *y) int t; t = x; x = *y; *y = t; void f4( int *x, int *y) int t; t=*x; *x=*y; *y=t; (19)(19) 程序运行时,第一行输出 。A. a=1, b=2 B. a=2, b=1C. a=1, b=1 D. a=2, b=2(20)(20) 程序运行时,第二行输出 。A. a=1, b=2 B. a=2, b=1C. a=1, b=1 D. a=2, b=2(21)(21) 程序运行时,第三行输出 。A. a=1, b=2 B
7、. a=2, b=1C. a=1, b=1 D. a=2, b=2(22)(22) 程序运行时,第四行输出 。A. a=1, b=2 B. a=2, b=1C. a=1, b=1 D. a=2, b=2试题试题 6 6(每小题 2 分,共 8 分)阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】#include int a= 0; void fun()int a = 1; / 第 4 行 printf(“%d,“, a+);void main()int i;for(i = 1; i #includestruct studentint num;char name2
8、0;char sex; ;void main()struct student s4, *p ;char *sname = “Zhao“, “Qian“, “Sun“, “Li“;char csex = M, F;int i;for( i = 0; iname, p-sex);(27)(27) 运行程序,输出 。A. (Zhao, F) B. (Qian, M)C. (Zhao, M) D. (Qian, M)(28)(28) 为得到与(27)题相同的运行结果,程序的第 18 行可改写为 。A. *p = s B. p = -1 分分printf(“Enter n:“);scanf(“%d“,-
9、1 分分if(n + n=fabs(n);while( n!=0)-2 分分s += n%10;-2 分分n /= 10;-2 分分printf(“s=%d n“,s );-1 分分 8. (28) (1)int fib(int n) -1 分 if(n=1 | n=2) return 1;-3 分 else return fib(n-1)+fib(n-2);-4 分 (2)double fact(int n)-1 分 if (n=1) return 1;-3 分else return n*fact(n-1);-4 分 或者 double fact(int n)-1 分 double r=1;-1 分 int i;-1 分 for(i=1; i -1 分 void main() FILE *fp;-1 分 int i,n;-1 分double s=0;-1 分fp=fopen(“result.dat”,”w”); -1 分 scanf(“%d”, -1 分for(i=1; i=n; i+) -1 分 s = s+ fib(i)/fact(i); -调用函数 2 分,累加 1 分fprintf(fp, “%.2f”, s);-1 分 fclose(fp);-1 分