C语言基础知识习题

第一章C语言基础知识 一、选择题

1.计算机能直接执行的程序是( )

A.源程序 B.目标程序 C.汇编程序 D.可执行程序

2.用户自定义标识符正确的是( )

A.3ab B.int C.fa2_a D.sin(x) 3.可用于C语言用户标识符的是( )

A.void,define B.2c,DO C.For,-abc D.as_b3,_123

4.下列为C语言保留字的是( )

A.real B.long C.pointer D.integer 5.下列不属于保留字的是( ) A. default B. printf C. struct D. 6.下列用户自定义标识符正确的是( )

A. 4a B. b_1 C. -& D. *p 7.以下正确的C语言自定义标识符是( )

A._la B.2a_ C.do D8.合法的用户标识符是( )

A. default B. #define C. a+b D. book 9.自定义标识符正确的是( )

A.5d_m B.const C.x4y D.book-1 10.以下属于C语言保留字的是( )

A.fopen B.include C.get D11.以下选项中,能用作用户标识符的是( )

A.void B.8_8 D.unsigned

12.可以作为自定义标识符的是( )

A.2 B.break C.m-n D13.以下选项中合法的标识符是( )

A. 1_1 B.1―1 C._11 D.1_ _14.以下C语言用户标识符中,不合法的是( )

A._1 B.AaBc C.a_b D.a--b 15.可以用作C程序标识符的一组是( )

A.print B.i\\am C.Pxq D.Cpp oodb one-half line# pow aBc 3pai His.age while 16.下列不属于C语言保留字的是( )

A. char B. while C. for D. look 17.C语言的保留字是( )

A. define B. scanf C. do D. include 18.错误的实型常数是( )

A. .0 B. 0.E0 C. 0.0 D.0E+0.0 19以下选项中不能作为C语言合法常量的是( )

unsigned .a.12 .unsigned C._0_ .m_n A.‘cd' B.0.1e+6 C.\‘\\011' 20.正确的C语言字符常量是( )

A.‘\\\\’ B.‘65’ C.“A” D.‘/n’ 21.下列不能作为常量的是( )

A. 0582 B. 0xa5 C. ‘\\n’ D. 2.5e-2 22.不属于字符型常量的是( )

A. ″s″ B. ‘8’ C. ‘A’ D. ‘\\n’ 23.在C语言中,错误的int类型的常数是( )

A.1E5 B.0 C.037 D.0xaf 24.在C语言中,错误的常数表示是( ) A.0L B.-0x6a C.′6′ D.1.234E3.5 25.以下选项中,能用作数据常量的是( )

A.o115 B.0118 C.1.5e1.5 D.115L 26.在C语言中,′a′和″a″存储所占用的字节数分别是( )

A.1,1 B.1,2 C.2,1 D.2,2 27.正确的变量定义是( )

A.long d=1000L; B.float m1=m2=10.0; C.char c1=‘A’,c2=A; D.double for=0.618; 28.表达式的值为0的是( )

A.5/5%5 B.5>2 C.!4 D.0x7&&7 29.主函数头中的“main”是( )

A.常量名 B.函数名 C.变量名 D.类型名 30.下列运算符中优先级最高的是( )

A.?: B.&& C. D.! 31.下列运算符的操作数必须是整型的是( )

A./ B.! C.% D.= 32.下列转义字符中,错误的是( )

A.′\\n′ B.′\\\\′ C.′\\108′ D.′\\xbb′

33.在C语言中,整型常量的书写形式不包括( )

A.二进制 B.八进制 C.十进制 D.十六进制

34.以下选项中正确的定义语句是( )

A.double a;b; B.double a=b=7; C.double a=7,b=7; D.double,a,b;

35.设有定义:int x=2;,以下表达式中,值不为6的是( ) A.x*=x+1 B.x++,2*x C.x*=(1+x) D.2*x,x+=2 36.以下关于C语言数据类型使用的叙述中错误的是( ) A.若要准确无误差的表示自然数,应使用整数类型 B.若要保存带有多位小数的数据,应使用双精度类型

