经典计算机C语言习题集.pdf
《经典计算机C语言习题集.pdf》由会员分享,可在线阅读,更多相关《经典计算机C语言习题集.pdf(130页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第一部分:选择题(每题2 分,2 0 题/套,共 4 0 分).1一、概 述.1二、语法基础.2三、控制结构.9四、数 组.1 5六、指 针.2 9七、结构体和共用体.3 5八、链 表.4 0九、枚举、自定义类型和位运算.4 7第二部分:改错题(每题1 0 分,2 题/套,共 2 0 分).5 4第 2 套.5 6第 3 套.5 7第 4 套.5 9第 6 套.6 1第 7 套.6 2第 8 套.6 4第 9 套.6 5第 1 0 套.6 6第 1 1 套.6 7第 1 2 套.6 9第三部分:填空题(每题1 0 分,每套抽2 题,共 2 0 分).7 0第 1 套.7 1第 2 套.7 2第
2、 3 套.7 4第 4 套.7 56 8 0第 7 套.8 2第 8 套.8 5第 9 套.8 8第 1 0 套.9 0第 1 1 套.9 2第 1 2 套.9 4第四部分:编程题(每题1 0 分,2 题/套,共 2 0 分).9 6第 1 套第 2 套.9 6.9 8第 5 套第 6 套第 7 套第 8 套1 0 21 0 41 0 51 0 7第 1 2 套.1 1 3第五部分:参考答案.1 1 4一、二三必选改填编择错空程.1 1 4.1 1 6.1 1 8第一部分:选 择 题(每题2分,20题/套,共40分)一、标述1.在 c 语言中,合法的字符常量是(D).“A”A.字 B.A C.
3、ABC D.x41 n2.下面叙述正确的是(B)oA.程序中必须包含有输入语句 B.变量按所定义的类型存放数据C.main函数必须位于文件的开头 D.每行只能写一条语句3.错误的叙述是(D)。A.一 个 C 语言源程序可由一个或多个函数组成B.若一条语句较长,也可分写在下一行上C.C 程序必须包含一个main()函数D.构 成 C 语言源程序的基本单元是算术表达式4.(A)是关于C 语言数据类型的正确叙述。A.变量必须先定义后使用 B.C,枚举类型不是基本类型 D.5.main()函数的位置(B)。A.必须在自定义函数前面 B.C.必须位于程序的最前面 D.6.C 语言函数体由(C)括起来。A
4、.B.()C.7.(A)是不正确的叙述。A.注释说明只能位于一条语句的后面C.C 源程序可由一个或多个函数组成8.一 个 C 语言源程序是由(B)。A.一个主程序和若干子程序组成C.若干过程组成 D.9.结构化程序设计的三种基本结构是A.函数结构、判断结构、选择结构C.顺序结构、选择结构、循环结构10.C 源程序的调试是指对源程序进行A.录 入 与 编 辑 B.查错与编译 C.11.C 语言中,可将一系列语句置于(A.一对尖括号 ”之间 B.不允许使用空类型数组并不是构造类型可以在自定义函数后面必须在自定义函数后面D.B.C 源程序的基本组成单元是函数D.每条语句最后必须有一个分号B.函数组成
5、若干子程序组成(C)oB.平行结构、嵌套结构、函数结构D.判断结构、嵌套结构、循环结构(C).查错与排错 D.连接与运行C)从而构成复合语句。一对圆括号“()”之间-1-c.一对花括号”之间 D.一对方框号”之间12.构 成 C 源程序的基本单位是(D)。A.语句 B.变量 C.运算符 D.函数13.以下叙述中正确的是(AA.C 源程序中注释部分可以出现在程序中任意合适的地方B.一对花括号”1 只能作为函数体的定界符C.C 源程序编译时注释部分的错误将被发现D.构 成 C 源程序的基本单位是函数,所有函数名都可以由用户命名二、将饮基砒14.C 语言的下列运算符中,优先级最高的运算符是(A)oA
6、.+B.+=C.I ID.!=15.A.(D)为正确的用户标识符。struct B.5f C._f0.6D._for16.A.C 语言基本数据类型包括(B整型、实型、逻辑型 B.整型、实型、字符型C.整型、字符型、逻辑型 D.整型、实型、字符串型17.A.(A)为合法的常量。XX.XXE-+XX52686L B.E-7 C.1.2E-2.11 D.E1218.A.(C)为正确的变量名。-kl5 B.int C.k_5D.k.jeep19.A.(D)为正确的字符常量。B.24m C.cD.M*20.A.(C)为非法的字符串常量。B.s C.efgD.2662”21.C 语言整型数据在内存中的代码
7、是用(C)表示的。A.原码 B.反码 C.补码D.BCD 码22.A.以下选项中,合法的实型常数是(B)E-3 B.2E1 C.1E.5D.1.5E23.下 列 C 语言合法的数据类型关键字是(B)A.Double B.unsigned C.IntegerD.Char24.TurboC中,int型数据占用的字节数(B)。A.B.C.D.由用户自己定义为 2 个字节是任意的等于所用计算机的字长-2-25.IhrboC 中,基本数据类型存储空间长度的排列顺序是(A)。A.B.C.D.26.A.charintlongchar=intlongcharintIongchar=int=longintflo
8、atdoubleintfloatdoubleint=float=doubleintfloat5)printf(M%dnH,a);else printf(H%dnM,a);A.7 B.4 C.5 D.65 4.若已定义float x;要从键盘输入数据36.582给变量x,则应选用(B)语句。A.scanf(n%2.3f&x);B.scanf(M%6f&x);C.scanf(H%6.3fM,&x);D.scanf(n%5.3fH,&x);5 5.若已定义double y;拟从键盘输入一个值赋给变量y,则正确的函数调用是(C)。A.scanf(M%dH,&y);B.scanf(H%7.2fH,&y)
9、;C.scanf(n%lfM,&y);D.scanf(n%ldn,&y);5 6.已有定义char s;使 用 scanf()函数输入一个字符给变量s,不正确的函数调用是(D)oA.scanf(n%cn,&s);B.scanf(M%dH,&s);C.scanf(n%uM,&s);D.scanf(n%lfM,&s);57.函数putchar()的功能是向终端输出(AA.一个字符 B.多个字符C.一个关系表达式 D.一个实型变量值58.若 已 定 义 int a=U;执行以下语句后的输出结果是(B)。printf(a=%d,a=%o,a=%xn,a,a,a);A.a=ll,a=ll,a=b B.a
10、=ll,a=13,a=bC*a=ll,a=13,a=c D.a=ll,a=12,a=135 9.若有定义 int m=4321,n=123,k=21;语句 printf4d+%3d+%2dm,n,k);执行后的输出结果是(C)。A.4321432143211231231232121 B.432112321C.4321+123+21 D.432+123+0216 0.已有如下定义和输入语句,charcl,c2;int x;scanf(n%c%d%cn,&cl,&x,&c2);若要求x、c l、c2的值分别为9、k,和I T,正确的数据输入是(A)。A.K9H B.K 9 H C.K9 H D.9
11、KH61.以下程序段的运行结果是(A)oint a=l;printf(M%d,%d,%dn”,a,+a,a+);A.3,3,1 B.1,2,2 C.1,2,3 D.3,2,162.以下程序的运行结果是(D)ovoid main()int a=65;char c=A;printf(M%d+%c=%dn*a,c,a+c);A.A+A=AA B.65+A=65A C.65+65=130 D.65+A=13063.若已定义:intx=7;floaty=7.0;以下语句中能输出正确值的是(B)。A.printf(n%d%dn,x,y);B.printf(n%d%.3f”,x,y);C.printf(n%
12、.3f%3fH,x,y);D.printf(n%3f%dH,x,y);64.putchar函数可以向终端输出一个(AA.字符或字符型变量值 B.整型变量表达式值C.实型变量值 D.字符串6 5.若已定义:int a=6;float b=1.5;要求输出形式为:6*130=9.00,应选用的正确输出语句是(BA.printf(M%d*%f=%fa,b,a*b);C.printf(H%d*%d=%.2fM,a,b,a*b);66.有以下程序:B.print*”%d*%.2f=%.2fa,b,a*b);D.printf(n%.2f*%.2f=%.2fH,a,b,a*b);main()int c;wh
13、ile(c=getchar()!=247 c:2 66switch(c2)c:4 8case 0:c:7 9case 1:putchar(c+4);case 2:putchar(c+4);break;-6-case 3:putchar(c+3);default:putchar(c+2);break;printf(HnH);)当输入:247 回车,程序的输出结果是(B)。A.689 B.6689 C.66778 D.6688767.若已定义int x=5,y=9,z;语 句 z=x=y;运行后z 的 值 为(CA.1 B.t C.0 D.f68.判定逻辑值为“真”的最准确叙述是(D)。A.1 B
14、.大 于 0 的数 C.非 0 的整数 D.非 0 的数69.若已定义int x=-16,y=-12,z;语句片xv=y;运行后z 的 值 为(B)。A.t.B.1 C.f D.070.能正确表示数学关系式100WsV300的表达式为(C)oA.(s=100)&(s300)B.100=s=100)&(s=100)and(s=bllb=cc-blla+b&(b*c-a-c)D.(b*c-a-c)&(b*c-a-b)若已定义:intx=4,y=2,z=0;则表达式(xyv=y)ll(y=z)的 值 是(A)。1 B.0 C.2 D.4若有定义:inta=3,b=2,c=l,k;则表达式k=abc的
15、 值 是(A 定A.0 B.1 C.2 D.377.以下运算符中优先级最高的是(D)oA.x)II(b=yz);A.0 B.1 C.-1 D.679.以下程序运行后,a 的 值 是(C)omain()-7-int a,b;for(a=l,b=l;a=20)break;2.a=2,b=4b+3=7if(b%3=l)b+=3;continue;3.a=3,b=7b+3=10b-=5;4.a=4,b=10b+3=13)5.a=5 b=13b=166.a=6 b=16b=197.a=7 b=19b=228.a=8 b=22breakA.80.A.C.81.A.82.A.83.A.84.A.85.A.1
16、01 B.100已定义 double k=3.6;k=double(-3.6)k=k*(-1.0)=-3.6C.8 D.7则正确的赋值表达式是(D)oB.k%3D.k+=k-=(k=1.2)*(k=3)已 定 义 charc=fA;则正确的赋值表达式是(B)。c=028 B.c=(c+)%4 C.c+l=66 D.c+=127-已 定 义 intm=,A,;则正确的表达式是(C)o2*m=m+B.m=int(-3.2)C.m%3 D.m=m-m=m-5设已定义float a=2.0,b=3.0;使 a 值 为 5.0的表达式是(A)。a+=b B.a*=b+2.0 C.a/=b+2.0 D.a
17、-=b+2.0若已定义int m=7;float k=5.5;则表达式k+m%2/4的 值 为(D)o6.375 B.6.75 C.5.75 D.5.5若已定义 int a=3,b=3,x=l,y=2;表 达 式(a=yx)&(x=ba)的 值 是(B)。6 B.1 C.9 D.0a=yx a=l x=ba86.若有定义:int a=2,b=3;float x=5;则表达式x*b/a的 值 是(B)。A.7.5 B.7 C.6 D.587.若有定义:int x=8;float y=130;char 则表达式 x+z%(int)y 的 值 是(C)o 已知A 的 ASCII码的十进制值为65A.
18、运行时产生错误信息 B.8 C.73 D,8.588.若已定义:int m=7,n=4;float x=3.0,y=8.0,k;则执行语句 k=m/2+n*x/y;后,变量 k的 值 是(C)oA.3 B.4 C.4.5 D.589.若有定义:float x=2,y=4,h=3;下列表达式中与(x+y)*h/2.0计算结果不相符的是(C)。A.(x+y)*h/2 B.(x+y)*h*l/2 C.(l/2)*(x+y)*h D.h/2*(x+y)90.表达式2+sqrt(16.0)/4结果的数据类型是(A)。A.Double B.int C.char D.void91.若有定义:inta=4,b
19、=5,c=6;则表达式(L0*a+b)/c的 值 是(A)。A.1.5 B.1 C.4 D.4.5三,控制辂构9 2.以下程序段的运行结果是(D)oint x=3;doprint*%3d,x-=2);while(!(-x);A.1,B.30,C.死循环l .x=3 输出 1 lx=02.x=0 输出-2 0循环结束93.以下程序运行时,若从键盘输入6,则输出结果是(A)ovoid main()int x;scanf(M%dH,&x);if(x-6)printf(H%dn,;elseprintf(H%dnH,-x);)A.4 B.594.以下程序的运行结果是(x=6条 件 假,执行elsex=5
20、先 减 1,再输出x 4C.6C)oD.3void main()int m,n=l,t=l;if(t=0)条 件 假,执 行 elsem=n=0?7:3;n=0 真 m=7printf(n%dnH,m);-9-A.3 B.-l C.7 D.19 5.对于整型变量a,赋值语句a=(a%3=0?l:0);(若 a 能被c 整除则a=L 否则a=0)与(D)语句不等价。A.if(a%3=0)a=l;else a=0;B.if(a%3!=0)a=0;else a=l;C.if(a%3)a=0;else a=l;D.if(a%3)a=l;else a=0;96.以下程序运行的结果是(B)。void ma
21、in()int x,y,z,a;x=y=z=l;a=15;if(1x)条件假,执行ekea-;else if(y)条件真if(z)条件真a=3;a=3elsea+=4;printf(M%dnH,a);)A.15 B.3 C.19 D.1497.若已定义inta=l,b=2,g 3;则执行以下程序段后变量a,b,t 的值分别为(Aif(a6)printf(M%dnH,a+2);elseprintf(,%dn,a+3);)A.运行时产生错误信息 B.9 C.8 D.61 0 2.若有定义:int x=10,y=8,a;则执行语句a=(-x=y)?x:y);后,变 量 a 的值是(A)。A.8 B.
22、9 C.10 D.O1 0 3.若有定义:inta=2,b=3,c=l;则以下程序段的运行结果是(D)。if(ab)if(ac)-11-printf(H%d”,a);elseprintf(M%d n,b);printf(M%d n,c);A.3 1 B.2 1 C.3 D.1104.以下条件语句中(其中s i 和 s2分别表示C 语言的语句),(D)与其他三条语句不等价。A.if(a)s i;else s2;B.if(a=0)s2;else si;C.if(a!=0)s i;else s2;D.if(a=0)s i;else s2;105.下列程序段中,非死循环的是(A)。A.int100;w
23、hile(l)i=i%100+1;if(i=100)break;)B.int k=0;do+k;while(k=0);C.int s=10;while(+s%2+s%2)s+;D.for(;)106.若已定义int a;不会产生死循环的语句是(CA.for(;a+=2);B.for(a=10;a-);C.for(;(a=getchar()!=n;);D.while(-l)a+;107.在循环语句的循环体中,break语句的作用是(B)。A.继续执行break语句之后的循环体各语句B.提前结束循环,接着执行该循环后续的语句C.结束本次循环D.暂停程序的运行1 0 8.以下程序段运行后,循环体中的
24、n+=3;语句运行的次数为(A)oint iJ,n=0;for(i=l;i=3;i+)for(j=l;j=i;j+)n+=3;printf(M%dnn,n);-12-A.6 次 B.9 次 C.12次 D.1 次1.i=l(j=D2.i=2 0=1 j=2)3.i=3(j=l j=2 j=3)109.dowhile循环与while循环的主要区别是(D)。A.while循环体至少无条件执行一次,而 dowhile循环体可能都不执行B.do-w hile循环体中可使用continue语句,while循环体中不允许出现continue语句C.dowhile循环体中可使用break语句,while循环
25、体中不允许出现break语句D.do-w hile循环体至少无条件执行一次,而 while循环体可能都不执行110.以下程序段运行后,循环体运行的次数为(A)oint i=8,a=0;for(;i8;i+)a+=i;A.0 次 B.1 次 C.8 次 D.无限111.以下程序段运行后变量a 的 值 为(C)oint i=l,a=0;for(;i3;i+)continue;a+=i;)A.6 B.3 C.0 D.5112.有以下程序:void main()int i;for(i=l;i=3;i+)switch(i)case 1:printf(H%dn,i);break;case 2:printf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 经典 计算机 语言 习题集
限制150内