您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > 浙江理工大学2009年春08级c期末试卷b卷(含答案)
第页(共7页)12009年08级C程序设计期末考试卷(B)[注意]所有答案写在单张的答题卷上。一、判断题(本题共10分,每小题1分,用A表示正确,用B表示错误。)(1)C语言程序的变量必须先定义再使用。(2)do-while语句构成的循环不能用其他语句构成的循环来代替。(3)C语言规定,函数的实参应与其对应的形参类型一致。(4)C语言认为名为Student和student的变量是不同变量。(5)当两个字符串所包含的字符个数相同时,才能比较两个字符串的大小。(6)C语言程序的书写格式虽然自由,但为了清晰,一般在一行内写一个语句。(7)在C语言中,八进制数是用英文字母o后加一个整数来表示,例如o123。(8)C语言的所有循环语句都要求至少要执行一次循环体。(9)在C语言中,函数不能嵌套定义,但可以嵌套调用。(10)数组charx[]=12345;和chary[]={'1','2','3','4','5'};长度相同。二、单选题(本题共20分,每小题2分)(11)______是合法的用户自定义标识符。。[A]b-b[B]fr[C]_isw[D]float(12)_____是不正确的字符常量。[A]'\n'[B]'1'[C]a[D]'\101'(13)若变量已正确定义,语句“if(ab)k=0;elsek=1;”和______等价。[A]k=(ab)?1:0;[B]k=ab;[C]k=a=b;[D]a=b?0:1;(14)在C程序中,若对函数类型未加说明,则函数的隐含类型为_____。[A]int[B]double[C]void[D]char(15)如果在用户的程序中要使用C库函数中的数学函数时,应在该源文件中使用的include命令是________。[A]#includestring.h[B]#includemath.h[C]#includestdio.h[D]#includectype.h第页(共7页)2(16)在C语言程序中,在函数内部定义的变量称为______。[A]全局变量[B]外部变量[C]局部变量[D]内部变量(17)表达式(42)-!-1+4&6^21的值是:[A]0[B]1[C]7[D]12(18)C程序的基本结构有_____。[A]选择、重复和模块[B]顺序、选择和循环[C]顺序、选择和模块[D]逻辑、物理和程序(19)函数调用语句func((a1,a2,a3),(a4,a5));的参数个数是:[A]2[B]5[C]1[D]调用方式不合法(20)对于如下说明,语法和语义都正确的赋值是___C__。intc,*s,a[]={1,3,5};[A]c=*s;[B]s[0]=a[0];[C]s=&a[1];[D]c=a;第页(共7页)3三、程序填空题(本题共30分,每小题2分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个最佳的答案。1【程序说明】输入1个正整数n,计算并输出s的前n项的和。S=1-1/2+1/3-1/4+1/5-1/6+……【程序代码】#includestdio.hvoidmain(){intk,flag,n;floats;flag=1;s=0;scanf(%d,&n);for(k=1;k=n;k++){s=s+(21);(22);}printf(sum=%f\n,s);}【选项】(21)[A]1/k[B]1.0/k[C]1/k*flag[D]1.0/k*flag(22)[A]flag++[B]flag=-flag[C]flag=-k[D]k=-flag2【程序说明】输入以-1结束的一批整数,输出其中的最大值。例如:输入-3-8-10-1后,输出:max=-3。【程序代码】#includestdio.hvoidmain(){intmax,x;scanf(%d,&x);if(x!=-1){(23);while((24)){if(maxx)max=x;第页(共7页)4(25);}printf(max=%d\n,max);}}【选项】(23)[A]max=x[B]x=max[C]max=-1[D]x=-1(24)[A]x==-1[B]x!=-1[C]x-1[D]x-1(25)[A]scanf(%d,x)[B]scanf(%d\n,&x)[C]printf(%d,&x)[D]scanf(%d,&x)3【程序说明】求出200以内的整数中,最大的可以被17整除的数是哪个数。【程序代码】#includestdio.h___26___{inti;for(____27____;____28____;i--){if(___29____)break;}printf(%d\n,____30_____);}【选项】(26)[A]main()[B]voidmain()[C]main(void)[D]intmain()(27)[A]200[B]i=0[C]i=200[D]inti=200(28)[A]i200[B]i200[C]i0[D]i0(29)[A]i%17==0[B]i%17!=0[C]i/17==0[D]i/17!=0(30)[A]i[B]i%17[C]i/17[D]i\17第页(共7页)54【程序说明】下列程序调用swap函数交换a和b的值,并输出交换后的a和b的值。程序的输出结果是:Afterswap5,3。【程序代码】#includestdio.hvoidmain(){inta,b;a=3,b=5;swap(31);printf(Afterswap%d,%d,a,b);}swap(31){intt;33;34;35;}【选项】(31)[A]&a,&b[B]a,b[C]&b,&a[D]b,a(32)[A]intx,inty[B]int&x,int&y[C]int*y,int*x[D]int*x,int*y(33)[A]x=*t[B]t=*x[C]t=x[D]x=t(34)[A]x=y[B]x=*y[C]*x=*y[D]*x=y(35)[A]y=t[B]*y=t[C]y=*t[D]*y=*t四、程序阅读题(本题共20分,每小题5分)阅读下列程序并写出运行结果。1【程序】#includestdio.hvoidmain(){intk=10;do{k=k-1;}while(k==0);printf(k=%d,k);}程序的输出结果是_______。2【程序】#includestdio.hintz;第页(共7页)6voidp(int*x,inty){++*x;y--;z=*x+y+z;printf(%d,%d,%d\n,*x,y,z);}voidmain(){intx=1,y=5,z=9;p(&x,y);printf(%d,%d,%d\n,x,y,z);}程序的输出结果是_______。3【程序】#includestdio.hvoidmain(){intnum=0;while(num=8){num++;printf(%d#,num++);}printf(\n);}程序的输出结果是_______。4【程序】#includestdio.hvoidmain(){intk,n1,n3[10];charc;n1=0;for(k=0;k10;k++)n3[k]=0;while((c=getchar())!='\n'){switch(c){case'0':case'1':case'2':case'3':case'4':case'5':case'6':case'7':case'8':case'9':n3[c-'0']++;break;default:n1++;break;}}if(n1)printf(%d,n1);for(k=0;k10;k++)if(n3[k])printf(%d,n3[k]);}输入123+234=357Yes?回车后,下列程序的输出结果是_____。五、程序设计题(本题共20分)1.[程序说明](6分)从键盘读入长整形数number,请编写函数sum(number),返回正整数number的各位数字之和(number是长整型)。例如:从键盘输入654321,则输出sum(654321)=21。2.[程序说明](5分)函数ff(str,ch)的功能是统计并返回字符ch在字符串str中出现的次数。例如:调用ff(every,'e')后返回2,因为在字符串every中字符'e'出现了2次。第页(共7页)73.[程序说明](9分)从键盘输入一个字符ch,输出该字符在文本文件input.txt的每一行中出现的次数。(必须调用第2题定义的函数ff统计ch的出现次数)。例如:如果文件input.txt中存放了下列数据:every121Iamastudent.运行程序,并输入'e'后,输出2012009年08级C程序设计期末考试B卷参考答案姓名___________学号___________班级____________得分___________[注意]所有答案写在单张的答题卷上。六、判断题(正确的答A,错误的答B,本题共10分,每小题1分)题号12345678910答案ABAABABBAB七、单选题(本题共20分,每小题2分)题号11121314151617181920答案CCCABCABAC八、程序填空题(本题共30分,每小题2分)题号21222324252627282930答案DBABDBCDAA第页(共7页)8题号3132333435答案ADBCB第页(共7页)9九、程序阅读题(本题共20分,每小题5分)程序1程序2k=9如果没写”k=”,扣2分2,4,62,5,9每行2.5分,格式错扣1分。程序3程序41#3#5#7#9#错1个数字扣1分6123111错1个数字扣1分十、程序设计题(本题共20分)(1)6分1.#includestdio.hintsum(longnumber){ints=0,m;while(number!=0){m=number%10;s+=m;number=number/10;}returns;}voidmain(){longnumber=0;scanf(“%ld”,&number);评分标准:include语句:0.5分主函数定义:0.5分变量定义:0.5分函数定义:1分算法实现:1.5分scanf语句:0.5分printf语句:0.5分函数调用:1分第页(共7页)10printf(“sum(%ld)=%d\n”,number,sum(number));}(2)5分intff(char*str,charch){intcount=0;while(*str){if(*str==ch)count++;str++;}returncount;}(3)9分#includestdio.h#includestdlib.hvoidmain(){charch,c,s[80];intk;FILE*fp;if((fp=fopen(input.txt,r))==NULL){printf(error\n);exit(0);}ch=getchar();k=0;while(1){c=fgetc(fp);if(c=='\n'||c==EOF){s[k]='\0';k=0;printf(%d\n,ff(s,ch));if(c==EOF)break;}elses[k++]=c;}fclose(fp);}评分标准:变量定义:0.5分函数定义:1分算法实现:2.5分函数返回:1分评分标准:include语句:0.5分主函数定义:0.5分变量定义:0.5分打开文件:1分关闭文件:1分循环+beaak:1分读入文件内容:1分算法实现:2.5分函数调用:1分第页(共7页)11或k=0;while(!feof(fp)){c=fgetc(fp);if(c!='\n')s[k++]=c;else{s[k]='\0';k=0;printf(%d\n,f(s,ch));}}if(c!='\n'){s[k]='\0';printf(%
本文标题:浙江理工大学2009年春08级c期末试卷b卷(含答案)
链接地址:https://www.777doc.com/doc-5176110 .html