C语言程序设计习题集及答案.pdf
《C语言程序设计习题集及答案.pdf》由会员分享,可在线阅读,更多相关《C语言程序设计习题集及答案.pdf(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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 char 5 以下所列的 C 语言
2、整形常量中,正确的是。A 0 x10 B 0976 C 076L D 01ff 6 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 23 8 已知 int i;,则执行语句 i=;后,i 的值为。A 2 B 3 C D 不确定 9 以下合法的字符常量为。A ab B 482 C D xaf 10 若 y 为 int 型变量,则执行以下语句后,y 的值是。y=8;y+=y-=y*y;A 64 B 56 C 11
3、2 D 48 11 以下合法的浮点型常量是。A e-3 B+C+2L D e+5 12 设 int 数据占用两个字节,float 数据占用四个字节,double 数据占用 8 个字节,且已知 float a=2;int b=3;则执行下列语句输出为。printf(%d,sizeof(a*b)+2/5);A 4 B 8 C 6 D 7-13 设 int 型占 2 个字节,且 int i=-2;,则语句 printf(%u,i);的输出结果为。A 0 B-2 C 65534 D 65535 14 若 x、y、z 均为整型常量,且 a=100,则执行下列语句后的 z 值为。x=a+;y=-a;z=x
4、+y-a-;A 100 B 400 C 200 D 300 15 若有以下定义和语句:int u=010,v=0 x10,w=10,printf(%d,%d,%dn,u,v,w);,则输出结果是。A 8,16,10 B 10,10,10 C 8,8,10 D 8,10,10 16 设 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/(floa
5、t)c D a/b/c 18 若有定义:int a=8,b=5,c;char d=A;,则执行语句 c=a/b+d%a+;后 c 的值为。A 2 B C 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,12 20 已知 int i=65;,则 putchar(i);printf(%d,i);printf(%c,i);的输出结果为。A A,65,A B 65,65,A C A,A,65 D
6、 A,A,A 21 已知 int y,a,i=1;,则语句 printf(%d,%d,-i+,(y=a=*3);的输出结果为。A-1,10 B-2,C 0,3 D 1,18 22 有以下程序:main()char a,b,c,d;a=;b=xbc;c=0 xab;d=023;printf(%c%c%c%cn,a,b,c,d);编译时出现错误,以下叙述中正确的是。A 程序中只有 a=;语句不正确 B b=xbc;语句不正确 C d=023;语句不正确 D a=;和 c=0 xab;语句都不正确?二 填空题(第 1 题 2 分,其余每题 3 分,共 56 分)1 设 x 为 int 型变量,请写出
7、描述“x 是偶数”的表达式是。2 已知 scanf(a=%d,b=%d,c=%d,&a,&b,&c);,若从键盘输入 2、3、4 三个数分别作为变量 a、b、c 的值则正确的输入形式是。3 设有语句 int a=3;,则执行了语句 a+=a-=a*a 后,变量 a 的值是。4 以下程序的输出结果是。main()abc1的表达式是。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=3276
8、7,n=032767;printf(%d,%on,m,n);7 字符串name101ddressbxaf的长度为:。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,0 x10);printf(%d,%xn,012,012);10 设 a、b、c 为整形变量,且 a=2、b=3、c=4,则执行完语句 a*=16
9、+(b+)-(+c);之后,变量 a 的值为。11 以下程序的输出结果为。main()int x=023;printf(%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】,当输
10、入 A BC 时运行结果为 【2】。14 若有定义:float x;,以下程序段的输出结果是。x=;printf(%fn,(int)(x*1000+/(float)1000);15 以下程序的功能是:输入一个小写字母,输出对应的大写字母,将程序补充完整。/main()char ch;【1】/*从键盘输入一个小写字母 */【2】/*将该字母转换为大写字母 */【3】/*输出转换后的结果 */16 当运行以下程序时,在键盘上从第一列开始输入 10(此处代表回车),则程序的输出结果是。main()【int a;float b,c;scanf(%2d%3f%4f,&a,&b,&c);printf(na
11、=%d,b=%f,c=%fn,a,b,c);17 以下程序的运行结果是。main()printf(%n,;printf(%12fn,;,printf(%n,12345);printf(%n,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,abc后,结果是。main()
12、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 以下程序运行后的输出结果是。main
13、()double d=;int x,y;x=;y=(x+/;printf(%dn,d*y);A 3 B C 0 D 3 以下程序运行后的输出结果是。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 B 6 6 C 6 6 D 6 6 4 以下程序运行后的输出结果是。main()int a=1,b=2;a=a+b;b=a-b;a=a-b;printf(%d,%dn,a,b);A 1,2 B 1,1 C 2,2 D 2,1 5 以下程序运行后的输出结果是。&main()int
14、 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 2 2 4 1 4 2 4 2 2 2 4 1 2 1 3 1 2 6 以下程序运行后的输出结果是。main()int 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,1 7 以下程序运行
15、后的输出结果是。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 4 8 以下程序运行后的输出结果是。main()unsigned short a=65536;int b;printf(%dn,b=a);A 65536 B 0 C 1 D-1 9 以下程序:#include main()char c1,c2,c3,c4,c5,c6;scanf(%c%c%c%c,&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);print
16、f(%c%cn,c5,c6);程序运行后,若从键盘输入(从第 1 列开始)、123 45678 则输出结果是。A 1267 B 1256 C 1278 D 1245 10 设 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&c 11 在嵌套使用 if 语句时,C 语言规定 else 总是。A 和之前与其具有相同缩进位置的 if 配对 B 和之前与其最近的 if 配对 C 和之前与其最近不带 else 的 if 配对 D 和之前的第一个 if 配对 12 若要求在 if 后一对圆括号中表示 a
17、不等于 0 的关系,则能正确表示这一关系的表达式为。A a0 B!a C a=0 D a 13 以下程序运行后的输出结果是。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 3 14 若 k 是 int 型变量,下面的程序段的输出结果是 。k=-3;【if(k=0)printf(#)else printf(&);A#B&C#&D 有语法错误,无输出 15 以下程序运行后的输出结果是。main()int a=0,b=0,c=0,d=0;if(a=1)b=1;c=2;?else d=3;print
18、f(%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;else x=6;else x=7;A 1 B 2 C 3 D 6 18 下列叙述中正确的是。A break
19、 语句只能用于 switch 语句 B 在 switch 语句中必须使用 default C break 语句必须与 switch 语句中的 case 配对使用 D 在 switch 语句中不一定使用 break 语句 19 若有定义:float x=;int a=1,b=3,c=2;则正确的 switch 语句是。A switch(x)B switch(int)x);case:printf(*n);case 1:printf(*n);case:printf(*n);case 2:printf(*n);C switch(a+b)D switch(a+b))case 1:printf(*n);c
20、ase 1:printf(*n);case 2+1:printf(*n);case c:printf(*n);20 以下程序运行后的输出结果是。#include main()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,b=2 二 填空题(每题 3 分,共 30 分)1 以下程序运行后的输出结果是。#include main()i
21、nt 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 下面的程序运行时从键盘上输入 10,程序的输出结果是。main()int a;float b,c;scanf(%2d%2f%2f,&a,&b,&c);【printf(a=%d,b=%.1f,c=%.0f,a,b,c);5 下面程序的输
22、出结果是。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):printf(#%dn,x);10 以下程序运行后的输出结果是。main()int m=5;switch(m/2)case 1:m+;cas
23、e 2:m+=3;case 5:m+=6;break;default:m-=7;printf(%dn,m);三 程序填空(每空 5 分,共 30 分)1 下列程序的输出结果是,请填空。main()int a=9,b=2;float x=【1】,y=,z;z=a/2+b*x/y+1/2;printf(%n,z);?2 完成以下程序,输入变量 a,b,c 的值,判断 a,b,c 能否组成三角形,计算三角形面积。(公式为:)。#include 【2】;main()int a,b,c;【3】printf(please input the value of a,b,c)scanf(%d%d%d,【4】)
24、;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(i6)n-;printf(%d,n);该程序的输出结果是 A 987 B 876 C 8765 D 9876 3 以下程序段,while 循环执行的次数是。int k=0;wh
25、ile(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 a,y;a=10;y=0;do a+=2;y+=a;printf(a=%d y=%dn,a,y);if(y20)break;while(a=14
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 习题集 答案
限制150内