第一章C语言基础知识Word格式.docx
《第一章C语言基础知识Word格式.docx》由会员分享,可在线阅读,更多相关《第一章C语言基础知识Word格式.docx(36页珍藏版)》请在冰豆网上搜索。
26.在C语言中,′a′和″a″存储所占用的字节数分别是( )
A.1,1B.1,2C.2,1D.2,2
27.正确的变量定义是( )
A.longd=1000L;
B.floatm1=m2=10.0;
C.charc1=‘A’,c2=A;
D.doublefor=0.618;
28.表达式的值为0的是( )
A.5/5%5B.5>
2C.!
4D.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.doublea;
b;
B.doublea=b=7;
C.doublea=7,b=7;
D.double,a,b;
35.设有定义:
intx=2;
,以下表达式中,值不为6的是()
A.x*=x+1B.x++,2*xC.x*=(1+x)D.2*x,x+=2
36.以下关于C语言数据类型使用的叙述中错误的是()
A.若要准确无误差的表示自然数,应使用整数类型
B.若要保存带有多位小数的数据,应使用双精度类型
C.若要处理如"
人员信息"
等含有不同类型的相关数据,应自定义结构体类型
D.若只处理"
真"
和"
假"
两种逻辑值,应使用逻辑类型
37.若a是数值类型,则逻辑表达式(a==1)||(a!
=1)的值是()
A.1B.0C.2D.不知道a的值,不能确定
38.若有定义语句:
intx=10;
,则表达式x-=x+x的值为()
A.-20B.-10C.0D.10
39.表达式0&
3||4和2&
1的值分别是()
A.4和0B.4和1C.1和0D.1和1
40.设charc=’A’;
inti=l,j;
,执行j=!
c&
i++;
后,i和j的值分别是()
A.1和0B.1和1C.2和0D.2和l
41.设inta;
,执行表达式(a=1,2,3),a+1后,a和表达式的值分别是()
A.1和2B.2和3C.3和4D.4和5
42.设inta=0,b=1;
,下列语句错误的是()
A.a=b=10;
B.a++;
C.b+=a;
D.(a+b)++;
43.能正确表达数学关系式0≤x<
20的C语言表达式是()
A.0<
=x<
20B.x>
=0||x<
20C.x>
=0&
x<
20D.!
(x<
=0)&
20
44.设doublex=5.168;
,执行printf(“%5.3f\n”,(int)(x*10+0.5)/10.0);
后的输出结果是()
A.5.218B.5.210C.5.200D.5.168
45.设charch=‘a’;
,执行printf(“%d,%c\n”,ch,ch+2);
A.97,cB.97,99C.a,cD.a,a+2
46.设inti=8,a,b;
doublex=1.42,y=5.2;
,正确的表达式是()
A.a+=(b=4)*(a=3)B.a=a*3=2C.x%(-3)+y**3D.y=float(i)
47.表达式:
(int)((double)9/2)-(9)%2的值是()
A、0B、3C、4D、5
48.设chark=’a’;
floatj=2.0;
,执行k+=5/j;
printf(“%c”,k);
后,输出结果是()
A.aB.bC.cD.d
49.设charc=′A′;
inti=1,j;
,执行语句j=!
c&&i++;
A.0和1B.1和0C.1和65D.2和66
50.设intx=6;
,执行语句x+=x-=x*x;
后,x的值是()
A.-60B.0C.6D.36
51.设inti=3,j=3;
,表达式i+++j的值是()
A.6B.7C.8D.9
52.设inta=2,b=6,c=8;
,表达式(a,b),(c,10)的值是()
A.2B.6C.8D.10
53.下列表达式值为0的是()
A.6%2B.2&
5C.!
2||5D.2||5
54.设inta,b;
则表达式(b=2,a=5,b++,a+b)的值是()
A.2B.5C.7D.8
55.以下关于C语言的叙述中正确的是()
A.C语言中的注释可以夹在变量名或关键字的中间
B.C语言中的变量必须在使用之前进行定义
C.在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致
D.C语言的数值常量中夹带空格不影响常量值的正确表示
56.设函数中有整型变量n,为保证在未赋初值的情况下初值为0,应选择的存储类别是
A.autoB.registerC.staticD.auto或register
57.执行以下程序段后,w的值为()
intw='
A'
x=14,y=15;
w=((x||y)&
(w<
'
a'
));
A.-1B.NULLC.1D.0
58.若有表达式(w)?
(--x):
(++y),则其中与w等价的表达式是()
A.w==1B.w==0C.w!
=1D.w!
=0
59.设inta=7;
floatx=2.5,y=4.7;
则表达式x+3%(int)(x+y)/4的值是()
A.2.75B.3.5C.2.5D.0.0
60.设charcl;
则cl中为小写英文字母字符的正确表达式为()
A.‘a’<
=c1=‘z’B.(cl>
=‘a’)&
(cl<
=‘z’)
C.(cl>
=a)&
(c1<
=z)D.(‘a’<
=c1)||(‘z’>
=c1)
61.设staticinta;
执行表达式(a==1)&
(a=-1)&
(a=2)后,a的值是()
A.-1B.0C.1D.2
62.若有定义:
doublea=22;
inti=0,k=18;
则不符合C语言规定的赋值语句是()
A.a=a++,i++;
B.i=(a+k)<
=(i+k);
C.i=a%11;
D.i=!
a;
63.main()
{intk=011;
printf("
%d\n"
k++);
}程序运行后的输出结果是()
A.12B.11C.10D.9
64.以下叙述中正确的是()
A.C程序的基本组成单位是语句B.C程序中的每一行只能写一条语句
C.简单C语句必须以分号结束D.C语句必须在一行内写完
65.以下不能正确表示代数式
的C语言表达式是()
A.2*a*b/c/dB.a*b/c/d*2C.a/c/d*b*2D.2*a*b/c*d
66.C源程序中不能表示的数制是()
A.二进制B.八进制C.十进制D.十六进制
67.设inta,b;
与a+=b++;
等价的是()
A.a=b++;
B.a=++b;
C.a=a+b++;
D.a=a+++b;
68.设inta=l,b=2,c=3;
,执行表达式(a>
b)&
(c=1)后c的值是()
A.0B.1C.2D.3
69.已知字符‘A’的ASCII码值是65,且charcl=‘A’,c2=‘D’;
则执行语句printf(″%d,%d\n″,cl,c2-2);
A.A,DB.A,BC.65,68D.65,66
70.若有下列程序段:
intx=l,y=2;
x=x+y;
y=x-y;
x=x-y;
则执行后x和y的值分别为()
A.1和2B.2和2C.2和1D.1和1
71.设inta=3,b=4;
则printf(“%d,%d,”(a,b),(b,a));
的输出结果是()
A.3,4B.4,3C.3,4,4,3D.4,3,3,4
72.设intx=2,y=4;
,值为非0的表达式是()
A.1/x*yB.1/(x*y)C.1.0/x/yD.1/x/(double)y
73.设inta=2,b=5;
,结果为0的表达式是()
A.a%bB.a&
bC.a=bD.a==b
74.设inta=0;
错误的语句是()
A.++a;
B.a++;
C.a=-a;
D.(-a)++;
75.设inta=1,b=2,c=3,d=4,f;
,执行语句f=(a!
=b)?
c++:
d++;
后f的值是()
A.2B.3C.4D.5
76.下列运算符优先级最高的是()
A.+=B.,C.!
D.?
:
77.设inta=1,b=2;
则执行a=b+2,a++,a+b;
后a和b的值分别是( )
A.1和2B.3和2C.4和7D.5和2
78.设inta=2,b=3,c=4;
则表达式a>
b&
b<
c||b的值是( )
A.-1B.0C.1D.2
79.设inta,x=2;
执行语句a=x>
0?
3*x:
(x=10);
后,变量x的值是( )
A.1B.2C.6D.10
80.设有以下程序段:
intx=2,y=2,z=0,a;
a=++x||++y&
z++;
printf(″%d,%d,%d\n″,x,y,z);
执行后输出的结果是( )
A.2,2,0B.3,3,1C.3,2,0D.3,2,1
81.逗号表达式a=2*6,a*3,a+5的值是( )
A.12B.17C.36D.41
82.在C语言中,下列运算符中结合性属于自右向左的是( )
A.&
B.--C.*D.()
83.设intx=10,a=0,b=25;
,条件表达式x<
1?
a+10︰b的值是( )
A.0B.1C.10D.25
84.C语言中,下列运算符优先级最高的是( )
A.!
B.%C.()D.==
85.设有以下程序段:
inta=1,b=10,c=1,x;
x=a&
b||++c;
printf(″%d,%d\n″,x,c);
A.0,0B.0,1C.1,0D.1,1
86.在C语言中,运算符″=″和″==″的功能分别是( )
A.关系运算和赋值运算B.赋值运算和关系运算
C.都是关系运算D.都是赋值运算
87.若main()函数带参数,参数个数最多是( )
A.0B.1C.2D.3
88.设chara='\70';
则变量a中( )
A.包含1个字符B.包含2个字符C.包含3个字符D.是非法表示
89.设inti=10;
表达式30-i<
=i<
=9的值是( )
A.0B.1C.9D.20
90.以下不能看作一条C语句的是( )
A.{;
}B.a=5,b=5,c=5;
C.if(x>
y=0);
D.if(x==0)a=5;
b=10;
91.下列关于C语言的叙述错误的是()
A.英文字母大小写不加以区分
B.不同类型的变量可以出现在同一个表达式中
C.在赋值表达式中赋值号两边的类型可以不同
D.某些运算符在不同的场合可以有不同的含义
92.下列转义字符中错误的是()
A.′\000′B.′\14′C.′\x111′D.′\2′
93.设floata=2,b=4,c=3;
以下C语言表达式与代数式
(a+b)c计算结果不一致的是()
A.(a+b)*c/2B.(1/2)*(a+b)*cC.(a+b)*c*1/2D.c/2*(a+b)
94.设inta=10,b=20,c=30;
条件表达式a<
b?
a=5∶c的值是()
A.5B.10C.20D.30
95.设inta=9,b=6,c;
,执行语句c=a/b+0.8;
后c的值是()
A.1B.1.8C.2D.2.3
96.设inta;
则逗号表达式a=2,4,a+1的值是()
A.1B.2C.3D.4
97.设inti;
floatf;
doubled;
longinte;
则表达式10+′a′+i*f-d/e结果的类型是()
A.doubleB.longC.intD.float
98.设inta=0,b=0,m=0,n=0;
则执行(m=a==b)‖(n=b==a)后m和n的值分别是()
A.0,0B.0,1C.1,0D.1,1
二、填空题
1.表达式4&
5+3||1的值是。
2.设intj=5;
则执行语句j+=j-=j*j;
后j的值是。
3.设inta,b=2,c=3;
执行表达式a=(b>
c)?
(b+1):
(c+2),后a的值是_。
4.在C语言中,++运算符的结合性是。
5.表达式(int)((double)(5/2)+2.5)的值是。
6.若有定义语句:
inta=5;
,则表达式:
a++的值是_。
7.若有语句doublex=17;
inty;
,当执行y=(int)(x/5)%2;
之后y的值为。
8.表达式3!
=6的值是。
9.设intx=10,y=3;
,执行printf(“%d,%d\n"
,x--,++y);
后的输出结果是。
10.设inta,b,c;
,表达式a=2,b=5,b++,a+b的值是。
11.设inta=1,b=2,m=2,n=2;
,执行表达式(m=a<
b)||++n后,n的值是。
12.设intx=4,y=2;
,表达式x<
y?
y:
x++的值是_。
13.设intx=3;
,执行语句printf((x%2)?
("
**%d\n"
):
##%d\n"
),x);
后,输出结果是。
14.执行printf(“%d\n”,1+!
2+(3<
=4)+5/6+7%8);
后的输出结果是。
15.设intm=0;
执行表达式m||(m=2)||(m=3)||(m=4)后,m的值是。
16.设intn;
“n的值能同时被3和5整除”的逻辑表达式是_。
17.设inti;
floatf=3.14;
,执行i=(int)f;
后,变量f的值是。
18.设doublex;
,则表达式x=5,(x+5)/2的值是。
19.赋值运算符的结合性是。
20.设charch;
,判断ch为数字字符的逻辑表达式是。
21.设intx=14;
则表达式x++%-5的值为。
22.设Charax;
则变量ax占用的内存字节数是。
23.设intx=5;
则表达式2/(float)(x)+3/x的结果是。
24.一个字符型变量所占内存的字节数是。
25.设intx=-9,y;
则执行y=x>
=0?
x:
-x;
后y的值是。
26.设x为int型变量,请写出一个关系表达式,用以判断x同时为3和7的倍数时,关系表达式的值为真。
27.设inta=10;
,则执行语句a+=a-=a+a;
后a的值是。
28.设intx=3,y=5;
则执行printf(″%d\n″,x||y);
后输出。
29.设inta=2;
,则执行a+=a*=15;
后,变量a的值是。
30.C语言中,&
作为双目运算符表示的运算是。
31.inta;
floatb;
charc;
longd;
doublee;
则表达式a/c-b+d-e值的类型是。
32.设intx=5;
x+=x-=x+x;
则执行printf(″%d\n″,x);
后输出的值是。
33.设inta=0,b=0,c;
则执行c=(a-=b-5),(a=b,b=3);
后变量c的值是。
34.设inta=0,b=0,c=2,d=4;
则执行(c=a==b)||(d=b==a);
后变量d的值是。
35.设intx;
则将x强制转换为双精度类型应写成。
36.设intx=2,y=1;
则表达式x+++y的值是。
37.设inta=-3,b=7,c=-1;
则执行(a==0)&
(a=a%b<
b/c);
后变量a的值是。
38.设inta,b,c;
则执行a=(b=3,c=5,b=10);
第二章输入输出函数
1.设floatx;
由键盘输入12.45,能正确读入数据的输入语句是( )
A.scanf(″%5f″,&
x);
B.scanf(″%5d″,&
C.scanf(″%f″,x);
D.scanf(″%s″,&
x)
2.设intx;
则以下语句中错误的输入是( )
A.scanf(″%d″,x);
B.scanf(″%d″,&
x);
C.scanf(″%o″,&
D.scanf(″%x″,&
3.执行语句printf("|%9.4f|\n",12345.67);
后的输出结果是( )
A.|2345.6700|B.|12345.6700|C.|12345.670|D.|12345.67|
4.执行语句printf(″%x″,-1);
后输出结果是()
A.-1B.–ffffC.1D.ffff
5.使用语句scanf(″a=%f,b=%f″,&
a,&
b);
输入变量a、b的值,正确的是()
A.1.25,2.4B.1.25□2.4C.a=1.25,b=2.4D.a=1.25□b=2.4
6.设inta,b;
为使变量a和b分别获得数据10和20,则下列正确的是()
A.scanf(″%d,%d″,&
a,&
输入数据:
10,20<
回车>
B.scanf(″%d,%d″,&
1020<
C.scanf(″%d,%d″,&
a=10,b=20<
D.scanf(″%d,%d″,a,b);
7.设宏定义#definePI3.1415926,用宏名PI替换的是( )
A.算术表达式B.字符串C.单精度实型数D.双精度实型数
8.关于宏定义命令,叙述正确的是()
A.在程序编译前进行宏替换B.在程序编译时进行宏替换
C.在程序编译后进行宏替换D.在程序运行时进行宏替换
9.以下叙述正确的是( )
A.宏名必须用大写的英文字母表示
B.宏定义不仅是符号替换,也可以赋值
C.宏替换是在程序编译时完成的,不占用程序运行时间
D.引用带参数的宏时,实际参数与宏定义中的形式参数类型应一致
10.设宏定义#defineP(x)x/x
则执行语句printf(″%d\n″,P(4+6));
A.1B.8.5C.11D.11.5
11.程序段intx=12;
doubley=3.141593;
printf("
%d%8.6f"
x,y);
A.123.141593B.123.141593C.12,3.141593D.123.1415930
12.有以下程序运行后的输出结果是()
#include<
stdio.h>
#defineSUB(a) (a)-(a)
main()
{inta=2,b=3,c=5,d;
d=SUB(a+b)*c;
d);
}
A.0B.-12C.-20D.-5
13.有以下程序运