您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 2009信息工程学院C程序设计期末试卷(A)
第页共6页1杭州电子科技大学信息工程学院学生考试卷(A)卷课程名称C语言程序设计考试日期2009年6月日成绩考生姓名任课教师姓名学号(8位)班级专业说明:请将全部答案都书写在最后页答题纸上,否则答题无效。试题一判断题(共10分)(用‘√’或‘×’标注对错)1.一个C语言程序总是从第一个函数开始执行。×2.表达式1/4+2.75的值是3。×3.系统判断字符串结束的标志是’\n’。×4.调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参。√5.任何变量都必须要定义其类型。√6.在while(x)语句中的x与条件表达式x!=0等价。√7.定义语句inta=2,*pa=&a;,表示将a的值2赋给pa.×8.数组名代表的是数组的首地址。√9.假设有inta=1,k;则语句k=a++;与k=++a;等价。×10.若打开文件的方式为“w”而该文件已经存在,则文件中原有数据被清空。√试题二、单选题,根据题目从A、B、C、D中,选择一个正确的选项(共20分)1.C语言中要求操作数都为整型数据的运算符是(C)。A./B.!C.%D.==2.能正确表示逻辑关系:a≥10或a≤0的C语言表达式(D)。A.a=10ora=0B.a=0|a=10C.a=10&&a=0D.a=10||a=03.C语言中,while和do-while循环的主要区别是(A)。A.do-while的循环体至少执行一次B.while的循环体至少执行一次C.do-while的循环体是复合语句D.while的循环体可以是复合语句4.设inta=12;表达式a+=a-=a*=a的值是(C)。A.12B.144C.0D.1325.若k为整形,则while循环执行(A)次。k=2;while(k=1){printf(“%d”,k);k--;}A.无限B.2C.1D.06.以下不能正确进行字符串赋初值的语句是(B)。A.charstr[]=good!;B.charstr[5]=good!;C.char*str=good!;D.charstr[5]={'g','o','o','d'};7.两个指针变量不可以(A)。A.相加B.比较C.相减D.指向同一地址8.以下程序的输出结果是(D)。#definef(x)x*xmain(){inta=6,b=2,c;c=f(a)/f(b);printf(“%d\n”,c);}A.6B.9C.18D.369.定义如下变量和数组:inti,x[3][3]={1,2,3,4,5,6,7,8,9};,则语句for(i=0;i3;i++)printf(%d,x[i][2-i]);的输出结果是(C)。A.159B.147C.357D.36910.若已定义:inta[10],*p=a;,则不能表示a[1]地址的表达式为(B)。A.++pB.a++C.p+1D.a+111.若有说明:inti,j=7,*p=&i;,则与i=j;等价的语句是(B)。A.i=*p;B.*p=*&j;C.i=&j;D.i=**p;12.若有定义语句:inta[10];则下列对a中数组元素正确引用的是(D)。A.a[10]B.a(2)C.a[2.5]D.a[5/2-2]13.有定义语句inta[5],i;,输入数组a的所有元素的语句应为(C)。A.scanf(%d%d%d%d%d,a[5]);B.scanf(%d,a);C.for(i=0;i5;i++)scanf(%d,a+i);D.for(i=0;i5;i++)scanf(%d,a[i]);14.判断字符串s1与s2是否相等,应当使用的语句是(D)。A.if(s1==s2)B.if(s1=s2)C.if(s1[]==s2[])D.if(strcmp(s1,s2)==0)15.在C程序中,若对函数类型未加说明,则函数的隐含类型为_A____。A.intB.doubleC.voidD.char16.下列程序的输出结果是(D)。fun(inta,intb,intc){c=a*b;}main(){intc;第页共6页2fun(2,3,c);printf(%d\n,c);}A.0B.1C.6D.无法确定17.下列程序段的输出是(B)。intc[]={1,7,12};int*k;k=c;printf(%d,*++k);A.2B.7C.1D.以上均不是18.若有以下定义structdate{inty;intm;intd;}day={2009,6,30};能得到2009的表达式是(D)。A.date-yB.date.yC.day-yD.day.y19.设有以下语句:charstr1[]=string,str2[8],*str3,*str4=string;则不能对库函数strcpy(复制字符串)的正确调用的是(C)。A.strcpy(str1,HELLO!);B.strcpy(str2,HELL0!);C.strcpy(str3,HELL0!);D.strcpy(str4,HELLO!);20.下列函数中不能用于对文件进行输入输出操作的是(B)。A.fscanf()B.printf()C.fgetc()D.fputs()试题三、按题目的意思,写出正确的内容(共10分)1.有如下语句:charc[]=Iamastudent;该字符串的长度是(14),c[3]=(m)。2.表达式3+42&&8%4的结果是(0)。3.若有说明inta[][3]={{1,2},{0},{3,4,5}},则a数组共有(9)个元素。4.C语言编绎系统在判断一个量是否为“真”时,以0代表“假”,以(非0)代表“真”5.数学式子对应的C语言表达式为(sqrt(s*(s-a)*(s-b)*(s-c)))。试题四、程序阅读题(共16分)说明:阅读下列程序,在每小题提供的程序运行结果若干可选答案中,挑选一个正确答案。D1.#includestdio.hvoidmain(){intn;n=0;while(n8){switch(n%3){case2:putchar('2');case1:putchar('1');break;case0:putchar('0');}n++;}}A.01201201B.012C.01210121D.0121012101C2.#includestdio.hvoidmain(){intx=100;inti,y[10]={0};for(i=9;i=0;i--){y[i]=x%8;x=x/8;if(x==0)break;}for(i=0;i=9;i++)if(y[i]!=0)printf(%1d,y[i]);}A.100B.441C.144D.1111111111A3.下面程序执行后的正确输出项是()。#includestdio.hvoidswap1(inta[]){intt;t=a[0];a[0]=a[1];a[1]=t;}voidswap2(inta,intb){intt;t=a;a=b;b=t;})(*)(*)(*csbsass第页共6页3voidmain(){intx[2]={2,3};inty[2]={2,3};swap1(x);swap2(y[0],y[1]);printf(x:%d%d\n,x[0],x[1]);printf(y:%d%d\n,y[0],y[1]);}A.x:32B.x:23C.x:23D.x:32y:23y:32y:23y:32B4.#includestdio.hmain(){charstr1[100]=1a2B3C,str2[100],*p1=str1,*p2=str2;while(*p1!='\0')if((*p1='A'&&*p1='Z')||(*p1='a'&&*p1='z')){*p2=*p1;p1++;p2++;}elsep1++;*p2='\0';p2=str2;puts(p2);}A.abcB.aBCC.ABCD.123试题五、程序填空题(共18分)说明:阅读下列程序说明和相应程序,在每小题提供的若干可选答案中,挑选一个正确答案。1.【程序说明】已知π/4=1-1/3+1/5-1/7+……,用这个公式求π的近似值,直到最后一项的绝对值小于10-6为止。#includestdio.h#includemath.hvoidmain(){intf=1;floatm=1.0,n=1.0,pi;____(1)C____;while(____(2)B____){pi=pi+n;m=m+2;____(3)D____;n=f/m;}pi=pi*4;printf(pi=%10.6f\n,pi);}(1)A.scanf(“%f”,&pi)B.pi=-1C.pi=0D.pi=1(2)A.fabs(n)1e-6B.fabs(n)=1e-6C.fabs(n)=1e-6D.|n|1e-6(3)A.f=0B.f=1C.f=-1D.f=-f2.【程序说明】青年歌手大奖赛中,20个评委会对参赛选手打分。选手得分规则:去掉一个最高分和一个最低分,然后计算平均值,该平均值即为选手的得分。下面的程序功能是,输入评委对张三选手打分,按选手得分规则,计算并输出张三的得分。#includestdio.h#defineN20voidmain(){inti;floatx[N],max,min,s;for(____(4)A____)scanf(%f,&x[i]);s=x[0];____(5)_D___;for(i=1;iN;i++){if(x[i]max)max=x[i];if(x[i]min)min=x[i];s+=x[i];}____(6)B____printf(张三选手得分:%f,s/(N-2));}(4)A.i=0;iN;i++B.i=0;i=N;i++C.i=1;iN;i++D.i=1;i=N;i++第页共6页4(5)A.max=min=0B.max=min=100C.max=100,min=0D.max=min=x[0](6)A.s=max+minB.s=s-max-minC.s=0D.s=13.【程序说明】输入100个整数,用选择法将它们从小到大排序后输出。#includestdio.hvoidsort(inta[],intn){inti,index,k,t;for(k=0;kn-1;k++){index=_____(7)A_____;for(i=k+1;in;i++)if(_____(8)_C____)index=i;t=a[index];a[index]=a[k];a[k]=t;}}voidmain(){inti,a[100];for(i=0;i100;i++)scanf(%d,&a[i]);_____(9)B_____;for(i=0;i100;i++)printf(%d,a[i]);printf(\n);}(7)A.kB.0C.nD.i(8)A.a[i]≤a[index]B.a[i]≥a[index]C.a[i]a[index]D.a[i]a[index](9)A.sort(a[],100)B.sort(a,100)C.sort(a)D.sort(a[100])试题六编程序(共26分)1.从键盘上输入三个数,求出其中最大的一个数。2.编程求数列1+(1+2)+(1+2+3)+…+(1+2+...+10)的和并输出。3.统计100到200之间的素数个数。要求定义并调用函数isprime(x)来判断x是否为素数(素数是除1以外只能被1或自身整除的自然数)。1.1.#includestdio.hmain(){doublea,b,c,max;printf(Inputabc:\n);scanf(%lf%lf%lf,&a,&b,&c);if(ab)max=a;elsemax=b;if(maxc)max=c;printf(max=%f\n,max);}2.2.#includestdio.hmain(){inta,b,sum=0;fo
本文标题:2009信息工程学院C程序设计期末试卷(A)
链接地址:https://www.777doc.com/doc-3087390 .html