经典计算机C语言习题集.docx

上传人:无*** 文档编号:87074147 上传时间:2023-04-16 格式:DOCX 页数:134 大小:359.28KB
返回 下载 相关 举报
经典计算机C语言习题集.docx_第1页
第1页 / 共134页
经典计算机C语言习题集.docx_第2页
第2页 / 共134页
点击查看更多>>
资源描述

《经典计算机C语言习题集.docx》由会员分享,可在线阅读,更多相关《经典计算机C语言习题集.docx(134页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、112915222935404749545456575960616264656667697071727475788082858890929496第一部分:选择题(每题2分,20题/套,共40分)一、概述二、语法基础三、控制结构四、数组五、函数六、指针七、结构体和共用体八、链表九、枚举、自定义类型和位运算十、文件第二部分:改错题(每题10分,2题/套,共20分)第1套第2套第3套第4套第5套第6套第7套第8套第9套第10套第口套第12套第三部分:填空题(每题10分,每套抽2题,共20分)第1套第2套第3套第4套第5套第6套第7套第8套第9套第10套第口套第2套第四部分:编程题(每题10分,2题/

2、套,共20分)第1套第2套第3套第4套第5套第6套第7套第8套969899100102104105107108第11套第12套第五部分:参考答案选改填编择错空程111113114114116118120第9套第一部分:选择题(每题2分,20题/套,共40分)一,挑述1 .在C语言中,合法的字符常量是(D ).“A”A.字B.A C.ABC D.x41n2 .下面叙述正确的是(B )oA.程序中必须包含有输入语句B.变量按所定义的类型存放数据C. main函数必须位于文件的开头D,每行只能写一条语句3.错误的叙述是(D ).A.一个C语言源程序可由一个或多个函数组成B.若一条语句较长,也可分写在

3、下一行上C. C程序必须包含一个main()函数D.构成C语言源程序的基本单元是算术表达式4.( A )是关于C语言数据类型的正确叙述。A.变量必须先定义后使用B.C.枚举类型不是基本类型D.5. main()函数的位置(BA.必须在自定义函数前面B.C.必须位于程序的最前面D.6. C语言函数体由(C )括起来。A. B.()C. 7. ( A )是不正确的叙述。A.注释说明只能位于一条语句的后面 C. C源程序可由一个或多个函数组成 8. 一个C语言源程序是由(B ). A. 一个主程序和若干子程序组成 C.若干过程组成D.9.结构化程序设计的三种基本结构是 A.函数结构、判断结构、选择结

4、构 C.顺序结构、选择结构、循环结构 10. C源程序的调试是指对源程序进行 A.录入与编辑B.查错与编译 C.11. C语言中,可将一系列语句置于( A. 一对尖括号“v ”之间B.不允许使用空类型数组并不是构造类型可以在自定义函数后面必须在自定义函数后面D.B. C源程序的基本组成单元是函数D.每条语句最后必须有一个分号B.函数组成若干子程序组成(C )B.平行结构、嵌套结构、函数结构D.判断结构、嵌套结构、循环结构(C ).查错与排错 D.连接与运行C )从而构成复合语句。一对圆括号“()”之间C.一对花括号”之间D.一对方框号”之间12 .构成C源程序的基本单位是(D ).A.语句 B

5、.变量C.运算符 D.函数13 .以下叙述中正确的是(A )oA. C源程序中注释部分可以出现在程序中任意合适的地方B. 一对花括号”“只能作为函数体的定界符C. C源程序编译时注释部分的错误将被发现D.构成C源程序的基本单位是函数,所有函数名都可以由用户命名二,制依基础14.C语言的下列运算符中,优先级最高的运算符是(A )oA.15.+B.+=C. II(D )为正确的用户标识符。D.JA.16.structB.5fC._f0.6C语言基本数据类型包括(B ).D._forA.整型、实型、逻辑型B.整型、实型、字符型C.17.整型、字符型、逻辑型D.整型、(A )为合法的常量。xx.xxE

6、-+xx实型、字符串型A.18.52686LB.E-7C.1.2E-2.1(C )为正确的变量名。D. E121A.19.-kl5B. intC. k_5(D )为正确的字符常量。D. k.jeepA.20.B.24mC.c(C )为非法的字符串常量。D. MA,B.sC.efgD,、2662”21.C语言整型数据在内存中的代码是用(C)表示的。A.22.原码B.反码C.补码以下选项中,合法的实型常数是(B ).D. BCD 码A.E-3B.2E1C.1E.5D.1.5E23.下列C语言合法的数据类型关键字是(BA.DoubleB. unsignedC. IntegerD. Char24.A.

7、B.C.D.IbrboC中,int型数据占用的字节数(B 由用户自己定义为2个字节是任意的等于所用计算机的字长charintlong char=intiong charintlong char=int=longThrboC中,基本数据类型存储空间长度的排列顺序是(A ),intfloatdouble intfloatdouble int=float=double intfloat5) printf(M%dnH,a);A.54A.C55A.else printf(*,%dn,*,a);7B.4 C.5 D.6.若已定义float x;要从键盘输入数据36.582给变量x,则应选用(B )语句。s

8、canf(H%2.3fn,&x);B.scanf(H%6F&x);scanf(H%6.3fM,&x);D.scanf(n%5.3fn,&x);.若已定义double y;拟从键盘输入一个值赋给变量y,则正确的函数调用是(C scanf(H%dn,&y);B.scanf(H%7.2fH,&y);C. scanf(M%lfH,&y);D.scanf(H%ldH,&y);56. 已有定义char s;使用scanf()函数输入一个字符给变量s,不正确的函数调用是(D )oA.scanf(H%cH,&s);B.scanf(H%dH,&s);C.scanf(H%uH,&s);D.scanf(,%lf,&

9、s);57. 函数putchar。的功能是向终端输出(A )。A.一个字符B.多个字符C.一个关系表达式D.一个实型变量值58. 若已定义int a=ll;执行以下语句后的输出结果是(B printf(Ma=%d,a=%o,a=% xna,a,a);A.a=ll, a=ll, a=bB. a=ll, a=13, a=bC.a=ll, a=13, a=cD. a=ll, a=12, a=1359. 若有定义 int m=4321,n=123,k=21;语句 printf4d+%3d+%2dzm,n,k);执行后的输出结果是(CA.4321432143211231231232121B.432112

10、321C.4321+123+21D.432+123+02160. 已有如下定义和输入语句,char cl,c2;int x;scanf(H%c%d%cH,&cl,&x,&c2);若要求x、cl、c2的值分别为9、IC和4T,正确的数据输入是(A )oA. K9H B. K 9 H C. K9 H D.9KH61. 以下程序段的运行结果是(A)oint a=l;printf(M%d,%d,%dnM, a,+a, a+);A.33,1 B.1,2,2C.1,2,3 D.3,2,162. 以下程序的运行结果是(D )0void main()int a=65;char c=*A*;printf(M%d

11、+%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;以下语句中能输出正确值的是(BA.printf(n%d %d,x,y);B. printf(H%d %.3F,x,y);C.printf(M%.3f %3fM,x,y);D. printf(H %3f % d”,x,y);64. putchar函数可以向终端输出一个(A )。A.字符或字符型变量值B.整型变量表达式值C.实型变量值D.字符串65. 若已定义:int a=6;float b=1.5;要求输出形式为:6*130

12、=9.00,应选用的正确输出语句是(B )oA.printf(H%d * %f=%fH,a,b,a*b);C.printf(M%d * %d=%.2fM,a,b,a*b);66. 有以下程序:B. printf(M%d * %2f=%.2fa,b,a*b);D. printf(H% .2f * % .2f=% .2fM,a,b,a*b);6689main()int c;while(c=getchar()!=247 c:2 switch?)c:4 case 0:c:case 1 : putchar(c+4);case 2 : putchar(c+4); break;case 3 : putcha

13、r(c+3); default: putchar(c+2); break;printf(HnH);当输入:247回车,程序的输出结果是(BA.689B.6689C.66778D.6688767. 若已定义int x=5,y=9,z;语句z=x=y;运行后z的值为(C )。A.1B.tC.0D.f68. 判定逻辑值为“真”的最准确叙述是(D )oA.1B.大于0的数 C.非0的整数 D.非。的数69. 若已定义int x=-16,y=-12,z;语句z=xv=y;运行后z的值为(B )。A.tB.1 C.fD.070. 能正确表示数学关系式100WsV300的表达式为(C)oA.(s=100)&

14、(s300)B.100= s=100)&(s=100) and (s=bllb=cC.c-blla+b&(b*c-a-c)D.(b*c-a-c)&(b*c-a-b)75. 若已定义:intx=4,y=2,z=0;则表达式(xyv=y)ll (y=z)的值是(A )。A.1B.0 C.2D.476. 若有定义:inta=3,b=2,c=l,k;则表达式k=abc的值是(AA.0B.1C.2D.377. 以下运算符中优先级最高的是(D )oA.x) II (b=yz); A.0B.1 C.-1D.679. 以下程序运行后,a的值是(C )omain()int a,b;for(a=l,b=l;a=2

15、0) 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=135. a=5 b=13b=166. a=6 b=16b=197. a=7 b=19b=228. a=8 b=22breakA.101 B.100C.8 D.780. 已定义double k=3.6;则正确的赋值表达式是(D )。A.k=double(-3.6)B. k%3C.k=k*(-1.0)=-3.6D. k+=k-=(k=1.2)*(k=3)81. 已定义charc=,A则正确的赋值表达式是(BA. c=028 B.

16、 c=(c+)%4 C. c+l=66 D. c+=127-82. 已定义intmdA,;则正确的表达式是(CA.2*m=m+B.m=int(-3.2)C.m%3D.m=m-m=m-583. 设已定义float a=2.0,b=3.0;使a值为5.0的表达式是(A )A.a+= bB.a*=b+2.0C.a/=b+2.0D.a-=b+2.084. 若已定义int m=7;float k=5.5;则表达式k+m%2/4的值为(D )0A.6.375B.6.75C.5.75D.5.585. 若已定义 int a=3,b=3,x=l,y=2;表达式(a=yx)&(x=ba)的值是(B )。A.6B.

17、1C.9D.0a=yx a=l x=ba86. 若有定义:int a=2,b=3; float x=5;则表达式x*b/a的值是(B )oA.7.5B.7C.6D.587. 若有定义:定 x=8;floaty=130;charz=A;则表达式 x+z%(int)y 的值是(C )。已知火的ASCII码的十进制值为65A.运行时产生错误信息B.8C.73D,8.588. 若已定义:int m=7,n=4; float x=3.0,y=8.0,k;则执行语句 k=m/2+n*x/y;后,变量 k的值是(C )o A.3B.4C.4.5D.589. 若有定义:float x=2,y=4,h=3;下列

18、表达式中与(x+y)*h/2.0计算结果不相符的是(C )oA.(x+y)*h/2 B.(x+y)*h*l/2 C.(l/2)*(x+y)*h D. h/2*(x+y)90. 表达式2+qrt(16.0)/4结果的数据类型是(AA.DoubleB.intC.charD.void91. 若有定义:inta=4,b=5,c=6;则表达式(L0*a+b)/c的值是(A )。A.1.5B.1C.4D.4.5三,粳制辂相92. 以下程序段的运行结果是(D ).int x=3;doprintf(M%3d, M,x-=2);while(!(-x);A.1,B.30,C.死循环D.1,2,1 .x=3输出11

19、 x=02 . x=0输出20循环结束A ).93 .以下程序运行时,若从键盘输入6,则输出结果是( void main()int x;x=6条件假,执行elsex=5先减1,再输出X 4C. 6C ).D. 3scanf(H%dH,&x);if(x-6)printf(M%dnM,x);elseprintf(M%dnH,-x);A.4B.594 .以下程序的运行结果是void main()int m,n=l,t=l;if(t=0)条件假,执行else t=-t;elsem=n=0?7:3;n=0真 m=7printf(n%dn,m);)A.3B.-lC.7D.195.对于整型变量a,赋值语句a

20、=(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 main()int x,y,z,a;x=y=z=l;a=15;if(!x)条件假,执行elsea;else if(y)条件真if(z)条件真a=3;a=3elsea+=4;printf(H%dnM,a);A.15B.3C.19D.1497 .若已定义

21、inta=l,b=2,t=3;则执行以下程序段后变量a, b, t的值分别为(A if(a6)printf(H%dnM,a+2);printf(H%dnH,a+3);A.运行时产生错误信息B.9 C.8 D.6102 .若有定义:int x=10,y=8,a;则执行语句a=(-x=y)? x: y);后,变量a的值是(A )B. 9C.10103 .若有定义:int a=2,b=3,c=l;则以下程序段的运行结果是(D ) printf(M%d n,a);elseprintf(H%d M,b);printf(H%d H,c);A.31B.21 C.3D.1104 .以下条件语句中(其中si和s

22、2分别表示C语言的语句),(D )与其他三条语句不等价。A.if(a) si; else s2;B. if(a =0) s2; else si;C.if(a !=0) si; else s2;D. if(a =0) si; else s2;105 .下列程序段中,非死循环的是(A )oA. int i=100;whiled)i=i%100+1;if(i=100) break;B. int k=0;do+k;while(k=0);C. int s=10;whi)e(+s%2+s%2) s+;D. for(;)106 .若已定义int a;不会产生死循环的语句是(CA.for(;a+=2);B.

23、for(a=10;a);C.for(;(a=getchar()!=*n*;); D. while(-l)a+;107 .在循环语句的循环体中,break语句的作用是(BA.继续执行break语句之后的循环体各语句B.提前结束循环,接着执行该循环后续的语句C.结束本次循环D.暂停程序的运行108.以下程序段运行后,循环体中的n+=3;语句运行的次数为(Aint ij,n=0;for(i=l;i=3;i+)for(j=l;j=i;j+)n+=3;printf(M%dnM,n);A.6次 B.9次C.12次 D.1次1. i=l (j=D2. i=2(j=l j=2)3. i=3(j=l j=2 j

24、=3)109 . dowhile循环与while循环的主要区别是(DA. while循环体至少无条件执行一次,而do-while循环体可能都不执行B. do-while循环体中可使用continue语句,while循环体中不允许出现continue语句C. dowhile循环体中可使用break语句,while循环体中不允许出现break语句D. dowhile循环体至少无条件执行一次,而while循环体可能都不执行110 .以下程序段运行后,循环体运行的次数为(A )eint i=8,a=0;for (;i8;i+) a+= i;A.0次 B.1次 C.8次 D.无限111 .以下程序段运行

25、后变量a的值为(C )oint i=l,a=0;for(;i3;i+) continue; a+=i;A.6B.3C.0D.5112 .有以下程序:void main() int i;for(i=l; i=3; i+) switch(i) case 1: printf(M%dH, i); break;case 2: printf(H%dH, i);default :printf(H%dH,i);执行后输出结果是(A ).A.1223 B.1C.111223 D.1231. i=l输出12. i=2输出223. i=3输出3113.以下程序的运行结果是(C ).void main()int s

26、=0, i =0;while(i8)i+;if(i%2=0) continue;s+=i; s=l+3+5+7printf(M%dnu,s);B.36B.7C.16D.12113 .以下程序的运行结果是(B )o114 .void main()int s =0, i =0;while(i=l;i-)for(j=i;j=3y +) k += i * j ;printf(H%dnH,k);A.19B.29C.6D.251. i=3(j=3k=3*3=9)2. i=2(j=2k=9+2*2=13j=3k=13+2*3=19)3. i=l0=1k=19+l*l=20j=2k=20+1*2=22j=3

27、k=22+l*3=25)117.以下程序运行时,循环体的执行次数是(C ).void main()int ij;for(i=OJ=l;i=j+l ;i=i+2j-) printf(H%3dM,i);A.3B.2C.1D.01. 0=2 i=2 j=02. 2=10、裁僦118.设已定义chars=NameAddress023n;,则字符串所占的字节数是(B )。A.19B.16C.18D.14119 .数组元素下标的数据类型为(A )。A. 整型常量、字符型常量或整型表达式B. 字符串常量C. 实型常量或实型表达式D.任何类型的表达式120 .( B )是正确的数组定义。A. int n=10

28、,xn;B. int x10;C. int N=10;int xN;D. int n;scanf(n%dM,&n);int xn;121 .若已定义int arr10;则不能正确引用arr数组元素的是(DA.arrOB.arrlC.arr10-lD. arr7+3122 .若已定义intx4=2,13);则元素xl的值为(CA.0B.2C.1D.3123 .以下程序段运行后,的值为(B )oint x5=5);for(i=0;i6;i+)printf(H%d n,mi);4 2 2 4 11111 1 1 18 8 8 89 9 9 9 o o o o 1 1 1 17 7 5 5 A.B.CD.127.下面程序段的运行结果是(A ).int m=5,8,7,6,9,2,i=l;for(i=0;i6;i+)if(i %2!=0)mi+=10;for(i=0;i=0;i)ai=ai*j;j=j*3;for(i=0;i4;i+) printf(%d ,ai);A. 36912B. 181294C. 271894D. 541894130 .下面关于字符数组的叙述中,错误的是(A ).A.可以通过赋值运算符“=”对字符数组整体赋值B.不可以用关系运算符对字符数组中的字符串进行比较C.字符数组中的字符串可以整体输入、输出D.字符数组可以存放字符串131 .以下程序段的运行结

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