经典计算机C语言习题集.docx
- 文档编号:6700136
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:157
- 大小:159.92KB
经典计算机C语言习题集.docx
《经典计算机C语言习题集.docx》由会员分享,可在线阅读,更多相关《经典计算机C语言习题集.docx(157页珍藏版)》请在冰豆网上搜索。
经典计算机C语言习题集
第一部分:
选择题(每题2分,20题/套,共40分)1
一、概述1
二、语法基础2
三、控制结构9
四、数组15
五、函数22
六、指针29
七、结构体和共用体35
八、链表40
九、枚举、自定义类型和位运算47
十、文件49
第二部分:
改错题(每题10分,2题/套,共20分)51
第1套51
第2套51
第3套51
第4套51
第5套51
第6套51
第7套51
第8套51
第9套51
第10套51
第11套51
第12套51
第三部分:
填空题(每题10分,每套抽2题,共20分)51
第1套51
第2套51
第3套51
第4套51
第5套51
第6套51
第7套51
第8套51
第9套51
第10套51
第11套51
第12套51
第四部分:
编程题(每题10分,2题/套,共20分)51
第1套51
第2套51
第3套51
第4套51
第5套51
第6套51
第7套51
第8套51
第9套51
第10套51
第11套51
第12套51
第五部分:
参考答案51
一、选择51
二、改错51
三、填空51
四、编程51
第一部分:
选择题(每题2分,20题/套,共40分)
一、概述
1.在C语言中,合法的字符常量是(D)。
“A”‘A’
A.'字'B."A"C."ABC"D.'\x41'‘\n’
2.下面叙述正确的是(B)。
A.程序中必须包含有输入语句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.<>B.()C.{}D.[]
7.(A)是不正确的叙述。
A.注释说明只能位于一条语句的后面B.C源程序的基本组成单元是函数
C.C源程序可由一个或多个函数组成D.每条语句最后必须有一个分号
8.一个C语言源程序是由(B)。
A.一个主程序和若干子程序组成B.函数组成
C.若干过程组成D.若干子程序组成
9.结构化程序设计的三种基本结构是(C)。
A.函数结构、判断结构、选择结构B.平行结构、嵌套结构、函数结构
C.顺序结构、选择结构、循环结构D.判断结构、嵌套结构、循环结构
10.C源程序的调试是指对源程序进行(C)。
A.录入与编辑B.查错与编译C.查错与排错D.连接与运行
11.C语言中,可将一系列语句置于(C)从而构成复合语句。
A.一对尖括号"<>"之间B.一对圆括号"()"之间
C.一对花括号"{}"之间D.一对方框号"[]"之间
12.构成C源程序的基本单位是(D)。
A.语句B.变量C.运算符D.函数
13.以下叙述中正确的是(A)。
A.C源程序中注释部分可以出现在程序中任意合适的地方
B.一对花括号"{}"只能作为函数体的定界符
C.C源程序编译时注释部分的错误将被发现
D.构成C源程序的基本单位是函数,所有函数名都可以由用户命名
二、语法基础
14.C语言的下列运算符中,优先级最高的运算符是(A)。
A.++B.+=C.||D.!
=
15.(D)为正确的用户标识符。
A.structB.5fC._f0.6D._for
16.C语言基本数据类型包括(B)。
A.整型、实型、逻辑型B.整型、实型、字符型
C.整型、字符型、逻辑型D.整型、实型、字符串型
17.(A)为合法的常量。
xx.xxE-+xx
A.52686LB.E-7C.1.2E-2.1D.'E12'
18.(C)为正确的变量名。
A.-k15B.intC.k_5D.k.jeep
19.(D)为正确的字符常量。
A.''\\''B."\24m"C."c"D.'M'
20.(C)为非法的字符串常量。
A.""B."s"C.'efg'D."26'62"
21.C语言整型数据在内存中的代码是用(C)表示的。
A.原码B.反码C.补码D.BCD码
22.以下选项中,合法的实型常数是(B)。
A.E-3B..2E1C.1E.5D.1.5E
23.下列C语言合法的数据类型关键字是(B)。
A.DoubleB.unsignedC.IntegerD.Char
24.TurboC中,int型数据占用的字节数(B)。
A.由用户自己定义
B.为2个字节
C.是任意的
D.等于所用计算机的字长
25.TurboC中,基本数据类型存储空间长度的排列顺序是(A)。
A.char B.char=int C.char D.char=int=longint 26.以下叙述中正确的是(A)。 A.字符常量用一对单撇号''作为单个字符的定界符 B.字符常量和字符串常量一样,都是用双引号括起来 C.字符常量存储时,自动在字符后加一个字符结束符号'\0' D.字符常量和字符串常量所分配的内存空间大小是一样的 27.已知'A'的ASCII码的十进制值为65,'0'的ASCII码的十进制值为48,则以下程序运行结果是(A)。 main() {charch1,ch2; ch1='A'+'5'-'3';ch1=’A’+2=67 ch2='A'+'6'-'3';ch2=68 printf("%d,%c\n",ch1,ch2); } A.67,DB.C,DC.C,68D.67,68 28.若有定义intm=6;则正确的赋值表达式是(C)。 A.m*7B.m*5=8C.m-=m*6D.double(-m) 29.语句k=(m=5,n=++m);运行之后,变量k、m、n的值依次为(D)。 A.5,5,6B.5,6,5C.6,6,5D.6,6,6 //逗号运算符的值是最后一个表达式的值 30.语句x=5%4+(4/5);运行之后,整型变量x的值为(A)。 A.1B.2C.3D.0 31.(B)语句符合C语言语法。 A.floatz=28,intx,y=18; B.intx=25,y=25,z=25; C.intx=25: y=25: z=25; D.intx+y=z; 32.若有定义inta,x;则语句a=(x=8,x+8);运行后,变量a、x的值依次为(A)。 A.16,8B.8,8C.16,16D.8,16 33.若变量m,n,t已定义且赋予初值,则正确的表达式是(B)。 A.m=m+1=t-nB.m=6+n+t,m++C.m=m\2D.m=int(5.6%4) 34.若有定义: inta,b;floatx,则以下不符合C语言语法的表达式是(A)。 A.x%7B.x/=a-bC.a=b=2D.x=(float)a/b 35.若有定义: intm=4,n=5;floatk;,则以下符合C语言语法的表达式是(B)。 A.(m+n)*=kB.m=(n==5)C.k=float(n)/mD.n%2.5 36.若有定义: inta=6;则语句a*=a-=a/=3;运行后,a的值是(B)。 A.10B.0C.34D.24 a/=3a已经变成了2,不是6a-=2a变成0a*=00 37.下面关于C语言变量的叙述中,错误的是(A)。 A.可以用define关键字定义变量 B.变量名用大小写字母是有区别的 C.C语言允许不同基本类型的变量之间进行混合运算 D.C语言中要求对变量作强制定义的主要理由是: 便于确定类型和分配空间 38.若有定义: inta=5,b=2;则表达式b=(a! =5)的值为(B)。 A.5B.0C.3D.2 39.逗号表达式(a=15,a*4),a+15的值为(B)。 A.15B.30C.75D.60 a*4的值是60,但是因为没有赋值号,a=15 40.下列语句中,符合C语言语法的赋值语句是(C)。 A.a=7+b+c=a+7;B.a=7+b++=a+7; C.a=7+b,b++,a+7;D.a=7=b,c=a+7; 41.(A)是正确的叙述。 A.(int)5.0/6与5/6等价B.'G'与"G"等价 C.5/6与5.0/6.0等价D.++3与4等价 42.下面叙述中,错误的是(D)。 A.C语言中的表达式求值,是按其运算符的优先级先高后低的次序进行 B.自增与自减运算符的结合方向为“自右至左” C.关系运算符的优先级低于算术运算符 D.C语言算术运算符不包含模运算符“%” 43.(C)是正确的叙述。 A.表达式"m"+"M"是合法的 B.若变量x,y为整型,则(a+b)++是合法的 C.强制类型转换运算的优先级高于算术运算 D.表达式'm'*'n'是不合法的 44.若有定义inti=1,j=9;则表达式(++j)*(i--)的值为(B)。 A.0B.10C.9D.8 45.设整型变量x为7,使整型变量y不为2的表达式是(A)。 A.y=x%3B.y=x/3 C.y=(++x)/3D.y=8-(--x) 46.若已定义inta=3,b=2,c=1;则语句++a||++b&&++c;运行后b的值为(D)。 A.0B.3C.1D.2 ++a是4,||有1出1,因为++a非0,出现不完全运算,++b&&++c没有运算,因此b、c的值不变。 47.若有定义: inti=5,j=4;则语句i/=++j;运行后i的值为(B)。 A.10B.1C.1.25D.0 48.若已定义: inta=2,b=2;则表达式(a+(b++),b)的值是(B)。 A.2B.3C.4D.6 49.若有定义: intr,x=245;则语句r=x/100%9;运行后r的值为(A)。 A.2B.5C.0D.27 50.若已定义: inti=6,t;则语句t=3+(--i);运行后t的值为(C)。 A.9B.7C.8D.5 51.C语言的%运算符按运算对象的个数属(C)。 A.单目运算符B.四目运算符C.双目运算符D.三目运算符 52.若已定义: inta=5,b=9,c=6;则语句b++;++c;a=b-c;运行后a的值为(B)。 A.5B.3C.2D.4 53.以下程序运行时,若从键盘输入5,则输出结果是(D)。 main() {inta; scanf("%d",&a); if(a++>5)printf("%d\n",a); elseprintf("%d\n",a--); } A.7B.4C.5D.6 54.若已定义floatx;要从键盘输入数据36.582给变量x,则应选用(B)语句。 A.scanf("%2.3f",&x);B.scanf("%6f",&x); C.scanf("%6.3f",&x);D.scanf("%5.3f",&x); 55.若已定义doubley;拟从键盘输入一个值赋给变量y,则正确的函数调用是(C)。 A.scanf("%d",&y);B.scanf("%7.2f",&y); C.scanf("%lf",&y);D.scanf("%ld",&y); 56.已有定义chars;使用scanf()函数输入一个字符给变量s,不正确的函数调用是(D)。 A.scanf("%c",&s);B.scanf("%d",&s); C.scanf("%u",&s);D.scanf("%lf",&s); 57.函数putchar()的功能是向终端输出(A)。 A.一个字符B.多个字符 C.一个关系表达式D.一个实型变量值 58.若已定义inta=11;执行以下语句后的输出结果是(B)。 printf("a=%d,a=%o,a=%x\n",a,a,a); A.a=11,a=11,a=bB.a=11,a=13,a=b C.a=11,a=13,a=cD.a=11,a=12,a=13 59.若有定义intm=4321,n=123,k=21;语句printf("%4d+%3d+%2d",m,n,k);执行后的输出结果是(C)。 A.4321432143211231231232121B.432112321 C.4321+123+21D.432+123+021 60.已有如下定义和输入语句, charc1,c2;intx; scanf("%c%d%c",&c1,&x,&c2); 若要求x、c1、c2的值分别为9、'K'和'H',正确的数据输入是(A)。 A.K9HB.K9HC.K9HD.9KH 61.以下程序段的运行结果是(A)。 inta=1; printf("%d,%d,%d\n",a,++a,a++); A.3,3,1B.1,2,2C.1,2,3D.3,2,1 62.以下程序的运行结果是(D)。 voidmain() {inta=65; charc='A'; printf("%d+%c=%d\n",a,c,a+c); } A.A+A=AAB.65+A=65AC.65+65=130D.65+A=130 63.若已定义: intx=7;floaty=7.0;以下语句中能输出正确值的是(B)。 A.printf("%d%d",x,y);B.printf("%d%.3f",x,y); C.printf("%.3f%.3f",x,y);D.printf("%.3f%d",x,y); 64.putchar函数可以向终端输出一个(A)。 A.字符或字符型变量值B.整型变量表达式值 C.实型变量值D.字符串 65.若已定义: inta=6;floatb=1.5;要求输出形式为: 6*1.50=9.00,应选用的正确输出语句是(B)。 A.printf("%d*%f=%f",a,b,a*b);B.printf("%d*%.2f=%.2f",a,b,a*b); C.printf("%d*%d=%.2f",a,b,a*b);D.printf("%.2f*%.2f=%.2f",a,b,a*b); 66.有以下程序: main() {intc; while((c=getchar())! ='\n')247c: ‘2’66 {switch(c-'2')c: ‘4’8 {case0: c: ‘7’9 case1: putchar(c+4); case2: putchar(c+4);break; case3: putchar(c+3); default: putchar(c+2);break; } } printf("\n"); } 当输入: 247<回车>,程序的输出结果是(B)。 A.689B.6689C.66778D.66887 67.若已定义intx=5,y=9,z;语句z=x>=y;运行后z的值为(C)。 A.1B..t.C.0D..f. 68.判定逻辑值为“真”的最准确叙述是(D)。 A.1B.大于0的数C.非0的整数D.非0的数 69.若已定义intx=-16,y=-12,z;语句z=x<=y;运行后z的值为(B)。 A..t.B.1C..f.D.0 70.能正确表示数学关系式100≤s<300的表达式为(C)。 A.(s>=100)&(s<300)B.100<=s<300 C.(s>=100)&&(s<300)D.(s>=100)and(s<300) 71.若定义inta=2,b=3;则表达式! a||b的值为(B)。 A.0B.1C.2D.3 72.若定义inta=-5,b=-8,c=-12;则表达式a>=b||b A.变量i的值B.变量j的值C.0D.1 73.下列表达式(C)不能用来判断整型变量x中的值是否为奇数。 A.x%2==1B.! (x%2==0)C.! (x%2)D.x%2 74.若有定义: inta=3,b=2,c=3;则值为0的表达式是(C)。 A.(a-b)==(c/b)B.a>=c C.c-b||a+b&&(b*c-a-c)D.(b*c-a-c)&&(b*c-a-b) 75.若已定义: intx=4,y=2,z=0;则表达式(x-y<=y)||(y=z)的值是(A)。 A.1B.0C.2D.4 76.若有定义: inta=3,b=2,c=1,k;则表达式k=a>b>c的值是(A)。 A.0B.1C.2D.3 77.以下运算符中优先级最高的是(D)。 A.<=B.&&C.||D.! 78.执行以下语句后,b的值是(A)。 inta=5,b=6,c=1,x=2,y=3,z=4; (a=c>x)||(b=y>z); A.0B.1C.-1D.6 79.以下程序运行后,a的值是(C)。 main() {inta,b; for(a=1,b=1;a<=100;a++)a=1,b=1 {1.a=1,b=1b+3=4 if(b>=20)break;2.a=2,b=4b+3=7 if(b%3==1){b+=3;continue;}3.a=3,b=7b+3=10 b-=5;4.a=4,b=10b+3=13 }5.a=5b=13b=16 }6.a=6b=16b=19 7.a=7b=19b=22 8.a=8b=22break A.101B.100C.8D.7 80.已定义doublek=3.6;则正确的赋值表达式是(D)。 A.k=double(-3.6)B.k%3 C.k=k*(-1.0)=-3.6D.k+=k-=(k=1.2)*(k=3) 81.已定义charc='A';则正确的赋值表达式是(B)。 A.c=\028B.c=(c++)%4C.c+1=66D.c+=127-- 82.已定义intm='A';则正确的表达式是(C)。 A.2*m=m++B.m=int(-3.2)C.m%3D.m=m-m=m-5 83.设已定义floata=2.0,b=3.0;使a值为5.0的表达式是(A)。 A.a+=bB.a*=b+2.0C.a/=b+2.0D.a-=b+2.0 84.若已定义intm=7;floatk=5.5;则表达式k+m%2/4的值为(D)。 A.6.375B.6.75C.5.75D.5.5 85.若已定义inta=3,b=3,x=1,y=2;表达式(a=y>x)&&(x=b>a)的值是(B)。 A.6B.1C.9D.0 a=y>xa=1x=b>a 86.若有定义: inta=2,b=3;floatx=5;则表达式x*b/a的值是(B)。 A.7.5B.7C.6D.5 87.若有定义: intx=8;floaty=130;charz='A';则表达式x+z%(int)y的值是(C)。 [已知'A'的ASCII码的十进制值为65] A.运行时产生错误信息B.8C.73D.8.5 88.若已定义: intm=7,n=4;floatx=3.0,y=8.0,k;则执行语句k=m/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 经典 计算机 语言 习题集
![提示](https://static.bdocx.com/images/bang_tan.gif)