2009-2010-2-C-1试卷.docx
浙江科技学院考试试卷浙江科技学院2009-2010学年第2学期考试试卷A卷考试科目C语言程序设计考试方式闭完成时限2小时拟题人题库审核人批准入2010年7月2日信息、建工、生化、经管、轻工、理学学院2009年级理工科专业题序二三四五总分加分人复核人得分签名命题:说明:1 .应将全部答案写在答卷纸对应的题号处;否则作无效处理;2 .编程题应写明题号,若答卷纸不够,请写在背面,不要另添卷纸;3 .考试完成后,必须将试卷与答卷同时交回。一、判断题(本大题共12小题,每题小1分,共12分)1 .可以直接执行使用ViSi1.aIC+编写的C语言源程序文件。2 .在C程序中可以定义一个名为int的变量。3 .在main函数中可以定义其他函数。4 .执行语句“printf(“s”,“He1.1.o'OWor1.d!”);”后的输出结果是“He1.1.oWor1.d!”。5 .并联电阻的计算公式对应的C语言表达式是R1*R2R1+R26 .函数中可以使用多个return语句向调用者返回多个值。7 .使用“w”方式打开一个已经存在的文本文件,将在该文件原有数据的基础上添加新的数据。8 .定义语句achars="Heo""和"chars=定气:几”<0,;”定义的两个字符数组是等价的。9 .在switch语句的每个case分支后写一条break语句的作用是在该分支执行完后第1页共14页跳出整个switch语句。10 .输入一个实型数据时,格式控制可以规定小数点后的位数,如“scanf("4.2,,&D;”。11 .字符常量,A,与字符串常量所需的存储空间均为1字节。12 .有如下的结构体变量定义语句:structpointintx,y;p;",则可以通过语句“scanf("d%d”,&p);"输入变量p的值。2 .已知X为f1.oat类型变量,则执行语句-x=1.2;"后,变量x的值是().A.0.5B.整数0C.实数0.0D.出错3 .有如下的变量定义语句:intX=Io,*p;",如果想使*p的值是10,应当执行的语句是()。A.p=10;B.p=*x;C.p=x;D.p=&x;若想在程序中判断输入给字符变量c的字符是否为数字字符,则要使用的表达式是(0<=c<=90<=c&& c<=9C.t0,<=c<=t9,D.tO,<=c&&c<=t9,5 .有如下的变量定义语句:intx=105w,则语句“if(X=I)printf(ttYw);e1.sePriiItf("N");”执行后的输出结果是()A.VB.NC.YND.语法错误6 .调试以下if语句时,最合适的一组测试数据是()。if(x<0)y=-x;e1.seif(x<100)y=x;e1.sey=x*x;A.-10,-20,-30B.10,20,30C.10b102,103D.-10,20,1037 .已知X为int类型变量,则语句“for(x=1.;x>=10;x);”执行后,变量X的值是()oA.0B.1C.10D.118 .下列语句的功能是()on=1.;for(i=1.;i<=3;i+)n=n*i;Printf(“dn”,n);A.输出1!的值B.输出21的值C.输出3!的值D.输出1!、2!和3!的值9 .使用字符数组IIamC处理姓名字符串,已知姓名的最大长度为10,则下列数组定义合适的是()oA.charname;B.charname10;C.intn=10;D.#defineN10charnamen+1.;charnameN+1.;10.有如下数组定义语句“inta3R1,2,3,4,5,6;",则*(a+1.)+2的值是(A.2B.6C.元素2的地址D.元素6的地址11 .已知链表结点定义语句为"structnodeintnum;StnICtnode在下图所示的链表中,head为头指针,Po指向一个新建结点,则执行语句“p->next=head>next;head>next=p;"后,链表变为(headphead12 .已知有如下的宏定义:“#def1.neSx+y”,则下列语句执行后的输出结果是()intx=10,y=20;printf(tt%d,S*S);A.900B.230C.420D.14013 .函数Stod的功能是将一个数字字符串转换成一个数值,该函数的原型应该是()A.voidstod(char*s,intd);B.voidstod(chars,intd);C.intstod(char*s);D.char*stod(intd);14.有如下数组定义语句"inta3;",则能够输入数组所有元素的语句是(A.for(i=15i<=35i+)scanf(w%d,ai);B.for(i=0;iv3;i+)scanf("d”,&ai);C.scanf(tt%d%d%d,a);D.scanf(%d%d%d,a3);15 .有如下数组定义语句则下列语句执行后的输出结果是()int*p;for(p=s;p<s+3;p+)printf(u%cw,*p);*C.*16 .下列语句执行后,变量X和y的值分别是()ointx=3,y=5;x=x+y;y=-y;=-y;A.3、5B.3、3C.5、5D.5、317 .为在程序中能够调用库函数Str1.eI1,需要包含头文件()A.math.hB.string.hC.stdio.hD.std1.ib.h18 .函数f的原型说明为"voidf(intx,intn);",有如下定义语句tinta10,m;w,则下列函数调用正确的是()<>B.f(a,m);D. m=f(a10,m);A.m=f(a);C.f(inta10,intm);19 .下列程序中存在的错误不包苹(#inc1.ude<stdio.h>main()intx;scanf(4t%d,x);printf(wx=%d,X);输出格式不正确缺少)!(a=0)&&(b!=0)D. a && bA.变量X未定义B.C.未提供输入项的地址D.20 .判断变量a和b都不等于0的表达式是(A.(a!=0)(b!=0)B.abC.卜的T三、程序填空题(本大题共4小题,每空2分,共24分)1.下列程序用于计算1直到最后一项绝对值z/1)小于0.000001,并统计一共计算了多少项。请填空。#inc1.ude<stdio.h>voidmain()doub1.es,t;intf,n;s=0;t=1.;f=1.;n=1.;whi1.e(t>=1.e-6)s=(1)n+;t=(2)f=-f;Printf("一共计算了d项,结果为(3),s);)(1)A.s+tB.s+fC.s+nD.s+f*t(2)A.t*(2*n-2)*(2*n-1.)B.t(2*n-2)(2*n-1.)C.t*(2*n)*(2*n+1.)D.t(2*n)(2*n+1.)(3)A.nB.n-1C.n+1D.2*n-1.2.下列程序用于统计某班30个学生某门课程成绩的分布情况,分别显示09、10-19.2029、8089、9099以及100分的人数。请填空。#inc1.ude<stdio.h>voidmain()inta1.30J,bHJ=0,i,k;for(i=0;i<30;i+)scanf(,%d,ai);k=ai10;(4);for(i=0;(5);i+)printf(*,%2d-%2d:%dn',i*10,i*10+9,biJ);Pri1.Itf(“100:%dn”,_(6);(4)A.ai+B.ak+C.bi+D.bk+(5)A.i<30B.i<10C.i<1.1.D.i!=10(6)A.aiB.akC.biD.bk3.下列程序中f函数用于将一个数分解成两个正整数的平方和,并统计一共有多少种分解方法,在主函数中输入待分解的数后,通过调用f函数输出统计结果。#inc1.ude<stdio.h>#inc1.ude<math.h>voidmain()intr,n;intf(intz);scanf(,'%d,n);(7);Printfr一共有d组正整数解n",r);)intf(intZ)intx,y,n;(8);for(x=1.;x<sqrt(z);x+)or(y=1.;yvsqrt(z);y+)if(一(9)n+;prmtf(nx=%d,y=%dnn,x,y);return(n);(7)A.n=f(r)B.r=f(n)C.n=f(z)D.r=f(z)(8)A.x=0B.y=0C.z=0D.n=0(9)A.x2+y2=zB.x2+y2=zC.x*x+y*y=zD.*+y*y=z4.下列程序中f函数用于在链表中查找最高分。请填空。structnode*结点定义*/intnum;中学号*/intscore;*成绩*/structnode*next;/*指针域切);intf(structnode*head)intmax;structnode*p;P=(10);max=p->score;whi1.e(11)if(max<p->score)max=p->score;(12);return(max);(10)A.headB.head->nextC.NU1.1.D.ma1.1.oc(6)(11)A.P=NU1.1.B.p!=NU1.1.C.head=NU1.1.D.head!=NU1.1.(12)A.p=p->nextB.head=head->nextC.p=head->nextD.head=p->next四、程序阅读题(本大题共6小题,每小题4分,共24分)1 .下列程序的运行结果是().#inc1.ude<stdio.h>voidmain()itij;for(i=1.;i<=4;i+)forg=1.;j<i;j+)printf(,%d,i);printf(*,*n,);