第04章逻辑运算和判断选取控制 1Word下载.docx
《第04章逻辑运算和判断选取控制 1Word下载.docx》由会员分享,可在线阅读,更多相关《第04章逻辑运算和判断选取控制 1Word下载.docx(36页珍藏版)》请在冰豆网上搜索。
ch<
=’Z’)
C)(ch>
(ch<
=’Z’)D)(‘A’<
=ch)AND(‘Z’>
=ch)
4.7设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是______。
A)‘x’&
’y’
B)x<
=y
C)x||y+z&
y-z
D)!
((x<
=y)&
!
z||1
4.8已知x=43,ch=’A’,y=0;
则表达式(x>
=y&
’B’&
!
y)的值是______。
A)0B)语法错C)1D)“假”
4.9若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。
则以下不能满足要求的表达式是______。
A)A%2==1B)!
(A%2==0)C)!
(A%2)D)A%2
4.10设有:
inta=1,b=2,c=3,d=4,m=2,n=2;
执行(m=a>
b)&
(n=c>
d)后n的值为______。
A)1B)2C)3D)4
4.11判断char型变量c1是否为小写字母的正确表达式为______。
A)‘a’<
=c1<
=’z’B)(c2>
(c1<
=z)
C)(‘a’>
=c1)||(‘z’<
=c1)D)(c1>
=’a’)&
c1<
=’z’)
4.12以下程序的运行结果是______。
#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
4.13执行以下语句后a的值为___1__,b的值为__2___。
inta,b,c;
a=b=c=1;
++a||++b&
++c;
1
A)
错误
B)
C)
2
D)
A)
4.14执行以下语句后a的值为___1__,b的值为__2___。
inta=5,b=6,w=1,x=2,y=3,z=4;
(a=w>
x)&
(b=y>
z);
5
6
4
4.15以下不正确的if语句形式是______。
A)if(x>
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++;
}
4.16下列运算符中优先级最低的是___1__,优先级最高的是__2__。
A)?
:
B)&
C)+D)!
=
4.17已知intx=10,y=20,z=30;
以下语句执行后x,y,z的值是______。
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
4.18以下if语句语法正确的是______。
0)
printf(“%f”,x);
elseprintf(“%f”,-x);
B)if(x>
{x=x+y;
printf(“%f”,x);
}
C)if(x>
{x=x+y;
};
elesprintf(“%f”,-x);
D)if(x>
printf(“%f”,x)}
4.19请阅读以下程序:
main()
{
inta=5,b=0,c=0;
if(a=b+c)printf(“***\n”);
elseprintf(“$$$\n”);
以上程序______。
A)有语法错误不能通过编译B)可以通过编译但不能通过连接
C)输出***D)输出$$$
4.20以下程序的运行结果是______。
intm=5;
if(m++>
5)printf(“%d\n”,m);
elseprintf(“%d\n”,m--);
A)4B)5C)6D)7
4.21当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)6
4.22有一个函数关系见下表:
x
y=
x-1
x=0
x
x>
x+1
下面程序中能正确表示上面关系的是______。
A)y=x+1
=0)
if(x==0)y=x;
elsey=x-1;
B)y=x-1;
if(x!
if(x>
0)y=x+1;
elsey=x;
C)if(x<
if(x<
0)y=x-1;
elsey=x+1;
D)y=x;
if(x<
4.23以下程序的输出结果是______。
inta=100,x=10,y=10,ok1=5,ok2=0;
y)
if(y!
=10)
if(!
ok1)
a=1;
else
if(ok2)a=10;
a=-1;
printf(“%d\n”,a);
}
A)1B)0C)–1D)值不确定
4.24以下程序的输出结果是______。
intx=2,y=-1,z=2;
if(y<
0)z=0;
elsez+=1;
printf(“%d\n”,z);
4.25为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:
else子句总量与______配对。
A)缩排位置相同的ifB)其之前的最近的if
C)其之后最近的ifD)同一行上的if
4.26以下不正确的语句为______。
B)if(x=y)&
(x!
=0)x+=y;
=y)scanf(“%d”,&
x);
elsescanf(“%d”,&
y){x++;
y++;
4.27请阅读以下程序:
#include“stdio.h”
main()
{
floata,b;
scanf(“%f”,&
a);
0.0)b=0.0;
elseif((a<
0.5)&
(a!
=2.0))b=1.0/(a+2.0);
elseif(a<
10.0)b=1.0/x;
elseb=10.0;
prinf(“%f\n”,y);
若运行时输入2.0<
回车>
,则上面程序的输出结果是______。
A)0.000000B)0.500000C)1.000000D)0.250000
4.28若有条件表达式(exp)?
a++:
b++,则以下表达式中能完全等价表达式(exp)的是______。
A)(exp==0)B)(exp!
C)(exp==1)D)(exp!
=1)
4.29若运行时给变量x输入12,则以下程序的运行结果是______。
intx,y;
scanf(“%d”,&
y=x>
12?
x+10:
x-12;
printf(‘%d\n”,y);
A)0B)22C)12D)10
4.30则以下程序的运行结果是______。
intk=4,a=3,b=2,c=1;
printf(“\n%d\n”,k<
a?
k:
c<
b?
c:
A)4B)3C)2D)1
4.31执行以下程序段后,变量a,b,c的值分别是______。
intx=10,y=9;
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
4.32若w、x、y、z、m均为int型变量,则执行下面语句后的m值是______。
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
4.33若w=1,x=2,y=3,z=4,则条件表达式w<
x?
y<
z?
y:
z的值是______。
4.34执行以下程序段后的输出结果是______。
intw=3,z=7,x=10;
printf(“%d\n”,x>
10?
x+100:
x-10);
printf(“%d\n”,w++||z++);
printf(“%d\n”,!
w>
printf(“%d\n”,w&
4.2填空题
4.35当a=3,b=2,c=1时,表达式f=a>
b>
c的值是______。
4.36当a=5,b=4,c=2时,表达式a>
b!
=c的值是______。
4.37以下程序运行的结果是______。
intx=1,y,z;
x*=3+2;
printf(“%d\t”,x);
x*=y=z=5;
x=y==z;
4.38在C中,表示逻辑真值用______。
4.39设y为int型变量,请写出描述“y是奇数”的表达式______。
4.40C语言提供的三种逻辑运算符是______。
4.41设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式______。
4.42设x,y,z均为int型变量,请写出描述“x,y和z中有两个为负数”的表达式______。
4.43已知A=7.5,B=2,C=3.6,表达式A>
B&
C>
A||A<
B的值是______。
4.44若有a=6,b=4,c=2,则表达式!
(a-b)-c-1&
b+c/2的值是______。
4.45若a=2,b=4,则表达式!
(x=a)||(y=b)&
0的值是______。
4.46若a=1,b=4,c=3,则表达式!
(a<
b)||!
c&
1的值是______。
4.47若a=6,b=4,c=3,则表达式a&
b+c||b-c的值是______。
4.48若a=5,b=2,c=1,则表达式a-b<
c||b==c的值是______。
4.49设a=3,b=4,c=5,则表达式a||b+c&
b==c的值是______。
4.50条件“2<
3或x<
-10”的C表达式是______。
4.51当m=2,n=1,a=1,b=2,c=3时,执行完d=(m=a!
(n=b>
c)后,n的值为__1_,m的值为___2___。
4.52以下程序的运行结果是______。
intx,y,z;
x=1;
y=2;
z=3;
x=y--<
=x||x+y!
=z;
printf(“%d,%d”,x,y);
4.53以下程序的运行结果是______。
inta1,a2,b1,b2;
inti=5,j=7,k=0;
a1=!
k;
a2=i!
=j;
printf(“a1=%d\ta2=%d\n”,a1,a2);
b1=k&
j;
b2=k||j;
printf(“b1=%d\tb2=%d\n”,b1,b2);
4.54以下程序的运行结果是______。
y=1;
z=0;
x=x||y&
printf(“%d,%d”,x,x&
y||z);
4.55有intx,y,z;
且x=3,y=-4,z=5,则表达式(x&
y)==(x||z)的值为______。
4.56有intx,y,z;
且x=3,y=-4,z=5,则以下表达式的值为______。
y)+(y!
=z)||(x+y)&
(y-z)
4.57有intx,y,z;
且x=3,y=-4,z=5,则表达式x++-y+(++z)的值为______。
4.58设a=3,b=4,c=5,则表达式a||b+c&
4.59设a=3,b=4,c=5,x,y;
则以下表达式的值是______。
(x=a)&
(y=b)&
4.60有inta=3,b=4,c=5;
则以下表达式的值为______。
(a+b)+c-1&
b+c/2
4.61若运行时输入:
16<
,则以下程序的运行结果是______。
voidmain(void)
intyear;
printf(“Inputyouryear:
”);
year);
if(year>
=18)
printf(“your$4.5yuan/xiaoshi”);
printf(“your$3.0yuan/xiaoshi”);
4.62略
4.63略
4.64略
4.65请阅读以下程序:
intt,h,m;
t);
h=(t/100)%12;
if(h==0)h=12;
printf(“%d:
”,h);
m=t%100;
if(m<
10)printf(“0”);
printf(“%d”,m);
if(t<
1200||t==2400)
printf(“AM”);
elseprintf(“PM”);
若运行时输入:
1605<
时,程序的运行结果是______。
4.66以下程序实现:
输入圆的半径r和运算标志m,按照运算标志进行指定计算。
请在______内填入正确内容。
标志
运算
面积
周长
二者均计算
#definepi3.14159
charm;
floatr,c,a;
printf(“inputmarkacorb&
r\n”);
scanf(“%c%f”,&
m,&
r);
if(___1___)
{a=pi*r*r;
printf(“areais%f”,a);
if(___2___)
{c=2*pi*r;
printf(“circleis%f”,c);
if(___3___)
c=2*pi*r;
printf(“area&
circleare%f%f”,a,c);
4.67若运行是输入:
5999<
,则以下程序的运行结果(保留小数点后一位)是______。
intx;
floaty;
if(“x>
=0&
=2999)y=18+0.12*x;
=3000&
=5999)y=36+0.6*x;
=6000&
=10000)y=54+0.3*x;
printf(“%6.1f”,y);
}
4.68以下程序实现输出x,y,z三个数中的最大者。
请在_____内填入正确内容。
intx=4,y=6,z=7;
int__1__;
if(__2__)u=x;
elseu=y;
if(__3___)v=u;
elsev=z;
printf(“v=%d”,v);
4.69以下程序实现:
输入三个整数,按从大到小的顺序进行输出。
请在_____内填入正确的内容。
intx,y,z,c;
scanf(“%d%d%d”,&
x,&
y,&
if(__1__)
{c=y;
y=z;
z=c;
if(__2__)
{c=x;
x=z;
z=c};
if(__3__)
x=y;
y=c;
printf(“%d,%d,%d”,x,y,z);
4.70以下程序对输入的两个整数,按从大到小顺序输出。
请在_____填入正确内容。
intx,y,z;
scanf(“%d,%d”,&
if(__1__)
{z=x;
__2__}
4.71以下程序对输入的一个小写字母,将字母循环后移5人位置输出。
如’a’变成’f’,’w’变成’b’。
charc;
c=getchar();
if(c>
=’a’&
=’u’)__1__;
elseif(c>
=’v’&
=’z’)__2__;
putchar(c);
4.72输入一个字符,如果它是一个大写字母,则把它变成小写字母;
如果它是一个小写字母,则把它变成大写字母;
其它字符不变。
charch;
scanf(“%c”,&
ch);
if(_____)ch=ch+32;
elseif(ch>
=’z’)_____;
printf(“%c”,ch);
4.73以下程序的运行结果是_____。
inta,b,c;
ints,w,t;
s=w=t=0;
b=3;
c=3;
0)s=a+b;
if(b>
0)
if(c<
=0)w=a-b;
0)w=a-b;
elset=c;
printf(“%d%d%d”,s,w,t);
4.74以下程序的运行结果是_____。
inta,b,c,d,x;
a=c=0;
b=1;
d=20;
if(a)d=d-10;
elseif(!
c)x=15
elsex=25;
printf(“%d\n”,d);
4.75以下程序的运行结果是_____。
intx,y=1,z;
=0)x=5;
printf(“\t%d\n”,x);
if(y==0)x=4;
elsex=5;
if(y>
0)x=4;
printf(“\t%d\n”,x);
4.76以下程序的运行结果是_____。
intx,y=-2,z=0;
if((z=y<
elseif(y==0)x=5;
elsex=6;
printf(“\t%d\t%d\n”,x,z);
if(z=(y==0))
x=5;
x=4;
printf(“\t%d\t%d\n”,x,z);
if(x=z=y)x=4;
4.77请阅读的程序。
ints,t,a,b;
scanf(“%d,%d”,&
a,&
b);
s=1;
t=1;
if(a>
0)s=s+1;
b)t=s+t;
elseif(a==b)t=5;
elset=2*s;
printf(“s=%d,t=%d”,s,t);
为了使输出结果t=4,输入量a和b应满足的条件是_____。
4.78请阅读的程序。