《c语言程序设计》谭浩强浙师大练习题.docx_第1页
《c语言程序设计》谭浩强浙师大练习题.docx_第2页
《c语言程序设计》谭浩强浙师大练习题.docx_第3页
《c语言程序设计》谭浩强浙师大练习题.docx_第4页
《c语言程序设计》谭浩强浙师大练习题.docx_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

浙江师范大学C语言程序设计考试卷考试形式笔试(闭卷) 使用学生 全校08级理科(非行知)专业 考试时间120分钟出卷时间 2009 年5月31日【说明】考生应将全部答案都写在答题纸上,否则作无效处理。试题17为程序选择填空题,为每个空格挑选出一个正确答案写在答题纸上。试题89为程序设计题。试题1 (每小题2分,共10分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,选择一个正确答案. 【程序说明】求多项式的值,直到最后一项的绝对值小于10-4. 【运行示例】sum=0.785448 【程序】#include #includevoidmain() inti=1, flag=1; doubleitem, (2) ; do item = (3) ;sum = sum+ item ; flag = (4) ; while( (5) );printf(sum = %.2f n, sum); 【供选择的答案】 (1)A.math.hB.string.hC.ctype.hD.stdlib.h (2)A.sB.sumC.sum = 0D.sum = 1 (3)A.1 / 2*i-1B.1 / (2*i-1)C.flag / (2*i-1)D.(double)flag / (2*i-1)(4)A.0 B.1 C.-1D.- flag(5)A. item = 0.0001B. fabs(item) = 0.0001C. item 0.0001D. fabs(item) 0.0001 试题2 (每小题2分,共10分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,选择一个正确答案. 【程序说明】输入一个正整数n,然后输入n个单精度实数,用冒泡法将这些实数从低到高排序后输出。【运行示例】Enter n: 5Enter 5 floats: 75.273 89.5 67.342 -98 5.41After sorted: -98.00 5.41 67.34 75.28 89.50【程序】#include voidmain() intn, i, j;float temp, a100; printf(Enter n(n0): );while(scanf(%d, &n), (6) ); /输入正整数nprintf(Enter %d floats: , n);for(i=0; in; i+) scanf(%f, (7) );for(i=0; in-1; i+)for(_(8) ; (9) ; j-)if( (10) )temp = aj-1;aj-1 =aj;aj = temp; printf( Afer sorted: );for(i=0; i 0B.n = 0D.n i B.j 0C.j n-iD.j ajB. aj-1 aj C. aj aj+1D. aj-1 aj+1 试题3 (每小题2分,共8分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,选择一个正确答案. 【程序说明】输入十六进制整数形式的字符串, 调用函数htod将它转换成十进制整数,然后输出该整数.【运行示例】Enter hexadecimal string: 4fDeciamal integer is: 79【程序】#include int ctoi(char c)if (c=0 & c= A & c= a & c= z)return (12) ;else return 0;int htod( char *h)int i, d=0;for (i=0; hi!= 0; i+)d = _(13) ; return d;voidmain() int dec;char hex10;printf(Enter hexadecimal string: );_(14)_;dec = htod (hex);printf(Decimal integer is: %dn, dec);【供选择的答案】 (11)A.c - AB.c +10C.c - FD.c A +10(12)A.c aB.c + 10 C.c fD.c a +10(13)A. d + ctoi( hi )B. d*16 + ctoi( hi)C. d*10 + ctoi( hi)D. d + ctoi( hi)*16(14)A.hex= getchar() B.scanf (%c, hex)C.scanf(%s, hex)D.scanf(%s, &hex) 试题4(每小题2分,共8分)【程序说明】数组x7的初值为1, 2, 3, 4, 5, 6, 7,经调用函数f后,数组x的元素被循环左移3位,输出移位后数组x的各元素,屏幕上的输出结果为:4 5 6 7 1 2 3【程序】#include void f(int a,int n,int k)int i,j,t;for(i=0;ik;i+)(15);for( (16) ) aj-1 = aj; (17) ;void main()int i, x7 = 1,2,3,4,5,6,7; (18) ; for(i=0; i7; i+) printf(%4d,xi);printf(n);【供选择的答案】(15) A t = ai B t = ak C t = aj D t = a0(16) A j=i; jn; j+ B j=1; jn; j+ C j=1; jk; j+ D j=i+1; jn; j+(17) A an=t B an-1=ai C an-1=t D an=ai(18) A f(x,7,3) B f(x,7,5) C f(x,3,7) D f(x,5,7)试题5(每小题2分,共8分)阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】#includevoid f1( int x, int y);void f2( int *x, int y );void f3( int x, int *y );void f4( 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(&a, b);printf(“a=%d, b=%d n”, a,b);a = 1, b = 2;f3(a, &b);printf(“a=%d, b=%d n”, a,b);a = 1, b = 2;f4(&a,&b);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;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) 程序运行时,第一行输出 。A. a=1, b=2 B. a=2, b=1C. a=1, b=1 D. a=2, b=2(20) 程序运行时,第二行输出 。A. a=1, b=2 B. a=2, b=1C. a=1, b=1 D. a=2, b=2(21) 程序运行时,第三行输出 。A. a=1, b=2 B. a=2, b=1C. a=1, b=1 D. a=2, b=2(22) 程序运行时,第四行输出 。A. a=1, b=2 B. a=2, b=1C. a=1, b=1 D. a=2, b=2试题6(每小题2分,共8分)阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】#include int a= 0; void fun()int a = 1; / 第4行 printf(%d, a+);void main()int i;for(i = 1; i = 2; i+) fun();printf(%d, a);(23) 程序运行结果是 。A. 1, 2, 3 B. 1, 2, 0C. 1, 1, 0 D. 0, 1, 2(24) 其它代码不变,将源程序第4行改为“ static int a=1; ”,程序运行结果是 。A. 1, 2, 3 B. 1, 2, 0C. 1, 1, 0 D. 0, 1, 2(25) 其它代码不变,将源程序第4行改为“ a=1; ”,程序运行结果是 。A. 1, 1, 2 B. 1, 2, 0C. 1, 1, 0 D. 0, 1, 2(26) 其它代码不变,将源程序第4行改为“ ; ”,程序运行结果是 。A. 1, 1, 2 B. 1, 2, 0C. 1, 1, 0 D. 0, 1, 2试题7(每小题2分,共8分)阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】#include #includestruct studentint num;char name20;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) 运行程序,输出 。A. (Zhao, F) B. (Qian, M)C. (Zhao, M) D. (Qian, M)(28) 为得到与(27)题相同的运行结果,程序的第18行可改写为 。A. *p = s B. p = &sC. p = s0 D.p = &s0(29) 将程序的第18行改为“p = &s1”, 运行程序, 输出 。A. (Zhao, M) B. (Qian, M)C. (Zhao, F) D. (Qian, F)(30) 将程序的第18行改为“p= s+2”, 运行程序, 输出 。A. (Qian, M) B. (Sun, M)C. (Qian, F) D. (Sun, F)试题8 程序设计(12分)【编程要求】 输入一个整数n,计算并输出它的各位数字之和。如输入3427,则它的各位数字之和为3+4+2+7,即16.试题9 程序设计(28分) 【编程要求】(1)用递归方式定义函数fib(n),功能是计算菲波那契数列1,1,2,3,5,8,13,的第n项, 其中,数列第1项和第2项均等于1,从第三项开始的各项等于前两项之和。函数返回值类型是int 。(8分)(2)定义函数fact(n),其功能是计算整数n的阶乘,即n!=1*2*3*n, 函数返回值类型是double。 (8分)(3)定义主函数main(),要求输入整数n、计算下列算式的值,并将计算结果按”%.2f”的格式写入当前文件夹下的文件”result.dat”中:其中,该算式的第i项,分子是菲波那契数列的第i项为分子,分母是阶乘i!。要求分别调用在(1)和(2)所定义的递归函数fib()和fact()计算分子和分母。(12分)2008-2009学年第二学期浙江师范大学 计算机基础(C语言)期末考试 A卷 答案与评分标准第一部分:选择题( 2*30=60分)ACDDBDCCABDDBCDBCAADCBCBADADBD第二部分:编程题(12+28分)7. (12)#include-1分void main()int n, s=0;-1分 printf(Enter n:); scanf(%d,&n );-1分 if(n0) n=-n;-2分 /或 #include + n=fabs(n); while( n!=0)-2分 s += n%10;-2分 n /= 10;-2分 printf(s=%d n,s );-1分 8. (28)int fib(int n) -1分if(n=1 | n=2) return 1;-3分else return fib(n-1)+fib(n-2);-4分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. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论