收藏 分销(赏)

C语言程序设计习题集及答案.doc

上传人:a199****6536 文档编号:1362616 上传时间:2024-04-24 格式:DOC 页数:36 大小:237.01KB
下载 相关 举报
C语言程序设计习题集及答案.doc_第1页
第1页 / 共36页
C语言程序设计习题集及答案.doc_第2页
第2页 / 共36页
C语言程序设计习题集及答案.doc_第3页
第3页 / 共36页
C语言程序设计习题集及答案.doc_第4页
第4页 / 共36页
C语言程序设计习题集及答案.doc_第5页
第5页 / 共36页
点击查看更多>>
资源描述

1、基础知识一 单项选择题(每题2分,共44分)1 以下叙述正确的是。A C程序基本组成单位是语句 B C程序每一行只能写一个语句C 简单C语句必须以分号作为结束符 D 注释语句可以嵌套2 一个C语言程序是从开始执行的。A 程序中第一个函数 B 名为main的函数C 包含文件(头文件)的第一个函数 D 程序中的第一个语句3 请选出合法的C语言赋值语句。A a=b=58 B i+; C a=58,b=58 D k=int(a+b);4 下面标识符中,合法的用户标识符是 。A 1abc B include C a-b-c123 D char5 以下所列的C语言整形常量中,正确的是。A 0x10 B 0