C.若要处理如\人员信息\等含有不同类型的相关数据,应自定义结构体类型 D.若只处理\真\和\假\两种逻辑值,应使用逻辑类型

37.若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是( )

A.1 B.0 C.2 D.不知道a的值,

不能确定

38.若有定义语句:int x=10;,则表达式x-=x+x的值为( )

A.-20 B.-10 C.0 D.10 39.表达式0&&3||4和2&&1的值分别是( )

A.4和0 B.4和1 C.1和0 D.1和1 40. 设char c=’A’;int i=l, j;,执行j=!c&&i++;后,i和j的值分别是( ) A. 1和0 B. 1和1 C. 2和0 D. 2和l 41. 设int a;,执行表达式(a=1,2,3),a+1后,a和表达式的值分别是( ) A. 1和2 B. 2和3 C. 3和4 D. 4和5 42.设int a=0,b=1;,下列语句错误的是( )

A.a=b=10; B.a++; C.b+=a; D.(a+b)++; 43.能正确表达数学关系式0≤x<20的C语言表达式是( )

A.0<=x<20 B.x>=0||x<20 C.x>=0&&x<20 D.!(x<=0)&&x<20 44.设double x=5.168;,执行printf(“%5.3f\\n”,(int)(x*10+0.5)/10.0);后的输出结果是( )

A.5.218 B.5.210 C.5.200 D.5.168 45.设char ch=‘a’;,执行printf(“%d,%c\\n”,ch,ch+2);后的输出结果是( )

A.97,c B.97,99 C.a,c D.a,a+2 46.设int i=8,a,b;double x=1.42,y=5.2;,正确的表达式是( )

A.a+=(b=4)*(a=3) B.a=a*3=2 C.x%(-3)+y* *3 D.y=float(i)

47.表达式:(int)((double)9/2)-(9)%2的值是( )

A、0 B、3 C、4 D、5 48. 设char k=’a’;float j=2.0;,执行k+=5/j;printf(“%c”, k);后,输出结果是( )

A. a B. b C. c D. d 49.设char c=′A′;int i=1,j;,执行语句j=!c&&i++;后,i和j的值分别是( )

A.0和1 B.1和0 C.1和65 D.2和66 50.设int x=6;,执行语句x+=x-=x*x;后,x的值是( )

A.-60 B.0 C.6 D.36 51.设int i=3,j=3;,表达式i+++j的值是( )

A.6 B.7 C.8 D.9 52.设int a=2,b=6,c=8;,表达式(a,b),(c,10)的值是( )

A.2 B.6 C.8 D.10 53.下列表达式值为0的是( )

A.6%2 B.2&&5 C.!2||5 D.2||5 54. 设int a,b;,则表达式(b=2, a=5, b++, a+b)的值是( ) A. 2 B. 5 C. 7 D. 8 55.以下关于C语言的叙述中正确的是( )

A.C语言中的注释可以夹在变量名或关键字的中间 B.C语言中的变量必须在使用之前进行定义

C.在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致 D.C语言的数值常量中夹带空格不影响常量值的正确表示 56.设函数中有整型变量n,为保证在未赋初值的情况下初值为0,应选择的存储类别是

A.auto B.register C.static D.auto或register

57.执行以下程序段后,w的值为( ) int w='A',x=14,y=15; w=((x||y)&&(w<'a'));

A.-1 B.NULL C.1 D.0 58.若有表达式(w)?(--x):(++y),则其中与w等价的表达式是( ) A.w==1 B.w==0 C.w!=1 D.w!=0 59. 设int a=7; float x=2.5, y=4.7;, 则表达式x+3%(int)(x+y)/4的值是( )

A. 2.75 B. 3.5 C. 2.5 D. 0.0 60. 设char cl; , 则cl中为小写英文字母字符的正确表达式为( ) A. ‘a’<=c1=‘z’ B. (cl>=‘a’)&&(cl<=‘z’) C. (cl>=a)&&(c1<=z) D. (‘a’<=c1)||(‘z’>=c1) 61.设static int a;,执行表达式(a= =1)&&(a=-1)&&(a=2)后,a的值是( )

