C语言期末考试真题1.docx
- 文档编号:26145266
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:17
- 大小:31.16KB
C语言期末考试真题1.docx
《C语言期末考试真题1.docx》由会员分享,可在线阅读,更多相关《C语言期末考试真题1.docx(17页珍藏版)》请在冰豆网上搜索。
C语言期末考试真题1
2008-2009学年度第二学期
华中科技大学《C语言程序设计》试卷(A卷)
(考试时间:
150分钟满分100分考试方式:
闭卷)
班级:
学号:
姓名:
答案必须做在答题纸上,否则无效!
请将试卷和答题纸分别上交。
一、选择题(每题1.5分,共39分)
1.用C语言编写的程序()。
A)可即执行B)是一个源程序C)边编译边执行D)边解释边执行
2.从循环体内某一层跳出,继续执行循环外的语句是
A)break语句B)return语句C)continue语句D)空语句
3.下列数据中属于符串常量的是
A)ABCB)"ABC"C)'ABC'D)'A'
4.C语言源程序的基本单位是()。
A)过程B)函数C)子程序D)标识符
5.以下选项中合法的用户标识符是
A)longB)_2TestC)3DmaxD)A.dat
6.以下选项中非法的表达式是( )。
A)0<=x<100B)i=j==0C)(char)(65+3)D)x+1=x+1
7.若整型变量a、b、c、d中的值依次为:
1、4、3、2。
则条件表达式a
a:
c c: d的值是 A)1B)2C)3D)4 8.以下能正确定义数组并正确赋初值的语句是()。 A)intN=5,b[N][N];B)inta[1][2]={{1},{3}}; C)intc[2][]={{1,2},{3,4}}D)intd[3][2]={{1,2},{3,4}} 9.若有以下定义语句: inta[10]={1,2,3,4,5,6,7,8,9,10}; 则下列哪个是对该数组元素的正确引用。 A)a[10]B)a[a[3]-5]C)a[a[9]]D)a[a[4]+4] 10.若有以下程序: #include voidmain() {intk=2,i=2,m; m=(k+=i*=k);printf("%d,%d\n",m,i); } 执行后的输出结果是 A)8,6B)8,3C)6,4D)7,4 11.以下程序的输出结果是_______。 main() {inta=0,i; for(i=1;i<5;i++) {switch(i) {case0: case3: a+=2; case1: case2: a+=3; default: a+=5; } } printf("%d\n",a); } A)31B)13C)10D)20 12.以下程序的运行结果是______。 main() {intx=2,y=-1,z=2; if(x if(y<0)z=0; elsez+=1; printf("%d\n",z); } A)3B)2C)1D)0 13.有如下程序 main() {intn=9; while(n>6){n--;printf(“%d”,n);} } 该程序段的输出结果是。 A)987B)876C)8765D)9876 14.有如下程序; for(j=1;j<=20;j++) {if(j%3==0)continue; printf("%d",j); }该段程序输出结果是。 A)1到20之间的所有不能被3整除的数B)1到20之间的所有奇数 C)1到20之间的所有偶数D)1到20之间的所有整数 15.有以下程序: main() {inti,s=0; for(i=1;i<10;i+=2)s+=i+1; printf("%d\n",s); } 程序执行后的输出结果是_________。 A)自然数1~9的累加和B)自然数1~10的累加和 C)自然数1~9中奇数之和D)自然数1~10中偶数之和 16.请读程序片段: #include main() {inta,b; for(a=1,b=1;a<=100;a++) {if(b>=20)break; if(b%3==1) {b+=3; continue; } b-=5; } printf("%d\n",a); } 上面程序的输出结果是 A)7B)8C)9D)10 17.为了避免在嵌套的条件语句if--else中产生二义性,C语言规定: else子句总是与________匹对。 A)缩排位置相同的ifB)其之前最近的ifC)其之后最近的ifD)同一行上的if 18.有以下程序 main() { intm[][3]={1,4,7,2,5,8,3,6,9}; inti,j,k=2; for(i=0;i<3;i++) { printf("%d",m[k][i]); } }执行后输出结果是______。 A)456B)258C)369D)789 19.C语言程序的三种基本结构是( )。 A)顺序结构,选择结构,循环结构B)递归结构,循环结构,转移结构 C)嵌套结构,递归结构,顺序结构D)循环结构,转移结构,顺序结构 20.以下程序的输出结果是_________。 main() { inti,a[10]; for(i=9;i>=0;i--)a[i]=10-i; printf(“%d%d%d”,a[2],a[5],a[8]); } A)258B)741C)852D)369 21.有如下程序 main() { inta[3][3]={{1,2,3},{4,5,6},{7,8,9}},i,j,s=0; for(i=1;i<3;i++) for(j=0;j printf("%d\n",s); } 该程序的输出结果是 A)18B)19C)20D)21 22.以下程序的输出结果是______。 main() {inti,x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++)printf(“%d,”,x[i][2-i]); } A)1,5,9B)1,4,7C)3,5,7D)3,6,9 23.下列程序执行后的输出结果是________。 main() { chararr[2][4]; strcpy(arr[0],"you");strcpy(arr[1],"me"); arr[0][3]='&'; printf("%s\n",arr); } A)you&meB)youC)meD)err 24.下面程序运行的结果是 main() {charch[7]={"65ab21"}; inti,s=0; for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2) s=10*s+ch[i]-'0'; printf("%d\n",s); } A)2ba56B)6521C)6D)62 //上课为短学时(28学时)的同学请做25 (1),26 (1);上课为长学时(36学时)的同学需完成25 (2),26 (2)。 25 (1).下面程序的运行结果是() voidsub(intx,inty,int*z) {*z=y-x;} voidmain() {inta,b,c; sub(10,5,&a); sub(7,a.,&b); sub(a,b,&c); printf(“%4d,%4d,%4d\n”,a,b,c); } A)5,2,3B)-5,-12,-7 C)-5,-12-17D)5,-2,-7 26 (1).以下程序的输出结果是( ). main( ) {inti,x[3][3]={9,8,7,6,5,4,3,2,1}, *p=&x[1][1]; for(i=0;i<3;i++)printf("%d\n",p[i]); } A)987B)876C)765D)654 25 (2).若有以下程序段: structdent {intn; int*m; }; inta=1,b=2,c=3; structdents[3]={{101,&a},{102,&b},{103,&c}}; voidmain() {structdent*p; p=s; ........... } 则以下表达式中值为2的是()。 A)(p++)->mB)*(p++)->mC)*(++p)->mD)(*p)->m 26 (2).以下scanf函数调用语句中对结构体变量成员的不正确引用是()。 structpupil { charname[20]; intage; intsex; }pup[5],*p; p=pup; A)scanf("%s",pup[0].name);B)scanf("%d",&pup[0].age); C)scanf("%d",&(p->sex));D)scanf("%d",p->age); 二、填空题(每题2分,共20分) 1.设x,i,j,k都是int型变量,表达式x=(i=4,j=16,k=32)计算后,x的值为(【1】)。 2.写出以下程序运行的结果。 (【2】) #include voidmain() { charc1='a',c2='b',c3='A'; printf("a%cb%cc%c\n",c1,c2,c3); } 3.以下程序的输出结果是(【3】)。 #include voidmain() {inta=0; a+=(a=8); printf("%d\n",a); } 4.若有以下程序 main() {inta=4,b=3,c=5,t=0; if(a if(a printf("%d%d%d\n",a,b,c); } 执行后输出结果是_【4】_____。 5.以下程序的运行结果是_【5】__。 intx=1,y=0; switch(x) {case1: switch(y) {case0: printf("**1**\n"); case1: printf("**2**\n");break; } case2: printf("**3**\n"); } 6.以下程序的功能是: 输出100以内(不含100)能被3整除且个位数为6的所有整数,请填空。 main() {inti,j; for(i=0;i<10;i++) { j=i*10+6; if(【6】) continue; printf("%d",j); } } 7.以下程序的功能是求1! +2! +3! +...+20! 的和,请填空。 main() { floatn,s=0,t=1; for(n=1;n<=20;n++) { t*=n; 【7】_; } printf("1+2! +3! ...+20! =%e\n",s); } 8.以下程序是将十进制数转换成相应十六进制数,请填空。 #include #include zhuanh(char*p,intb) {intj; while(b>0) {j=b%16; if(j<10)*p=j+’0’; else【8】 b=b/16; 【9】 } *p='\0'; } main() {inta,i; chars[20]; printf("Inputa: \n"); scanf("%d",&a); zhuanh(【10】); for(i=strlen(s)-1;i>=0;i--)printf("%c",*(s+i)); printf("\n"); } 三、程序改错题(每错2分,共10分) 1.程序功能为实现交换两个整数的值。 例如: 给a和b分别输入3和6,输出为a=6b=3,程序如下,请改正错误。 错误为/**********FOUND**********/之后的语句。 /**********FOUND**********/ voidfun(inta,b) { intt; t=*a; *a=*b; *b=t; } main() { inta,b; printf("entera,b: "); /**********FOUND**********/ scanf("%d%d",a,b); fun(&a,&b); printf("a=%db=%d\n",a,b); } 2.程序功能为从键盘输入十个学生的成绩,统计最高分,最低分和平均分。 max代表最高分,min代表最低分,avg代表平均分。 程序如下,请改正错误。 错误为/**********FOUND**********/之后的语句。 main() { inti; floata[10],min,max,avg; printf("input10score: "); for(i=0;i<=9;i++) { printf("inputascoreofstudent: "); /***********FOUND***********/ scanf("%f",&a[i]) } /***********FOUND***********/ max=min=avg=a[1]; for(i=1;i<=9;i++) { /***********FOUND***********/ if(min min=a[i];
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 期末考试
![提示](https://static.bdocx.com/images/bang_tan.gif)