2、976 C 076L D 01ff6 C语言中下列运算符的操作数必须为整型的是。A % B + C / D =7 设a和b均为int型变量,则执行以下语句后的输出为。int a=20; int b=3; printf(%dn,a+=(b%=2);A 20 B 21 C 0 D 238 已知int i;,则执行语句 i=2.6;后,i的值为。A 2 B 3 C 2.6 D 不确定9 以下合法的字符常量为。A ab B 482 C D xaf10 若y为int型变量,则执行以下语句后,y的值是。y=8; y+=y-=y*y;A 64 B 56 C 112 D 4811 以下合法的浮点型常量是。A

3、e-3 B 1.5e+2.4 C 3.14e+2L D 3.14 e +512 设int数据占用两个字节,float数据占用四个字节,double数据占用8个字节,且已知float a=2;int b=3;则执行下列语句输出为。printf(%d,sizeof(a*b)+2/5);A 4 B 8 C 6 D 713 设int型占2个字节,且int i=-2;,则语句printf(%u,i);的输出结果为。A 0 B -2 C 65534 D 6553514 若x、y、z均为整型常量,且a=100,则执行下列语句后的z值为。x=a+; y=-a; z=x+y-a-;A 100 B 400 C 2

4、00 D 30015 若有以下定义和语句:int u=010,v=0x10,w=10,printf(%d,%d,%dn,u,v,w);,则输出结果是。A 8,16,10 B 10,10,10 C 8,8,10 D 8,10,1016 设x、y为int型变量,则执行下列语句后,y的值是。x=5; y=x+*x+; y=-y*-y;A 529 B 2401 C 1209 D 625的表达式是。17 假设在程序中a,b,c 均被定义成整型,并且已赋大于1的值,则下列能正确表示代数式A 1/a*b*c B 1/(a*b*c) C 1/a/b/(float)c D 1.0/a/b/c18 若有定义:in

5、t a=8,b=5,c;char d=A;,则执行语句c=a/b+d%a+0.5;后c的值为。A 2 B 2.5C 3 D 类型不一致,无法计算,编译出错19 在有以下程序:main() int i=10,j=1;i=i+j+;printf(%d,%d,%dn,i+,+j,i);执行后输出结果是。A 12,3,11 B 12,2,11 C 11,3,11 D 12,3,1220 已知int i=65;,则putchar(i);printf(%d,i);printf(%c,i);的输出结果为。A A,65,A B 65,65,A C A,A,65 D A,A,A21 已知int y,a,i=1;

6、,则语句printf(%d,%d,-i+,(y=a=3.6*3);的输出结果为。A -1,10 B -2,1.8 C 0,3 D 1,1822 有以下程序:main() char a,b,c,d;a=; b=xbc;c=0xab; d=023;printf(%c%c%c%cn,a,b,c,d);编译时出现错误,以下叙述中正确的是。A 程序中只有a=;语句不正确 B b=xbc;语句不正确C d=023;语句不正确 D a=;和c=0xab;语句都不正确二 填空题(第1题2分,其余每题3分,共56分)1 设x为int型变量,请写出描述“x是偶数”的表达式是。2 已知scanf(a=%d,b=%d

7、,c=%d,&a,&b,&c);,若从键盘输入2、3、4三个数分别作为变量a、b、c的值则正确的输入形式是。3 设有语句int a=3;,则执行了语句 a+=a-=a*a后,变量a的值是。4 以下程序的输出结果是。main() int a=-10,b=-3;printf(%dn,-a+);printf(%dn,-a+b);5 以下程序的输出结果是。main() char c;c=0362;printf(%dn,c);6 以下程序段(n所赋的是八进制数)执行后输出结果是。int m=32767,n=032767; printf(%d,%on,m,n);7 字符串name101ddressbxaf

8、的长度为:。8 有以下程序段:int m=0,n=0; char c=a;scanf(%d%c%d,&m,&c,&n);printf(%d,%c,%dn,m,c,n);若从键盘上输入:10A10,则输出结果是。9 以下程序的输出结果是。main() printf(%d,%o,%xn,10,10,10);printf(%d,%d,%dn,10,010,0x10);printf(%d,%xn,012,012);10 设a、b、c为整形变量,且a=2、b=3、c=4,则执行完语句 a*=16+(b+)-(+c);之后,变量a的值为。11 以下程序的输出结果为。main() int x=023;pri

9、ntf(%xn,-x);12 以下程序的结果为。main() int a=2,b=3,c,d;c=(a+)+(a+)+(a+);d=(+b)+(+b)+(+b);printf(a=%d c=%dn,a,c);printf(b=%d d=%dn,a,d);13 以下程序main() char ch1,ch2,ch3;scanf(%c%c%c,&ch1,&ch2,&ch3);printf(%c%c%c%c%c,ch1,#,ch2,#,ch3);当输入ABC时运行结果为 【1】 ,当输入A BC时运行结果为 【2】 。14 若有定义:float x;,以下程序段的输出结果是。x=5.16894;pr

10、intf(%fn,(int)(x*1000+0.5)/(float)1000);15 以下程序的功能是:输入一个小写字母,输出对应的大写字母,将程序补充完整。main() char ch; 【1】 /* 从键盘输入一个小写字母 */ 【2】 /* 将该字母转换为大写字母 */ 【3】 /* 输出转换后的结果 */16 当运行以下程序时,在键盘上从第一列开始输入9876543210(此处代表回车),则程序的输出结果是。main() int a; float b,c;scanf(%2d%3f%4f,&a,&b,&c);printf(na=%d,b=%f,c=%fn,a,b,c);17 以下程序的运

11、行结果是。main() printf(%12.5fn,123.1234567);printf(%12fn,123.1234567);printf(%12.8dn,12345);printf(%12.8sn,abcdefghij);18 运行以下程序时,如从键盘上输入abcdefg,则输出结果是。main() char ch1,ch2,ch3;ch1=getchar(); ch2=getchar(); ch3=getchar();putchar(ch1); putchar(ch2); putchar(ch3);putchar(n);19 运行以下程序时,如从键盘上输入:a=3,b=535,35.

12、12abc后,结果是。main() int a,b; float x,y; char c1,c2;scanf(a=%d,b=%d,&a,&b);scanf(%f,%e,&x,&y);scanf(%c%c%c,&c1,&c1,&c2);printf(a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%cn,a,b,x,y,c1,c2);顺序、选择结构程序设计一 单项选择题(每题2分,共40分)1 以下程序运行后的输出结果是。main() int a=0,b=0;a=10; b=20; printf(a+b=%dn,a+b);A a+b=10 B a+b=30 C 30 D 出错2 以下程

13、序运行后的输出结果是。main() double d=3.2; int x,y;x=1.2; y=(x+3.8)/5.0;printf(%dn,d*y);A 3 B 3.2 C 0 D 3.073 以下程序运行后的输出结果是。main() double d; float f; long l; int i;i=f=l=d=20/3;printf(%d %ld %.1f %.1fn,i,l,f,d);A 6 6 6.0 6.0 B 6 6 6.7 6.7 C 6 6 6.0 6.7 D 6 6 6.7 6.04 以下程序运行后的输出结果是。main() int a=1,b=2;a=a+b; b=a

14、-b; a=a-b;printf(%d,%dn,a,b);A 1,2 B 1,1 C 2,2 D 2,15 以下程序运行后的输出结果是。main() int x,y,z;x=y=2; z=3;y=x+-1; printf(%d %d ,x,y);y=+x-1; printf(%d %dn,x,y);y=z-1; printf(%d %d ,z,x);y=-z-1; printf(%d %dn,z,x);A 3 1 4 3 B 3 1 3 3 C 3 1 4 3 D 2 1 3 22 4 1 4 2 4 2 2 2 4 1 2 1 3 1 26 以下程序运行后的输出结果是。main() int

15、x,y,z;x=y=1;z=x+,y+,+y;printf(%d,%d,%dn,x,y,z);A 2,3,3 B 2,3,2 C 2,3,1 D 2,2,17 以下程序运行后的输出结果是。main() int x=4,y=7;x-=y; y+=x;printf(%d %dn,x,y);A 4 7 B -3 -3 C -3 11 D -3 48 以下程序运行后的输出结果是。main() unsigned short a=65536; int b;printf(%dn,b=a);A 65536 B 0 C 1 D -19 以下程序:#include main() char c1,c2,c3,c4,

16、c5,c6;scanf(%c%c%c%c,&c1,&c2,&c3,&c4);c5=getchar(); c6=getchar();putchar(c1); putchar(c2);printf(%c%cn,c5,c6);程序运行后,若从键盘输入(从第1列开始)12345678则输出结果是。A 1267 B 1256 C 1278 D 124510 设a、b和c都是int型变量,且a=3,b=0,c=5,则以下值为0的表达式是。A a&b B a&b|c C a&b&c D a|b&c11 在嵌套使用if语句时,C语言规定else总是。A 和之前与其具有相同缩进位置的if配对B 和之前与其最近的

17、if配对C 和之前与其最近不带else的if配对D 和之前的第一个if配对12 若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为。A a0 B !a C a=0 D a13 以下程序运行后的输出结果是。main() int a=2,b=-1,c=2;if(ab)if(b0) c=0;else c+;printf(%dn,c);A 0 B 1 C 2 D 314 若k是int型变量,下面的程序段的输出结果是 。k=-3;if(k=0) printf(#)else printf(&);A # B &C #& D 有语法错误,无输出15 以下程序运行后的输出结果是。ma

18、in() int a=0,b=0,c=0,d=0;if(a=1) b=1;c=2;else d=3;printf(%d,%d,%d,%dn,a,b,c,d);A 0,1,2,0 B 0,0,0,3 C 1,1,2,0 D 编译有错16 以下程序运行后的输出结果是。main() int x1=1,x2=0,x3=0;if(x1=x2+x3) printf(*);else printf(#);A * B 有语法错误 C # D 无输出结果17 当a=1,b=3,c=5,d=4时,执行下面一行程序后,x的值是。if(ab)if(cd)x=1;else if(ac)if(bd)x=2;else x=3

19、;else x=6;else x=7;A 1 B 2 C 3 D 618 下列叙述中正确的是。A break语句只能用于switch语句B 在switch语句中必须使用defaultC break语句必须与switch语句中的case配对使用D 在switch语句中不一定使用break语句19 若有定义:float x=1.5; int a=1,b=3,c=2; 则正确的switch语句是。A switch(x) B switch(int)x); case 1.0:printf(*n); case 1:printf(*n);case 2.0:printf(*n); case 2:printf(

20、*n); C switch(a+b) D switch(a+b) case 1:printf(*n); case 1:printf(*n);case 2+1:printf(*n); case c:printf(*n); 20 以下程序运行后的输出结果是。#includemain() int x=1,y=0,a=0,b=0;switch(x) case 1:switch(y) case 0:a+;break; case 1:b+;break;case 2:a+;b+;break;printf(a=%d,b=%dn,a,b);A a=2,b=1 B a=1,b=1 C a=1,b=0 D a=2,

21、b=2二 填空题(每题3分,共30分)1 以下程序运行后的输出结果是。#include main() int i=010 , j=10;printf(%d,%dn,+i,j-);2 以下程序运行后的输出结果是。#include main() printf(%d%d%dn,0,0,0); 3 以下程序运行后的输出结果是。main() int i=5,j,k;j=i+i+i+;k=(+i)+(+i)+(+i);printf(i=%5d j=%5dnk=%5dn,i,j,k);4 下面的程序运行时从键盘上输入9876543210,程序的输出结果是。main() int a; float b,c;sc

22、anf(%2d%2f%2f,&a,&b,&c);printf(a=%d,b=%.1f,c=%.0f,a,b,c);5 下面程序的输出结果是。main() char ch1,ch2;ch1=A+5-3; ch2=A+6-3;printf(%d,%cn,ch1,ch2);6 执行下面的语句:printf(%dn,(a=3*5,a*4,a+5);,输出是。7 以下程序运行后的输出结果是。main() int x=10; printf(%d,%dn,-x,-x); 8 为表示关系xyz,应使用C语言表达式。9 下面的程序段的输出结果是。int x=3;if(x%2)?printf(*%d,x):pri

23、ntf(#%dn,x);10 以下程序运行后的输出结果是。main() int m=5;switch(m/2) case 1: m+;case 2: m+=3;case 5: m+=6;break;default: m-=7;printf(%dn,m);三 程序填空(每空5分,共30分)1 下列程序的输出结果是16.00,请填空。main() int a=9,b=2;float x= 【1】 ,y=1.1,z;z=a/2+b*x/y+1/2;printf(%5.2fn,z);2 完成以下程序,输入变量a,b,c的值,判断a,b,c能否组成三角形,计算三角形面积。(公式为: )。#include

24、 【2】 ;main() int a,b,c; 【3】 printf(please input the value of a,b,c)scanf(%d %d %d, 【4】 );if( 【5】 ) 【6】 s=sqrt(p*(p-a)*(p-b)*(p-c);printf(Yes,this is a triangle!n the area is %.2f.n,s);else printf(No,this is not a triangle!n)循环结构程序设计一 单项选择题(每题2分,共40分)1 以下程序中,while循环的循环次数是。main() int i=0;while(i10) if

25、(i6) n-; printf(%d,n); 该程序的输出结果是A 987 B 876 C 8765 D 98763 以下程序段,while循环执行的次数是。int k=0;while(k=1) k+;A 无限次 B 有语法错 C 一次也不执行 D 执行1次4 以下叙述正确的是。A do-while语句构成的循环不能用其它语句构成的循环来代替B do-while语句构成的循环只能用break语句退出C 用do-while语句构成的循环,在while后的表达式为非零时结束循环D 用do-while语句构成的循环,在while后的表达式为零时结束循环5 以下程序的执行结果是。main() int

26、a,y;a=10; y=0;do a+=2; y+=a;printf(a=%d y=%dn,a,y);if(y20) break;while(a=14);A a=12 y=12 B a=12 y=12a=14 y=16 a=16 y=28a=16 y=20a=18 y=24C a=12 y=12 D a=12 y=12a=14 y=26a=14 y=446 以下程序的执行结果是。main() int x=23;do printf(%d,x-); while(!x);A 321 B 23 C 不输出任何内容 D 陷入死循环7 有以下程序段,输出结果是。int x=3;do printf(%d ,

27、x-=2); while(!(- -x);A 1 B 3 0 C 1 -2 D 死循环8 以下程序的输出结果是。main() int a=0,i;for(i=1;i5;i+) switch(i) case 0: case 3: a+=2;case 1: case 2: a+=3;default:a+=5;printf(%dn,a);A 31 B 13 C 10 D 209 以下程序的输出结果是。main() int i=0,a=0;while(i20) for(; ;)if(i%10)=0) break;else i-;i+=11; a+=i;printf(%dn,a);A 21 B 32 C

28、 33 D 1110 以下循环体的执行次数是。main() int i,j;for(i=0,j=1;i=j+1;i+=2,j-) printf(%d n,i);A 3 B 2 C 1 D 011 下列程序的输出结果是。main() int i,j,m=0,n=0;for(i=0; 2;i+)for(j=0;j=i) m=1;n+;printf(%dn,n);A 4 B 2 C 1 D 012 下列程序的输出结果是。main() int i,sum;for(i=1;i=3;sum+) sum+=i;printf(%dn,sum);A 6 B 3 C 死循环 D 013 以下程序执行后sum的值是

29、。main() int i,sum;for(i=1;i6;i+) sum+=i;printf(%dn,sum);A 15 B 14 C 不确定 D 014以下程序执行后的输出结果是。main() int i,n=0;for(i=2;i5;i+) do if(i%3) continue; n+; while(!i);n+;printf(n=%dn,n);A n=5 B n=2 C n=3 D n=415 下列语句中,能正确输出26个英文字母的是。A for(a=a;a=z;printf(%c,+a); B for(a=a;a=z;) printf(%c,a);C for(a=a;a=z;prin

30、tf(%c,a+); D for(a=a;a=z;printf(%c,a);16 以下程序执行后的输出结果是。main() int x=1,y=1;while(y=10) break;if(x%2=0) x+=5; continue; x-=3; y+;printf(%d,%d,x,y);A 6,6 B 7,6 C 10,3 D 7,317 以下程序执行后的输出结果是。main() int a=5;while(!(a-5) switch(a) case 1:a+;case 4:a+=4;case 5:a+=5;break;default:a-=5;printf(%dn,a);A 12 B 7

31、C 5 D 1318 对于下面的for循环语句,可以断定它执行次循环。for(x=0,y=0;(y!=67)&(x=A & ch=a & ch=z) ch=ch-32;printf(%c,ch);printf(n);A ABCdef B abcDEF C abc D DEF20 当执行以下程序时,。int a=1;do a=a*a; while(!a);A 循环体将执行1次 B 循环体将执行2次C 循环体将执行无限次 D 系统将提示有语法错误二 填空题(每空3分,共33分)1 若输入字符串:abcde,则以下while循环体将执行次。while(ch=getchar()=e) printf(*

32、);2 以下while循环执行的次数是。k=0; while(k=10) k=k+1;3 下列程序的输出结果是。main() int x=0,y=5,z=3;while(z-0 & +x5) y=y-1;printf(%d,%d,%dn,x,y,z);4 下面程序的功能是:计算1到10之间的奇数之和及偶数之和,请填空。main() int a,b,c,i;a=c=0;for(i=0;i=10;i+=2) a+=i;_ 【1】 ;c+=b;printf(偶数之和=%dn奇数之和=%dn,a, 【2】 );5 下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数,请填空。main()

33、int i,j;for(i=0; _ 【1】 ; i+) j=i*10+6;if(_ 【2】 )continue;printf(%dn,j);6 以下程序的输出结果是。main() int s,i;for(s=0,i=1;i3;i+,s+=i);printf(%dn,s);7 要使以下程序段输出10个整数,请填入一个整数。for(i=0;i=;printf(%d n,i+=2) ;8 程序的功能是根据以下近似公式求值:请填空完成求的功能。#include math.hmain() int n=30000; double s=0.0; long i; for(i=1;i=n;i+) s=s+_ 【1】 ; pri

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      联系我们       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号  |  icp.png浙ICP备2021020529号-1 浙B2-2024(办理中)  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服