C语言习题文档格式.docx
《C语言习题文档格式.docx》由会员分享,可在线阅读,更多相关《C语言习题文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
d)后n的值为()。
A)1B)2C)3D)4
结果是2。
#include<
stdio.h>
main()
{
inta=1,b=2,c=3,d=4,m=2,n=2;
(m=a>
b)&
(n=c>
d);
printf("
%d"
n);
}
//分析:
/*因为是&
运算,所以先看前段。
m=a>
b,=的优
先级小于>
,a>
b不成立,m=0;
在&
运算中,如果
出现一边为假的情况下,结果直接为假,后面的
语句不会去运算了。
*/
4.下面()是错误的if语句(设intx,a,b;
)c
A)if(a=b)x++;
B)if(a=<
b)x++;
C)if(a-b)x++;
D)if(x)x++;
5.以下程序片段()。
main()
{intx=0,y=0,z=0;
if(x=y+z)
printf(“***”);
else
printf(“###”);
}
A)有语法错误,不能通过编译B)输出:
***
C)可以编译,但不能通过连接,所以不能运行D)输出:
###
答案是B
因为C语言中"
="
是赋值号;
if(x=y+z)是计算出y+z的值然后赋值给x,这个式子是永远成立的,所以会输出***;
如果说要改错的话,应该改为if(x==y+z),构成逻辑表达式后,才符合程序设计的初衷。
6.对下述程序,()是正确的判断。
{intx,y;
scanf(“%d,%d”,&
x,&
y);
if(x>
y)
x=y;
y=x;
x++;
y++;
printf(“%d,%d”,x,y);
A)有语法错误,不能通过编译B)若输入3和4,则输出4和5
C)若输入4和3,则输出3和4D)若输入4和3,则输出4和5
7.若w=1,x=2,y=3,z=4,则条件表达式w<
x?
w:
y<
z?
y:
z的值是()。
A)4B)3C)2D)1
8.下述表达式中,()可以正确表示x≤0或x≥1的关系。
=0)B)x>
=1|x<
=0
C)x>
=1&
x<
=0D)(x>
=0)
9.下述程序的输出结果是()。
main()
{inta=0,b=0,c=0;
if(++a>
0||++b>
0)
++c;
printf(“%d,%d,%d”,a,b,c);
A)0,0,0B)1,1,1C)1,0,1D)0,1,1
10.下述程序的输出结果是()。
{intx=-1,y=4,k;
k=x++<
=0&
!
(y--<
=0);
printf(“%d,%d,%d”,k,x,y);
A)0,0,3B)0,1,2C)1,0,3D)1,1,2
11.以下程序输出结果是()。
{intx=1,y=0,a=0,b=0;
switch(x){
case1:
switch(y){
case0:
a++;
break;
case1:
b++;
case2:
a++;
b++;
break;
case3:
printf(“a=%d,b=%d”,a,b);
A)a=1,b=0B)a=2,b=1C)a=1,b=1D)a=2,b=2
12.下述程序的输出结果是()。
{inta,b,c;
intx=5,y=10;
a=(--y==x++)?
–y:
++x;
b=y++;
c=x;
A)6,9,7B)6,9,6C)7,9,6D)7,9,7
13.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是。
if(a<
b)
if(c<
d)x=1;
else
if(a<
c)
if(b<
d)x=2;
elsex=3;
elsex=6;
elsex=7;
A)1B)2C)3D)4
14.在下面的条件语句中(其中S1和S2表示C语言语句),只有一个在功能上与其他三个语句不等价。
A)if(a)S1;
elseS2;
B)if(a==0)S2;
elseS1;
C)if(a!
=0)S1;
D)if(a==0)S1;
15.若inti=10;
执行下列程序后,变量i的正确结果是()。
switch(i){
case9:
i+=1;
case10:
case11:
default:
A)10B)11C)12D)13
16.若有说明语句inti=5,j=4,k=6;
floatf;
则执行f=(i<
j&
i<
k)?
i:
(j<
j:
k;
语句后,f的值为()。
A)4.0B)5.0C)6.0D)7.0
17.若有定义:
inta=3,b=2,c=1;
并有表达式:
①a%b,②a>
b>
c,③b&
c+1,④c+=1,则表达式值相等的是()。
A)①和②B)②和③C)①和③D)③和④
二.填空题
1.C语言提供6种关系运算符,按优先级高低它们分别是()。
2.C语言提供三种逻辑运算符,按优先级高低它们分别是()。
3.C语言对嵌套if语句的规定是:
else总是与()匹配。
4.将条件“y能被4整除但不能被100整除,或y能被400整除”写成逻辑表达式()。
5.设x,y,z均为int型变量;
写出描述“x,y和z中有两个为负数”的C语言表达式:
()
6.已知A=7.5,B=2,C=3.6,表达式A>
B&
C>
A||A<
C>
B的值是()。
7.有intx=3,y=-4,z=5;
则表达式(x&
y)==(x||z)的值为()。
8.若有x=1,y=2,z=3,则表达式(x<
y?
x:
y)==z++的值是()。
9.执行以下程序段后,a=,b=,c=。
intx=10,y=9;
inta,b,c;
a=(x--==y++)?
x--:
y++;
b=x++;
c=y;
三.判断题
1.if语句中的表达式不限于逻辑表达式,可以是任意的数值类型。
【】
2.switch语句可以用if语句完全代替。
3.switch语句的case表达式必须是常量表达式。
4.if语句,switch语句可以嵌套,而且嵌套的层数没有限制。
5.条件表达式可以取代if语句,或者用if语句取代条件表达式。
6.switch语句的各个case和default的出现次序不影响执行结果。
7.多个case可以执行相同的程序段。
8.内层break语句可以终止嵌套的switch,使最外层的switch结束。
9.switch语句的case分支可以使用{}复合语句,多个语句序列。
10.switch语句的表达式与case表达式的类型必须一致。
四.简答题
1.C语言中如何表示“真”和“假”?
系统如何判断一个量的“真”和“假”?
2.请将以下语句改成switch语句。
if((s>
0)&
(s<
=10))
if((s>
=3)&
=6))x=2;
elseif((s>
1)&
(s>
8))x=3;
elsex=1;
elsex=0;
五.程序阅读题
1.若运行时输入100↙,写出以下程序的运行结果。
{inta;
scanf(“%d”,&
a);
printf(“%s”,(a%2!
=0)?
”No”:
”Yes”);
2.写出以下程序的运行结果。
{inta=2,b=7,c=5;
switch(a>
0){
switch(b<
printf(“@”);
printf(“!
”);
case0:
switch(c==5){
pritnf(“*”);
printf(“#”);
printf(“&
printf(“\n”);
六.程序判断改错题
1.下面程序将输入的大写字母改写成小写字母输出,其他字符不变;
请判断下面程序的正误,如果错误请改正过来。
{charc;
c=getchar();
c=(c>
=’A’||c<
=’Z’)?
c-32:
c+32;
printf(“%c”,c);
2.下面程序输入两个运算数x,y和一个运算符号op,然后输出该运算结果的值,例如输入3+5↙得到结果8;
{
floatx,y,r;
charop;
scanf(“%f%c%f”,&
op,&
switch(op){
case‘+’:
r=x+y;
case‘-’:
case‘*’:
case‘/’:
printf(“%f”,r);
C语言作业四
循环控制
1.下面程序段
intk=0;
while(k=0){printf(“%d”,k);
k--;
则下面描述中正确的是()。
A)while循环执行10次
B)循环是无限循环
C)循环题语句一次也不执行
D)循环体语句执行一次
3.以下程序段的循环次数是()。
for(i=2;
i==0;
)printf(“%d”,i--);
A)无限次B)0次C)1次D)2次
4.下面程序的输出结果是()。
{charc=