c语言第五章 选择结构程序设计习题册答案Word格式.docx
《c语言第五章 选择结构程序设计习题册答案Word格式.docx》由会员分享,可在线阅读,更多相关《c语言第五章 选择结构程序设计习题册答案Word格式.docx(12页珍藏版)》请在冰豆网上搜索。
b>
c的值是0。
10、当a=5,b=4,c=2时,表达式a>
b!
=c的值是1。
11、已知A=7.5,B=2,C=3.6,表达式A>
B&
C>
A||A<
!
B的值是0。
12、若a=6,b=4,c=2,则表达式!
(a-b)+c-1&
b+c/2的值是1。
13、有intx,y,z;
且x=3,y=-4,z=5,则表达式(x&
y)==(x||z)的值为1。
14、有intx,y,z;
且x=3,y=-4,z=5,则以下表达式的值为1。
!
(x>
y)+(y!
=z)||(x+y)&
(y-z)
15、有inta=3,b=4,c=5,x,y;
,则以下表达式的值为0。
(x=a)&
(y=b)&
16、if(!
k)a=3;
语句中的!
k可以改写为k==0,使其功能不变。
二、选择题
1、逻辑运算符两侧运算对象的数据类型(D )。
A)只能是0或1
B)只能是0或非0正数
C)只能是整型或字符型数据
D)可以是任何类型的数据
2、以下关于运算符优先顺序的描述中正确的是(C )。
A)关系运算符<
算术运算符<
赋值运算符<
逻辑与运算符
B)逻辑与运算符<
关系运算符<
赋值运算符
C)赋值运算符<
逻辑与运算符<
算术运算符
D)算术运算符<
3、下列运算符中优先级最高的是(B )。
A)<
B)+C)&
D)!
=
4、为判断字符变量c的值不是数字也不是字母时,应采用下述表达式(D)。
A)c<
=48||c>
=57&
c<
=65||c>
=90&
=97||c>
=122
B)!
(c<
=122)
C)c>
=48&
=57||c>
=65&
=90||c>
=97&
D)!
(c>
5、能正确表示“当x的取值在[1,100]和[200,300]范围内为真,否则为假”的表达式是(C )。
A)(x>
=1)&
(x<
=100)&
=200)&
=300)
B)(x>
=1)||(x<
=100)||(x>
=200)||(x<
C)(x>
D)(x>
6、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是(D)。
A)‘x’&
‘y’
B)x<
=y
C)x||y+z&
y-z
D)!
((x<
y)&
z||1)
7、已知x=43,ch=‘A’,y=0;
则表达式(x>
=y&
ch<
‘B’&
y)的值是(C)。
A)0B)语法错C)1D)“假”
8、设有:
inta=1,b=2,c=3,d=4,m=2,n=2;
执行(m=a>
b)&
(n=c>
d)后n的值为(B)。
A)1B)2C)3D)4
9、以下不正确的if语句形式是( C )。
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++;
}
10、已知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
11、以下if语句语法正确的是( B ) 。
0)
printf(“%f”,x)
elseprintf(“%f”,-x);
B)B)
{x=x+y;
printf(“%f”,x);
}
C)C)
};
D)D)
printf(“%f”,x)}
12、请阅读以下程序:
main()
{
inta=5,b=5,c=0;
if(a==b+c)printf(“***\n”);
elseprintf(“$$$\n”);
以下程序( C )。
A)有语法错不能通过编译B)可以通过编译但不能通过连接
C)输出***D)输出$$$
三、写出下列程序的运行结果
1、若运行时输入:
2<
回车>
,则以下程序的运行结果是2ndclasspostageis14p。
#include<
stdio.h>
voidmain(void)
charClass;
printf(“Enter1for1stclasspostor2for2ndpost”);
scanf(“%c”,&
Class);
if(Class==‘1’)
printf(“1stclasspostageis19p”);
else
printf(“2ndclasspostageis14p”);
2、若运行时输入:
4.4<
,则以下程序的运行结果是SellingPrice(0.30)$5.72。
floatCostPrice,SellingPrice;
printf(“EnterCostPrice$:
”);
scanf(“%f”,&
CostPrice);
if(CostPrice>
=5)
{
SellingPrice=CostPrice+CostPrice*0.25;
printf(“SellingPrice(0.25)$%6.2f”,SellingPrice);
}
SellingPrice=CostPrice+CostPrice*0.30;
printf(“SellingPrice(0.30)$%6.2f”,SellingPrice);
3、以下程序的运行结果是F。
if(2*2==5<
2*2==4)
print(“T”);
printf(“F”);
能力提高(B)
一、选择题
1、若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是(D )。
A)A%2==1B)!
(A%2==0)C)!
(A%2)D)A%2
2、下列运算符中优先级最低的(A),优先级最高的是(C)。
A)?
:
B)&
C)+D)!
3、请阅读以下程序:
inta=5,b=0,c=0;
if(a=b+c)printf(“***\n”);
以下程序( D )。
4、以下程序的运行结果是( C )。
intm=5;
if(m++>
5)printf(“%d\n”,m);
elseprintf(“%d\n”,m--);
A)4B)5C)6D)7
二、根据程序的功能,将以下程序补充完整
1、以下程序对输入的四个整数,按从小到大的顺序输出。
请在内填入正确内容。
intt,a,b,c,d;
printf(“inputa,b,c,d:
”)
scanf(“%d,%d,%d,%d”,&
a,&
b,&
c,&
d);
if(a>
b){t=a;
a=b;
b=t;
if(a>
c){t=a;
a=c;
c=t;
if(a>
d){t=a;
a=d;
d=t;
if(b>
c){t=b;
b=c;
}
d){t=b;
b=d;
if(c>
d){t=c;
c=d;
printf(“%d,%d,%d,%d”,a,b,c,d);
三、编程:
1、试编程判断输入的正整数是否既是5又是7的整倍数。
若是,则输出yes;
否则输出no。
2、编制程序要求输入整数x、y和z,若x2+y2+z2大于1000,则输出x2+y2+z2千位以上的数字,否则输出三数之和。
3、编写程序,输入三角型的三条边长,求其面积。
注意:
对于不合理的边长输入要输出数据错误的提示信息。
1、参考答案
main()
{intx;
if(x%5==0&
x%7==0)
printf(“yes”);
else
printf(“no”);
2、参考答案
{intx,y,z,a,b;
scanf(“%d%d%d”,&
x,&
y,&
z);
a=x*x+y*y*z*z;
1000)
{b=a/1000;
printf(“%d”,b);
elseprintf(“%d”,x+y+z);
3、参考答案
#include<
math.h>
{floata,b,c,s,area;
scanf(“%f,%f,%f”,&
c);
if(a+b>
c&
b+c>
a&
a+c>
b)
{s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf(“area=%7.2f\n”,area);
printf(“bunengzhuchengsanjiaoxing\n”);
第2讲
1、在if语句中又包含一个或多个if语句称为if语句的嵌套。
2、为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:
else子句总是与其之前最近的未配对