A.-1 B.0 C.1 D.2

62.若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是( )

A.a=a++,i++; B.i=(a+k)<=(i+k); C.i=a; D.i=!a; 63.main()

{ int k=011; printf(\程序运行后的输出结果是( ) A.12 B.11 C.10 D.9 64.以下叙述中正确的是( )

A.C程序的基本组成单位是语句 B.C程序中的每一行只能写一条语句

C.简单C语句必须以分号结束 D.C语句必须在一行内写完 65.以下不能正确表示代数式 的C语言表达式是( )

A.2*a*b/c/d B.a*b/c/d*2 C.a/c/d*b*2 D.2*a*b/c*d

66.C源程序中不能表示的数制是( )

A.二进制 B.八进制 C.十进制 D.十六进制 67.设int a,b;,与a+=b++;等价的是( )

A.a=b++; B.a=++b; C.a=a+b++; D.a=a+++b; 68.设int a=l,b=2,c=3;,执行表达式(a>b)&&(c=1)后c的值是( ) A.0 B.1 C.2 D.3 69. 已知字符‘A’的ASCII码值是65,且char cl=‘A’, c2=‘D’; 则执行语句printf(″%d,%d\\n″,cl,c2-2);后的输出结果是( ) A. A, D B. A, B C. 65, 68 D. 65, 66 70. 若有下列程序段:int x=l, y=2;x=x+y;y=x-y;x=x-y;则执行后x和y

的值分别为( )

A. 1和2 B. 2和2 C. 2和1 D. 1和1 71. 设int a=3,b=4;,则printf(“%d,%d,”(a,b),(b,a));的输出结果是( )

A. 3,4 B. 4,3 C. 3,4,4,3 D. 4,3,3,4 72.设int x=2,y=4;,值为非0的表达式是( )

A. 1/x*y B. 1/(x*y) C. 1.0/x/y D. 1/x/ (double)y

73.设int a=2,b=5;,结果为0的表达式是( )

A. a%b B. a&&b C. a=b D. a==b 74.设int a=0;错误的语句是( )

A. ++a; B. a++; C. a=-a; D. (-a)++; 75.设int a=1,b=2,c=3,d=4,f;,执行语句f=(a!=b)?c++:d++;后f的值是( ) A. 2 B. 3 C. 4 D. 5 76.下列运算符优先级最高的是( )

A. += B. , C. ! D. ?:

77.设int a=1,b=2;,则执行a=b+2,a++,a+b;后a和b的值分别是( ) A.1和2 B.3和2 C.4和7 D.5和2 78.设int a=2,b=3,c=4;,则表达式a>b&&b

79.设int a,x=2;执行语句a=x>0?3*x:(x=10);后,变量x的值是( ) A.1 B.2 C.6 D.10 80.设有以下程序段:

int x=2,y=2,z=0,a; a=++x||++y&&z++;

printf(″%d,%d,%d\\n″,x,y,z);执行后输出的结果是( )

A.2,2,0 B.3,3,1 C.3,2,0 D.3,2,1 81.逗号表达式a=2*6,a*3,a+5的值是( )

A.12 B.17 C.36 D.41 82.在C语言中,下列运算符中结合性属于自右向左的是( )

A.&& B.-- C.* D.( ) 83.设int x=10, a=0, b=25;,条件表达式x<1?a+10︰b的值是( ) A.0 B.1 C.10 D.25 84.C语言中,下列运算符优先级最高的是( ) A.! B.% C.( ) D.== 85.设有以下程序段:

int a=1, b=10, c=1, x; x=a&&b||++c;

printf(″%d, %d\\n″,x,c);执行后输出的结果是( )

A.0,0 B.0,1 C.1,0 D.1,1 86.在C语言中,运算符″=″和″==″的功能分别是( ) A.关系运算和赋值运算 B.赋值运算和关系运算 C.都是关系运算 D.都是赋值运算 87.若main()函数带参数,参数个数最多是( )

A.0 B.1 C.2 D.3 88.设char a='\\70';则变量a中( )

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4