C语言习题Word文件下载.docx
《C语言习题Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言习题Word文件下载.docx(28页珍藏版)》请在冰豆网上搜索。
14.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=‘A’+‘6’-‘3’;
后,c2中的值为(a)。
A.DB.EC.不确定的值D.C
15.设有说明:
charw;
intx;
floaty;
doublez;
则表达式w*x+z-y值的数据类型为(c)。
A.intB.floatC.doubleD.char
16.设变量a是整型,f是实型,i是双精度型,则表达式10+a+i*f值的数据类型为(C)。
A.intB.floatC.doubleD.不确定
17.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。
如果字符串长度大于5,则输出按方式(B)。
A.从左起输出该字串,右补空格
B.按原字符长从左向右全部输出
C.右对齐输出该字串,左补空格
D.输出错误信息
18.putchar函数可以向终端输出一个(D)。
A.整型变量表达式值B.实型变量值
C.字符串D.字符
19.若a,b,c均定义为int型,则输入函数采用scanf(“a=%d,b=%d,c=%d”,&
a,&
b,&
c);
格式时,其输入数据的正确格式是(C)。
A.12,24,36B.122436
C.a=12,b=24,c=36D.a=12b=24c=36
20.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是(B)。
inta1,a2;
charc1,c2;
scanf(“%d%d”,&
a1,&
a2);
scanf(“%c%c”,&
c1,&
c2);
A.1020AB<
回车>
B.1020<
AB<
C.1020AB<
D.1020AB<
21.有输入语句:
scanf(“%d%d%d”,&
c);
为使变量a的值为1,b为3,
c为2,从键盘输入数据的正确形式应当是(C)。
(_表示空格)"
A.132<
B.1,3,2<
C.132<
D.a=1,b=3,c=2<
22.以下说法正确的是(D)。
A.输入项可以为一实型常量,如scanf(“%f”,3.5);
B.只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”);
C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f”,&
f);
D.当输入数据时,必须指明变量的地址,如scanf(“%f”,&
23.以下能正确地定义整型变量a,b和c并为其赋初值5的语句是(C)。
A.inta=b=c=5;
B.inta,b,c=5;
C.inta=5,b=5,c=5;
D.a=b=c=5;
24.若有以下定义,则正确的赋值语句是(D)。
inta,b;
floatx;
A.a=1,b=2B.b++;
C.a=b=5D.b=int(x);
25.逻辑运算符两侧运算对象的数据类型(D)。
A.只能是0或1B.只能是0或非0正数
C.只能是整型或字符型数据D.甚至可以是实型和指针类型的数据
26.以下关于运算符优先顺序的描述中正确的是(C)。
A.关系运算符<
算术运算符<
赋值运算符<
逻辑与运算符
B.逻辑与运算符<
关系运算符<
赋值运算符
C.赋值运算符<
逻辑与运算符<
算术运算符
D.算术运算符<
27.判断char型变量c1是否为小写字母的正确表达式是(D)。
A.‘a’<
=c1<
=‘z’B.(c1>
=a)&
&
(c1<
=z)
C.(‘a’>
=c1)||(‘z’<
=c1)D.(c1>
=‘a’)&
=‘z’)
28.判断char型变量c1是否为大写字母的正确表达式是(D)。
A.‘A’<
=‘ZB.(c1>
=A)&
=Z)
C.(‘A’>
=c1)||(‘Z’<
=‘A’)&
=‘Z’)
29.表示图中坐标轴上阴影部分的正确表达式是(C)。
////////
X
abc
A.(x<
(x>
=b)&
(x<
=c)
B.(x<
=a)||(b<
=x<
C.(x<
=a)||(x>
D.(x<
(b<
30.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是(C)。
A.A%2==1B.!
(A%2==0)C.!
(A%2)D.A%2
31.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是(D)。
A.‘x’&
‘y’B.x<
=y
C.x||y+z&
y-zD.!
((x<
y)&
!
z||1)
32.已知x=43,y=0,ch=‘A’;
则表达式(x>
=y&
ch<
‘B’&
!
y)的值是(C)。
A.0B.语法错C.1D.“假”
33.执行以下语句后a的值为(B)。
inta=5,b=6,w=1,x=2,y=3,z=4;
(a=w>
x)&
(b=y>
z);
A.5B.0C.2D.1
34.以下程序的运行结果是(B)。
#include“stdio.h”
main()
{
inta,b,d=241;
a=d/100%9;
b=(-1)&
(-1);
printf(“%d,%d”,a,b);
}
A.6,1B.2,1C.6,0D.2,0
35.以下if语句语法正确的是(B)。
A.if(x>
0)printf(“%f”,x)
elseprintf(“%f”,-x);
B.if(x>
0)
{x=x+y;
printf(“%f”,x);
C.if(x>
};
D.if(x>
printf(“%f”,x)}
36.为了避免在嵌套的if-else中产生二义性,C语言规定:
else子句总是与(B)配对。
A.缩排位置相同的ifB.其之前最近的if
C.其之后最近的ifD.同一行上的if
37.以下不正确的if语句形式是(A)。
y&
x!
=y);
B.if(x==y)x+=y;
C.if(x!
=y)scanf(“%d”,&
x)elsescanf(“%d”,&
y);
D.if(x<
y){x++;
y++;
}
38.已知intx=10,y=20,z=30;
以下语句执行后x,y,z的值是(B)。
if(x>
y)z=x;
x=y;
y=z;
A.x=10,y=20,z=30B.x=20,y=30,z=30
C.x=20,y=30,z=10D.x=20,y=30,z=20
39.设有定义intx=1;
inty=‘a’<
‘A’?
x--:
x++;
则变量y的值是(C)。
A.0B.1C.2D.3
40.设intx=1,a=9,b=6,c=7,d=8;
则执行语句:
if(a>
b)if(c>
d)x=2;
elsex=3;
后,x的值是(C)。
A.不确定B.2C.3D.1
41.若有以下定义,则能使值为3的表达式是(D)。
intk=7,x=12;
A.x%=(k%=5)B.x%=(k-k%5)C.x%=k-k%5D.(x%=k)-(k%=5)
42.设以下变量均为int类型,则值不等于7的表达式是(C)。
A.(x=y=6,x+y,x+1)B.(x=y=6,x+y,y+1)
C.(x=6,x+1,y=6,x+y)D.(y=6,y+1,x=y,x+1)
43.有一函数关系见下表:
x
y=
x<
x-1
x=0
x>
x+1
下面程序段中能正确表示上面关系的是(C)。
A.y=x+1;
B.y=x-1;
if(x>
=0)if(x!
=0)
if(x==0)y=x;
0)y=x+1;
elsey=x-1;
elsey=x;
C.if(x<
=0)D.y=x;
if(x<
0)y=x-1;
if(x<
elsey=x;
if(x<
elsey=x+1;
44.以下程序的输出结果是(B)。
main()
{
intx=2,y=-1,z=2;
y)
if(y<
0)z=0;
elsez+=1;
printf(“%d\n”,z);
}
A.3B.2C.1D.0
45.以下不正确的语句为(C)。
A.if(x=y)&
(x!
=0)x+=y;
B.if(x!
x);
elsescanf(“%d”,&
D.if(x<
y){x++;
46.以下程序的运行结果是(D)。
intk=4,a=3,b=2,c=1;
printf(“\n%d\n”,k<
a?
k:
(c<
b?
c:
a));
A.4B.3C.2D.1
47.不用第三个变量,将变量a和b的值进行互换的操作是()。
A.b-=a;
a=b-a;
a+=b;
B.a+=b;
b=a-b;
a-=b;
C.b-=a;
D.a+=b;
b-=a;
48.若运行时给变量x输入12,则以下程序的运行结果是(A)。
intx,y;
scanf(“%d”,&
y=x>
12?
x+10:
x-12;
printf(“%d\n”,y);
A.0B.22C.12D.10
49.若w、x、y、z、m均为int型变量,则执行下面语句后的m值是(A)。
w=1;
x=2;
y=3;
z=4;
m=(w<
x)?
w:
x;
m=(m<
y)?
m:
y;
z)?
z;
A.1B.2C.3D.4
50.以下程序的运行结果是(A)。
intm=5;
if(m++>
5)printf(“%d\n”,m);
elseprintf(“%d\n”,m--);
A.4B.5C.6D.7
51.已知intx=0,y=1.5;
执行以下程序段以后,y的值为(C)。
if(x!
0)y=1;
elsey=-1;
printf(“%d”,y);
A.0B.-1C.1.5D.1
52.若有条件表达式(exp)?
a++:
b--,则以下表达式中能完全等价于表达式(exp)的是(B)。
A.(exp==0)B.(exp!
=0)C.(exp==1)D.(exp!
=1)
53.执行以下程序段后,变量a,b,c的值分别是(B)。
intx=10,y=9;
inta,b,c;
a=(--x==y++)?
--x:
++y;
b=x++;
c=y;
A.a=9,b=9,c=9B.a=8,b=8,c=10
C.a=9,b=10,c=9D.a=1,b=11,c=10
54.下面程序段的运行结果是(B)。
x=y=0;
while(x<
5)y++,x+=y;
printf(“%d,%d\n”,y,x);
A.20,7B.3,6C.3,12D.8,20
55.下面程序段的运行结果是(C)。
intn=0;
while(n++<
=2);
printf(“%d\n”,n);
A.2B.3C.4D.有语法错
56.下面程序段的运行结果是()。
a=1;
b=2;
c=1;
while(a<
b<
c){t=a;
a=b;
b=t;
--c;
printf(“%d,%d,%d”,a,b,c);
A.1,2,0B.2,1,0C.1,2,1D.2,1,1
57.下面程序的运行结果是()。
#include<
stdio.h>
intnum=0;
while(num<
=2)
{
num++;
printf(“%d\n”,num);
}
A.1B.1C.1D.1
222
33
4
58.C语言中while和do-while循环的主要区别是(A)。
A.do-while的循环体至少无条件执行一次
B.while的循环控制条件比do-while的循环控制条件严格
C.do-while允许从外部转到循环体内
D.do-while的循环体不能是复合语句
59执行下列程序段以后,变量i的值是(C)。
inti=7;
switch(i--)
{case4:
i+=2;
case5:
i+=3;
case6:
i+=4;
break;
default:
i+=10;
A.9B.11C.16D.13
60.在C语言中,switch语句后一对圆括号中表达式的类型(C)。
A.只能是整型或实型B.只能为int类型
C.可以是整型或字符型D.可以是任何类型
61.设有程序段
intk=10;
while(k=0)k=k-1;
则下面描述中正确的是(A)。
A.while循环执行10次B.循环是无限循环
C.循环体语句一次也不执行D.循环体语句执行一次
62.以下能正确计算1×
2×
3×
…×
10的程序段是(C)。
A.do{i=1;
s=1;
B.do{i=1;
s=0;
s=s*i;
s=s*i;
i++;
i++;
}while(i<
=10);
C.i=1;
D.i=1;
do{s=s*i;
do{s=s*i;
63.以下描述中正确的是(C)。
A.由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B.do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C.在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作
D.do-while循环中,根据情况可以省略while
64.若有如下语句:
intx=3;
do{printf(“%d\n,x”),x-=2;
}while(!
(--x));
则上面程序段(C)。
A.输出的是1B.输出的是1和-2
C.输出的是3和0D.是死循环
65.以下程序段(C)。
x=-1;
do
{x=x*x;
while(!
A.是死循环B.循环执行二次
C.循环执行一次D.有语法错误
66.下面程序的运行结果是(A)。
inty=10;
do{y--;
}while(--y);
printf(“%d\n”,y--);
A.-1B.1C.8D.0
67.执行以下程序段后,屏幕的显示结果是()。
i=10;
do
{s=s+i;
i++;
while(i<
printf(“%d”,s);
A.0B.10C.11D.21
68.以下for循环的执行次数是()。
for(x=0,y=0;
(y=123)&
4);
x++)
A.是无限循环B.循环次数不定C.执行4次D.执行3次
69.下面有关for循环的正确描述是()。
A.for循环只能用于循环次数已经确定的情况
B.for循环是先执行循环体语句,后判断表达式
C.在for循环中,不能用break语句跳出循环体
D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
70.若i为整型变量,则以下循环执行次数是()。
for(i=2;
i==0;
)printf(“%d”,i--);
A.无限次B.0次C.1次D.2次
71.设chari;
执行下面语句后,屏幕输出结果是()。
for(i='
B'
;
i<
F'
i+=2)printf(“%c”,i);
A.BCB.BDC.CFD.DE
72.以下描述正确的是()。
A.continue语句的作用是结束整个循环的执行
B.在循环体内使用break语句或continue语句的作用相同
C.只能用continue语句来终止本次循环
D.在循环中break语句是结束整个循环的执行
73.以下正确的描述是()。
B.只能在循环体内和switch语句体内使用break语句
C.在循环体内使用break语句或continue语句的作用相同
D.从多层循环嵌套中退出时,只能使用goto语句
74.下面程序段()。
for(t=1;
t<
=100;
t++)
0)continue;
printf(“%3d”,t);
A.当x<
0时整个循环结束B.x>
=0时什么也不输出
C.printf函数永远也不执行D.最多允许输出100个非负整数
75.下面程序段()。
for(t=1;
t<
t++)
{scanf(“%d”,&
0)break;
printf(“%3d”,t);
A.printf函数永远也不执行B.最多允许输出100个负整数
C.x>
=0时什么也不输出D.当x<
0时整个循环结束
76.下面程序的运行结果是()。
for(a=1,b=1;
a<
a++)
if(b>
=20)break;
b+=3;
printf(“%d\n”,a);
A.7B.8C.9D.10
77.下面程序的运行结果是()。
inti;
for(i=1;
i<
=5;
i++)
if(i%2)printf(“*”);
elsecontinue;
printf(“#”);
printf(“$\n”);
A.*#*#*#$B.#*#*#*$