您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 《c语言程序设计》谭浩强浙师大练习题
浙江师范大学《C语言程序设计》考试卷考试形式笔试(闭卷)使用学生全校08级理科(非行知)专业考试时间120分钟出卷时间2009年5月31日【说明】(1)考生应将全部答案都写在答题纸上,否则作无效处理。(2)试题1~7为程序选择填空题,为每个空格挑选出一个正确答案写在答题纸上。试题8~9为程序设计题。试题1(每小题2分,共10分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,选择一个正确答案.【程序说明】求多项式11111...3579的值,直到最后一项的绝对值小于10-4.【运行示例】sum=0.785448【程序】#includestdio.h#include(1)voidmain(){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.0B.1C.-1D.-flag(5)A.item=0.0001B.fabs(item)=0.0001C.item0.0001D.fabs(item)0.0001试题2(每小题2分,共10分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,选择一个正确答案.【程序说明】输入一个正整数n,然后输入n个单精度实数,用冒泡法将这些实数从低到高排序后输出。【运行示例】Entern:5Enter5floats:75.27389.567.342-985.41Aftersorted:-98.005.4167.3475.2889.50【程序】#includestdio.hvoidmain(){intn,i,j;floattemp,a[100];printf(Entern(n0):);while(scanf(%d,&n),(6));//输入正整数nprintf(Enter%dfloats:,n);for(i=0;in;i++)scanf(%f,(7));for(i=0;in-1;i++)for(____(8);(9);j--)if((10)){temp=a[j-1];a[j-1]=a[j];a[j]=temp;}printf(Afersorted:);for(i=0;in;i++)printf(%.2f,a[i]);printf(\n);}【供选择的答案】(6)A.n0B.n0C.n=0D.n=0(7)A.aB.a[i]C.&a[i]D.&a(8)A.j=0B.j=iC.j=n-1D.j=n-i(9)A.jiB.j0C.jn-iD.jn-i-1(10)A.a[i]a[j]B.a[j-1]a[j]C.a[j]a[j+1]D.a[j-1]a[j+1]试题3(每小题2分,共8分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,选择一个正确答案.【程序说明】输入十六进制整数形式的字符串,调用函数htod将它转换成十进制整数,然后输出该整数.【运行示例】Enterhexadecimalstring:4fDeciamalintegeris:79【程序】#includestdio.hintctoi(charc){if(c='0'&&c='9')returnc-‘0’;elseif(c='A'&&c='Z')return____(11);elseif(c='a'&&c='z')return(12);elsereturn0;}inthtod(char*h){inti,d=0;for(i=0;h[i]!='\0';i++)d=____(13);returnd;}voidmain(){intdec;charhex[10];printf(Enterhexadecimalstring:);______(14)_____;dec=htod(hex);printf(Decimalintegeris:%d\n,dec);}【供选择的答案】(11)A.c-'A’B.c+10C.c-'F’D.c–'A’+10(12)A.c–'a’B.c+10C.c–'f’D.c–'a’+10(13)A.d+ctoi(h[i])B.d*16+ctoi(h[i])C.d*10+ctoi(h[i])D.d+ctoi(h[i])*16(14)A.hex=getchar()B.scanf(%c,hex)C.scanf(%s,hex)D.scanf(%s,&hex)试题4(每小题2分,共8分)【程序说明】数组x[7]的初值为{1,2,3,4,5,6,7},经调用函数f后,数组x的元素被循环左移3位,输出移位后数组x的各元素,屏幕上的输出结果为:4567123【程序】#includestdio.hvoidf(inta[],intn,intk){inti,j,t;for(i=0;ik;i++){(15);for((16))a[j-1]=a[j];(17);}}voidmain(){inti,x[7]={1,2,3,4,5,6,7};(18);for(i=0;i7;i++)printf(%4d,x[i]);printf(\n);}【供选择的答案】(15)[A]t=a[i][B]t=a[k][C]t=a[j][D]t=a[0](16)[A]j=i;jn;j++[B]j=1;jn;j++[C]j=1;jk;j++[D]j=i+1;jn;j++(17)[A]a[n]=t[B]a[n-1]=a[i][C]a[n-1]=t[D]a[n]=a[i](18)[A]f(x,7,3)[B]f(x,7,5)[C]f(x,3,7)[D]f(x,5,7)试题5(每小题2分,共8分)阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】#includestdio.hvoidf1(intx,inty);voidf2(int*x,inty);voidf3(intx,int*y);voidf4(int*x,int*y);voidmain(){inta=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);}voidf1(intx,inty){intt;t=x;x=y;y=t;}voidf2(int*x,inty){intt;t=*x;*x=y;y=t;}voidf3(intx,int*y){intt;t=x;x=*y;*y=t;}voidf4(int*x,int*y){intt;t=*x;*x=*y;*y=t;}(19)程序运行时,第一行输出。A.a=1,b=2B.a=2,b=1C.a=1,b=1D.a=2,b=2(20)程序运行时,第二行输出。A.a=1,b=2B.a=2,b=1C.a=1,b=1D.a=2,b=2(21)程序运行时,第三行输出。A.a=1,b=2B.a=2,b=1C.a=1,b=1D.a=2,b=2(22)程序运行时,第四行输出。A.a=1,b=2B.a=2,b=1C.a=1,b=1D.a=2,b=2试题6(每小题2分,共8分)阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】#includestdio.hinta=0;voidfun(){inta=1;//第4行printf(%d,,a++);}voidmain(){inti;for(i=1;i=2;i++)fun();printf(%d,a);}(23)程序运行结果是。A.1,2,3B.1,2,0C.1,1,0D.0,1,2(24)其它代码不变,将源程序第4行改为“staticinta=1;”,程序运行结果是。A.1,2,3B.1,2,0C.1,1,0D.0,1,2(25)其它代码不变,将源程序第4行改为“a=1;”,程序运行结果是。A.1,1,2B.1,2,0C.1,1,0D.0,1,2(26)其它代码不变,将源程序第4行改为“;”,程序运行结果是。A.1,1,2B.1,2,0C.1,1,0D.0,1,2试题7(每小题2分,共8分)阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】#includestdio.h#includestring.hstructstudent{intnum;charname[20];charsex;};voidmain(){structstudents[4],*p;char*sname[]={Zhao,Qian,Sun,Li};charcsex[]={'M','F'};inti;for(i=0;i4;i++){s[i].num=i+1;strcpy(s[i].name,sname[i]);s[i].sex=csex[s[i].num%2];}p=s;//第18行printf((%s,%c)\n,p-name,p-sex);}(27)运行程序,输出。A.(Zhao,F)B.(Qian,M)C.(Zhao,M)D.(Qian,M)(28)为得到与(27)题相同的运行结果,程序的第18行可改写为。A.*p=sB.p=&sC.p=s[0]D.p=&s[0](29)将程序的第18行改为“p=&s[1]”,运行程序,输出。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”中:112358()...1!2!3!4!5!6!!fibnsn其中,该算式的第i项,分子是菲波那契数列的第i项为分子,分母是阶乘i!。要求分别调用在(1)和(2)所定义的递归函数fib()和fact()计算分子和分母。(12分))2008-2009学年第二学期浙江师范大学计算机基础(C语言)期末考试A卷答案与评分标准第一部分:选择题(2*30=60分)ACDDBDCCABDDBCDBCAADCBCBADADBD第二部分:编程题(12+28分)7.(12)#includestdio.h--1分voidmain(){intn,s=0;--1分printf(Entern:);scanf(%d,&n);--1分if(n0)n=-n;--2分//或#includemath.h+n=fabs(n);while(n!=0){--2分s+=n%10;--2分n/=10;--2分}printf(s=%d\n,s);--1分}8.(28)(1)intfib(intn)--1分{if(n==1||n==2)return1;--3
本文标题:《c语言程序设计》谭浩强浙师大练习题
链接地址:https://www.777doc.com/doc-2864548 .html