C语言常见复习题及参考答案一、选择题1.下述标识符中,()是合法的用户标识符。
A.A#CB.getchC.voidD.ab*2.在C语言中,字符型数据在内存中是以()形式存放的。
A.原码B.BCD码C.反码D.ASCII码3.以下选项中不合法的用户标识符是()。
A.abc.cB.fileC.MainD.PRONTF4.以下选项中不合法的用户标识符是()。
A.123B.printfC.Anbsp;D.Dim5.可以在C语言程序中用做用户标识符的一组标识符是()。
A.voidB.as-b3C.forD.2cdefine -123 -abc DoWORD If cas SIG6.在以下各组标识符中,合法的用户标识符是(1)、(2)、(3)。
(1)A.001 B.table_1 C.0_t D.k%Int t*.1 W10 point(2)A.Fast_ B.void C.pbl D.Fast+Big abs fabs beep(3)A.xy_ B.longdouble C.*p D.CHAR变量1 signed history Float7.()是构成C语言的基本单位。
A.函数B.过程C.子程序D.子例程8.若有说明:char s1='\067';char s2="1";char s3='1';则s1中(1),s2中(2),s3中(3)。
(1).A.包含3个字符 B.包含2个字符C.包含1个字符D.无定值,说明不合法(2).A.包含1个字符 B.包含2个字符C.包含3个字符D.无定值,说明不合法(3).A.包含1个字符 B.包含2个字符C.包含3个字符D.无定值,说明不合法9.若x为int型变量,则执行以下语句后,x的值为x=6;x+=x-=x*xA.36B.-60C.60D.-2410.在C语言中,char 型数据在内存中是以()形式存储的。
A.原码B.补码C.ASCII码D.反码11.以下运算符中优先级最低的算符为(),优先级最高的为()。
A.&&B.&C.|=D.||E.?:F.!=12.若有运算符>、*=、<<、%、sizeof,则它们按优先级(由低至高)的正确排列顺序为A.*= << > % sizeofB.<< *= > % sizeofC.*= > << sizeof %D.*= > << % sizeof13.若有以下类型说明语句char w; int x; float y; double z;则表达式w*x+z-y 的结果是()类型。
A.floatB.charC.intD.double14.若w,x,y,z 均为int 型变量,则执行下面的语句后,w=(1), x=(2), y=(3), z=(4)。
w=5; x=4;y=w++*w++*w++;z=--x*=--x*--x;(1)A.8 B.7 C.6 D.24A.4B.3C.2D.1A.150B.125C.210D.336A.64B.1C.6D.2415.C语言的程序一行写不下时,可以A.用逗号换行B.用分号换行C.在任意一空格处换行D.用回车符换行16.下述标识符中,()是合法的用户标识符。
A.A#CB.getchC.voidD.ab*17.在C语言中,字符型数据在内存中是以()形式存放。
A.原码B.BCDC.反码D.AS18.()是非法的C语言转义字符。
A.'\b'B.'\0xf'C.'\037'D.'\''19.语句char s='\092';的作用是A.s包含1个字符B.说明不合法, s的值不定。
C.使s包含4个字符D.使s包含3个字符20.在C语言中,int,char,和short三种类型数据所占用的内存A.均为2个字节B.由用户自己定义C.由所用机器的机器字长决定D.是任意的21.高性能int类型的数据长度为2个字节,则unsigned int 类型数据的取值范围是A.0~255B.0~65535C.-32768~32767D.-256~25522.以下()是不正确的转义字符。
A.'\\'B.'\'C.'081'D.'\0'23.一个C语言的程序是由()组成A.主程序B.子程序C.函数D.过程24.一个C语言的程序总是从()开始的。
A.主过程B.主函数C.子程序D.主程序25.一个C语言的程序是由A.一个主程序和若干个子程序组成B.函数组成C.若干过程组成D.若干子程序组成26.以下述叙不正确的是A.一个C源程序可以由一个或多个函数组成B.一个C源程序必须包含一个main函数C.C程序的基本组成单位是函数D.在C程序中注释说明只能位于一条语句的后面27.C语言中规定:在一个源程序中main函数的位置A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后28.一个C程序的执行是从A.本程序的main函数开始,到main函数结束B.本程序文件的第一个函数开始,到本程序的最后一个函数结束C.本程序的main函数开始,到本程序的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束29.以下述叙正确的是A.在C程序中,main函数必须位于程序的最前面B.C程序的每行中只能写一条语句C.C语言本身没有输入输出语句D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误二、填空题1.将下列给出的常量分别归类到:整型常量、浮点常量和字符型常量(1)0x7a (2)078 (3)6a (4)57L(5)'m' (6)"ab6" (7)-32 (8)3.4,256(9)0e0 (10).e0 (11)-3.1e-5 (12)2e0(13)0.012e003 (14)'\"' (15)'xy' (16)" "(17)"\nab\t" (18)'\"' (19)'\07'2.指出下列标识符中哪些是非法的(1)a_Char (2)b22c (3)286pc (4)-am(5)_7b (6)ab# (7)Max_1 (8)__Star(9)*itm (10)To-2 (11)for (12)"tt"3.C源程序的基本单位是____。
4.一个C源程序中至少应包含一个_____。
5.在一个C源程序中,注释部分二侧的分界符分别为___和___。
6.在C语言中,输入操作是由库函数____完成的,输出操作是由库函数____完成的。
反馈测试题参考答案:一、选择题1、 B 2.D 3.A 4.C 5.A6. (1)A,(2)C (3)D7. C8. (10C (2)D (3)A9. B 10.C 11.C, F 12. D13. D 14. (1)A,(2)D, (3)B,(4) B15. C 16. B 17.D 18. B19. B 20. C 21. B 22.C23. C 24. B 25.B 26. D27. C 28. A 29. C二、填空题1、整型常量有(1) (4)浮点型常量有:(9) (12) (13) (14)字符型常量有:(5) (6) (16) (17) (18) (19) (20)2、非法标识符有:3) (4) (6) (9) (10) (12)3、函数4、主函数5、(1)/* (2)*/6、(1)scanf (2)printf第二部分C语言基本语法知识一、选择题(1)以下叙述中错误的是A)用户所定义的标识符允许使用关键字B)用户所定义的标识符应尽量做到“见名知意”C)用户所定义的标识符必须以字母或下划线开头D)用户定义的标识符中,大、小写字母代表不同标识(2)以下叙述中错误的是A)C语句必须以分号结束B)复合语句在语法上被看作一条语句C)空语句出现在任何位置都不会影响程序运行D)赋值表达式末尾加分号就构成赋值语句(3)以下不能正确计算代数式值的C语言表达式是A)1/3*sin(1/2)*sin(1/2)B)sin(0.5)*sin(0.5)/3C)pow(sin(0.5),2)/3D)1/3.0*pow(sin(1.0/2),2)(4)以下能正确定义且赋初值的语句是A)int n1=n2=10;B)char c=32;C)float f=f+1.1;D)double x=12.3E2.5;(5)设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是A)k=k>=k B)-k++ C)k%int(f) D)k>=f>=m(6)有以下程序段int k=0,a=1,b=2,c=3;k=ac ? c:k;执行该程序段后,k的值是A)3 B)2 C)1 D)0(7)以下选项中可作为C语言合法常量的是A)-80.B)-080C)-8e1.0D)-80.0e(8).以下不能定义为用户标识符的是A)MainB)_0C)_intD)sizeof(9)以下选项中,不能作为合法常量的是A)1.234e04B)1.234e0.4C)1.234e+4D)1.234e0(10)有以下程序main(){ int m=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);}程序运行后的输出结果是A)12353514B)12353513C)12343514D)12343513(11)若整型变量a、b、c、d中的值依次为:1、4、3、2。
则条件表达式a A)1B)2 C)3 D)4(12)下列选项中,不能用作标识符的是A) _1234_B) _1_2C) int_2_D) 2_int_(13)有以下程序main(){ int m=3,n=4,x;x=-m++;x=x+8/++n;printf("%d\n",x);}程序运行后的输出结果是A) 3 B) 5 C) -1 D) -2(14)以下符合C语言语法的实型常量是A) 1.2E0.5B) 3.14.159EC) .5E-3D) E15(15) 以下4组用户定义标识符中,全部合法的一组是A) _main B) If C) txt D) intenclude -max REAL k_2sin turbo 3COM _001(16) 若以下选项中的变量已正确定义,则正确的赋值语句是A) x1=26.8%3B) 1+2=x2C) x3=0x12D) x4=1+2=3;(17) 设有以下定义int a=0;double b=1.25;char c=’A’;#define d 2则下面语句中错误的是A) a++; B) b++ C) c++; D) d++;(18)设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式计算结果不相符的是A) (a+B) *h/2B) (1/2)*(a+B) *hC) (a+B) *h*1/2D) h/2*(a+B)(19) 以下叙述中正确的是A) C程序中注释部分可以出现在程序中任意合适的地方B) 花括号“{”和“}”只能作为函数体的定界符C) 构成C程序的基本单位是函数,所有函数名都可以由用户命名D) 分号是C语句之间的分隔符,不是语句的一部分(20) 以下选项中可作为C语言合法整数的是A) 10110B B) 0386 C) 0Xffa D) x2a2(21) 以下不能定义为用户标识符的是A) scanf B) V oid C) _3com_ D) int(22) 设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是A) x=x*100+0.5/100.0;B) x=(x*100+0.5)/100.0;C) x=(int)(x*100+0.5)/100.0;D) x=(x/100+0.5)*100.0;(23)下列关于C语言用户标识符的叙述中正确的是A) 用户标识符中可以出现在下划线和中划线(减号)B) 用户标识符中不可以出现中划线,但可以出现下划线C) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头D) 用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头(24)下列关于单目运算符++、--的叙述中正确的是A) 它们的运算对象可以是任何变量和常量B) 它们的运算对象可以是char型变量和int型变量,但不能是float型变量C) 它们的运算对象可以是int型变量,但不能是double型变量和float型变量D) 它们的运算对象可以是char型变量、int型变量和float型变量(25) 以下选项中合法的实型常数是A) 5E2.0 B) E-3 C) .2E0 D) 1.3E(26) 以下选项中合法的用户标识符是A) long B) _2Test C) 3Dmax D) A.dat(27) 以下非法的赋值语句是A) n=(i=2,++i); B)j++; C) ++(i+1); D)x=j>0;(28) 设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是A)6.500000B)6C) 5.500000D) 6.000000(29) 与数学式子对应的C语言表达式是A) 3*x^n(2*x-1)B) 3*x**n(2*x-1)C) 3*pow(x,n)*(1/(2*x-1))D) 3*pow(n,x)/(2*x-1)(30) 若有以下程序:main(){ int k=2,i=2,m;m=(k+=i*=k);printf(“%d,%d\n”,m,i);}执行后的输出结果是A) 8,6B) 8,3C) 6,4D) 7,4(31) 以下选项中,与k=n++完全等价的表达式是A) k=n,n=n+1B) n=n+1,k=nC) k=++nD) k+=n+1(32) 若有定义:int a=8,b=5,C;,执行语句C=a/b+0.4;后,c的值为A) 1.4 B) 1 C) 2.0 D) 2(33) 以下选项中不属于C语言的类型的是A) signed short imtB) unsigned long intC) unsigned intD) long short(34) 以下叙述正确的是A) 可以把define和if定义为用户标识符B) 可以把define定义为用户标识符,但不能把if定义为用户标识符C) 可以把if定义为用户标识符,但不能把define定义为用户标识符D) define和if都不能定义为用户标识符(35) 在C语言中,合法的长整型常数是A) OLB) 4962710C) 324562&D) 216D(36) 以下有4组用户标识符,其中合法的一组是A) For B) 4d C) f2_G3 D) WORD-sub DO IF voidCase Size abc define(37) 假定x和y为double型,则表达式x=2,y=x+3/2的值是A) 3.500000B) 3C) 2.000000D) 3.000000(38) 以下合法的赋值语句是A) x=y=100B) d--;C) x+y;D) c=int(a+b);(39) 设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是pprintf(”%d,%d\n”,x--,--y);A) 10,3B) 9.3C) 9.2D)10.2(40) 以下程序的输出结果是main(){ int a=3;printf(“%d\n”,(a+a-=a*a) );}A) –6B)12C) 0D) -12(41) 以下所列的C语言常量中,错误的是A) 0xFFB) 1.2e0.5C) 2LD) ‘\72’(42) 下列选项中,合法的C语言关键字是A) V ARB) cherC) integerD) default(43) 以下变量x.、y、z均为double类型且已正确赋值,不能正确表示数学式子的C语言表达式是A) x/y*zB) x*(1/(y*z))C) x/y*1/zD) x/y/z(44) 若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是A) -3B) 9C) -12D) 6(45) 若变量已正确定义并赋值,下面符合C语言语法的表达式是A) a:=b+1B) a=b=c+2C) int 18.5%3D) a=a+7=c+b(46) C语言中运算对象必须是整型的运算符是A) %=B) /C) =D) 〈=(47) 若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是A) 1 B) 2 C) 2.0 D) 2.5(48) 若变量a、iI已正确定义,且i已正确赋值,合法的语句是A) a==1 B) ++i; C) a=a++=5; D) a=int(i);(49) 若有以下程序段,int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是A) 0 B) 0.5 C) 1 D) 2(50) 设有int x=11; 则表达式(x++ * 1/3) 的值是A) 3 B) 4 C) 11 D) 12(51) 下列程序的输出结果是A) 3 B) 3.2 C) 0 D) 3.07main(){ double d=3.2; int x,y;x=1.2; y=(x+3.8)/5.0;printf("%d \n", d*y);}(52) 下列变量定义中合法的是A) short _a=1-.le-1;B) double b=1+5e2.5;C) long do=0xfdaL;D) float 2_and=1-e-3;(53) 以下选项中属于C语言的数据类型是A) 复数型B) 逻辑型C) 双精度型D) 集合型(54) 在C语言中,不正确的int类型的常数是A) 32768B) 0C) 037D) 0xAF(55) 设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为A) 4 B) 16 C) 32 D) 52(56) 设有如下的变量定义:int i=8, k, a, b;unsigned long w=5;double x=1, 42, y=5.2;则以下符合C语言语法的表达式是A) a+=a-=(b=4)*(a=3)B) x%(-3);C) a=a*3=2D) y=float(i)(57) 假定有以下变量定义:int k=7,x=12;则能使值为3的表达式是A) x%=(k%=5) B) x%=(k-k%5) C) x%=k-k%5 D) (x%=k)-(k%=5)(58) 设x和y均为int型变量,则以下语句:x+=y,y=x-y;x-=y;的功能是A) 把x和y按从大到小排列B) 把x和y按从小到大排列C) 无确定结果D) 交换x和y中的值(59) 以下程序的输出结果是A) 10 10 B) 12 12 C) 11 10 D) 1113main(){ int a=12,b=12;printf("%d,%d\n",- -a,+ +b);}(60) 在C语言提供的合法的关键字是A) swicth B) cher C) Case D) default(61) 若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是A)1 B)2 C)2.0 D)2.5(62) C语言提供的合法的数据类型关键字是A) Double B) short C) integer D) Char(63) 在C语言中,合法的长整型常数是A) 0LB) 4962710C) 0.054838743D) 2.1869e10(64) 若有说明和语句:int a=5;a++;此处表达式a++的值是A) 7 B) 6 C) 5 D) 4(65) C语言中最简单的数据类型包括A) 整型、实型、逻辑型B) 整型、实型、字符型C) 整型、字符型、逻辑型D) 整型、实型、逻辑型、字符型(66) C语言中,运乍对象必须是整型数的运算符是A) % B) \ C) %和\ D) * *(67) 设有如下定义: int x=10,y=3,z; 则语句printf("%d\n",z=(x%y,x/y)); 的输出结果是A) 1 B) 0 C) 4 D) 3(68) 以下程序的输出结果是main(){ int x=10,y=10;printf("%d %d\n",x--,--y); }A) 10 10B) 9 9C) 9 10D) 10 9(69) 下列语句中符合C语言语法的赋值语句是A) a=7+b+c=a+7;B) a=7+b++=a+7;C) a=7+b,b++,a+7D) a=7+b,c=a+7;(70) 在C语言中,要求运算数必须是整型的运算符是A) % B) / C) < D) !(71) 请选出可用作C语言用户标识符的一组标识符A) void B) a3_b3 C) For D) 2adefine _123 -abc DOWORD IF Case sizeof(72) 设int a=12,则执行完语句a+=a-=a*a后,a的值是A) 552 B) 264 C) 144 D) -264(73) C语言程序的基本单位是A) 程序行B) 语句C) 函数D) 字符(74) 请选出合法的C语言赋值语句A) a=b=58B) i++;C) a=58,b=58D) k=int(a+b);(75)在C语言中,如果下面的变量都是int类型,则输出的结果是。