3微机练习选择结构有答案.docx
《3微机练习选择结构有答案.docx》由会员分享,可在线阅读,更多相关《3微机练习选择结构有答案.docx(15页珍藏版)》请在冰豆网上搜索。
![3微机练习选择结构有答案.docx](https://file1.bdocx.com/fileroot1/2023-1/31/80740e0a-992d-45da-8a4f-3b7a6f6e503b/80740e0a-992d-45da-8a4f-3b7a6f6e503b1.gif)
3微机练习选择结构有答案
一、选择题
1.逻辑运算符两侧运算对象的数据类型。
A.只能是0或1
B.只能是0或非0正数
C.只能是整型或字符型数据
D.可以是任何类型的数据
2.下列关系表达式中结果为假的是。
A.0!
=1B.2<=8
C.(a=2*2)==2D.y=(2+2)==4
3.下列运算符中优先级最低的是。
A.?
:
B.+=C.>=D.==
4.能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是。
A.(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)
B.(x>=1)||(x<=10)||(x>=200)||(x<=210)
C.(x>=1)&&(x<=10)||(x>=200)&&(x<=210)
D.(x>=1)||(x<=10)&&(x>=200)||(x<=210)
5.判断char型变量ch是否为大写字母的正确表达式是。
A.‘A’<=ch<=‘Z’B.(ch>=‘A’)&(ch<=‘Z’)
C.(ch>=‘A’)&&(ch<=‘Z’)D.(ch>=‘A’)AND(ch<=‘Z’)
6.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是。
A.‘x’&&‘y’
B.x<=y
C.x||y+z&&y-z
D.!
((xz||1)
7.设有说明语句:
intx=43,y=0;charch=‘A’;则表达式(x>=y&&ch<‘B’&&!
y)的值是。
A.0B.语法错C.1D.假
8.若希望当A的值为奇数时,表达式的值为“真”;当A的值为偶数时,表达式的值为“假”。
则以下不能满足要求的表达式是。
A.A%2==1B.!
(A%2==0)
C.!
(A%2)D.A%2
9.设有说明语句:
inta=1,b=2,c=3,d=4,m=2,n=2;,则执行(m=a>b)&&(n=c>d)后n的值为。
A.1B.2C.3D.0
10.以下程序的运行结果是
#include
intmain()
{inta,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf("%d,%d",a,b);
return0;
}
A.6,1B.2,1C.6,0D.2,0
11.以下不正确的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(x12.在C语言中,紧跟在关键字if后有一对圆括号里的表达式。
A.只能用逻辑表达式
B.只能用关系表达式
C.只能用逻辑表达式或关系表达式
D.可以是任意表达式
13.已知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
14.以下程序。
#include
intmain()
{inta=5,b=0,c=0;
if(a=b+c)printf("***\n");
elseprintf("$$$\n");
return0;
}
A.有语法错误不能通过编译B.可以通过编译但不能通过连接
C.输出***D.输出$$$
15.当a=1、b=3、c=5、d=4时,执行以下程序段后x的值是。
if(a
if(celse
if(aif(belsex=3;
elsex=6;
elsex=7;
A.1B.2C.3D.6
16.以下程序的输出是。
#include
intmain()
{intx=2,y=-1,z=2;
if(xif(y<0)z=0;
elsez+=1;
printf("%d\n",z);
return0;
}
A.3B.2C.1D.0
17.若有条件表达式(exp)?
a++:
b--,则以下表达式中能完全等价于表达式(exp)的是。
A.(exp==0)B.(exp!
=0)C.(exp==1)D.(exp!
=1)
18.若运行时为变量x输入12,则以下程序的运行结果是。
#include
intmain()
{intx,y;
scanf("%d",&x);
y=x>12?
x+10:
x-12;
printf("%d\n",y);
return0;
}
A.0B.22C.12D.10
19.若w、x、y、z、m均为int型变量,则执行下面语句后的m值是。
w=1;x=2;y=3;z=4;
m=(ww:
x;
m=(mm:
y;
m=(mm:
z;
A.1B.2C.3D.4
20.若w=1、x=2、y=3、z=4,则条件表达式ww:
yy:
z的值为。
A.4B.3C.2D.1
21.C语言中的switch语句形式如下所示,关键字switch后一对圆括号中表达式exp的类型。
switch(exp)
{case常量表达式1:
语句1;
……
case常量表达式n:
语句n;
default:
语句n+1;
}
A.可以是整型或字符型B.只能是int类型
C.只能是字符型D.只能是整型或实型
答案:
1.D2.C3.B4.C5.C6.D7.C8.C9.B10.B
11.C12.D13.B14.D15.B16.B17.B18.A19.A20.D
21.A
二、填空题
1.当a=3,b=2,c=1时,表达式f=a>b>c的值是。
2.以下程序的运行结果是。
#include
intmain()
{intx=1,y,z;
x*=3+2;
printf("%d\t",x);
x*=y=z=5;
printf("%d\t",x);
x=y==z;
printf("%d\n",x);
return0;
}
3.在C语言中,表示逻辑“真”值用。
4.设y为int型变量,请写出描述“y是奇数”的表达式。
5.C语言提供的3种逻辑运算符是、、。
6.若x、y、z均为int型变量,则描述“x、y和z中有两个为负数”的表达式是。
7.设a、b、c均为int型变量且a=7.5,b=2,c=3.6,则表达式a>b&&c>a||a
c>b的值是。
8.若有条件“29.设m、n、a、b、c均为int型变量且m=2,n=1,a=1,b=2,c=3,则执行表达式d=(m=a!
=b)&&(n=b>c)后,n的值为;m的值为。
10.将以下两条if语句合并成一条if语句为。
语句1:
if(a>b)scanf(“%d”,&a);
elsescanf(“%d”,&b);
语句2:
if(a<=b)m++;
elsen++;
11.满足以下要求的逻辑表达式是。
要求:
判断坐标为(x,y)的点,在内径为a,外径为b,中心点在0点上的圆环内的表达式。
12.若运行以下程序时输入:
1605<回车>,则以下程序的运行结果是。
#include
intmain()
{intt,h,m;
scanf("%d",&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\n");
elseprintf("PM\n");
return0;
}
13.以下程序的功能是:
输入圆的半径r和运算标志m后,按照运算标志进行表中指定的计算。
请填空。
运算标志m
计算
a
面积
c
周长
b
二者均计算
#include
#definepi3.14159
intmain()
{charm;
floatr,c,a;
printf("inputmarkacorb&&r\n");
scanf("%c%f",&m,&r);
if()
{a=pi*r*r;printf("areais%f",a);}
if()
{c=2*pi*r;printf("circleis%f",c);}
if()
{a=pi*r*r;c=2*pi*r;printf("area&&circleare%f%f",a,c);}
return0;
}
14.若运行时输入:
5999<回车>,则以下程序的运行结果是(保留小数点后一位)。
#include
intmain()
{intx;
floaty;
scanf("%d",&x);
if(x>=0&&x<=2999)y=18+0.12*x;
if(x>=3000&&x<=5999)y=36+0.6*x;
if(x>=6000&&x<=10000)y=54+0.3*x;
printf("%6.1f",y);
return0;
}
15.以下程序的功能是:
输出x、y、z三个数中的最大者。
请填空。
#include
intmain()
{intx=4,y=6,z=7;
int;
if()u=x;elseu=y;
if()v=u;elsev=z;
printf("v=%d",v);
return0;
}
16.以下程序的功能是:
输入3个整数,按从大到小的顺序进行输出。
请填空。
#include
intmain()
{intx,y,z,c;
scanf("%d%d%d",&x,&y,&z);
if(){c=y;y=z;z=c;}
if(){c=x;x=z;z=c;}
if(){c=x;x=y;y=c;}
printf("%d,%d,%d\n",x,y,z);
return0;
}
17.以下程序的功能是:
输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其他字母不变。
请填空。
#include
intmain()
{charch;
scanf("%c",&ch);
if()ch=ch+32;
elseif(ch>='a'&&ch<='z');
printf("%c\n",ch);
return0;
}
18.以下程序的运行结果是。
#include
intmain()
{inta,b,c,d,x;
a=c=0;
b=1;
d=20;
if(a)d=d-10;
elseif(!
b)
if(!
c)x=15;
elsex=25;
printf("%d\n",d);
return0;
}
19.下面程序的功能是:
根据表中给定的函数关系,对输入的每个x值计算出相应的y值。
请填空。
x
y
2x(x+2)
-12x
x≤-1
x-1
#include
intmain()
{intx,y;
scanf("%d",&x);
if()y=x*(x+2);
elseif()y=2*x;
elseif(x<=-1)y=x-1;
else;
if(y!
=-1)printf("%d\n",y);
elseprintf("error\n");
return0;
}
20.若运行以下程序时输入:
-2<回车>,则程序的输出结果是。
#include
intmain()
{inta,b;
scanf("%d",&a);
b=(a>=0)?
a:
-a;
printf("b=%d\n",b);
return0;
}
21.若运行以下程序时输入字母为Q,则程序的运行结果是。
#include
intmain()
{charch;
scanf("%c",&ch);
ch=(ch>='A'&&ch<='Z')?
(ch+32):
ch;
ch=(ch>='a'&&ch<='z')?
(ch-32):
ch;
printf("%c\n",ch);
return0;
}
22.若运行以下程序时输入:
1992<回车>,则程序的运行结果是。
#include
intmain()
{inty,t;
scanf("%d",&y);
t=((y%4==0&&y%100!
=0)||y%400==0)?
1:
0;
if(t)printf("%dis",y);
elseprintf("%disnot",y);
printf("aleapyear\n");
return0;
}
23.若x、y、z均已正确定义且x=1,y=2,z=3,则执行以下if语句后,x、y、z中的值分别是、、。
if(x>z)
y=x;x=z;z=y;
24.将以下含有switch语句的程序段改写成对应的含有非嵌套if语句的程序段。
请填空。
含有switch语句的程序段:
intx,y,m;
y=(int)(x/10);
switch(y)
{case10:
m=5;break;
case9:
m=4;break;
case8:
m=3;break;
case7:
m=2;break;
case6:
m=1;break;
default:
m=0;
}
含有非嵌套if语句的程序段:
intx,m;
if()m=5;
if(x<100&&x>=90)m=4;
if(x<90&&x>=80)m=3;
if(x<80&&x>=70)m=2;
if(x<70&&x>=60)m=1;
if()
25.根据以下给出的嵌套if语句,填写对应的switch语句,使它完成相同的功能。
(假设mark的取值在1—100之间。
)
if语句:
if(mar<60)k=1;
elseif(mark<70)k=2;
elseif(mark<80)k=3;
elseif(mark<90)k=4;
elseif(mark<=100)k=5;
switch语句:
switch()
{k=1;break;
case6:
k=2;break;
case7:
k=3;break;
case8:
k=4;break;
k=5;
}
26.以下程序的输出结果是。
#include
intmain()
{intx=1,y=0;
switch(x)
{case1:
switch(y)
{case0:
printf("**1**\n");break;
case2:
printf("**2**\n");break;
}
case2:
printf("**3**\n");
}
return0;
}
27.下面程序的功能是:
根据表4-6中给定的函数关系,对输入的每个x值,计算出相应的y值。
请填空。
x
y
x<0
0
0<=x<10
x
10<=x<20
10
20<=x<40
-0.5x+20
floaty;
scanf("%d",&x);
if()c=-1;
elsec=;
switch(c)
{case-1:
y=0;break;
case0:
y=x;break;
case1:
y=10;break;
case2:
case3:
y=-0.5*x+20;break;
default:
y=-2;
8、晶体的形状多种多样,但都很有规则。
有的是立方体,有的像金字塔,有的像一簇簇的针……有的晶体较大,肉眼可见,有的较小,要在放大镜或显微镜下才能看见。
}
19、细胞也是生物最基本的功能单位,生物的呼吸、消化、排泄、生长、发育、繁殖、遗传等生命活动都是通过细胞进行的。
if()printf("y=%f\n",y);
答:
无色无味,比空气重,不支持燃烧。
elseprintf("error\n");
return0;
答:
①可以节约能源;②减少对环境的污染;③降低成本。
}
答案:
1.0
答:
①利用微生物的作用,我们可以生产酒、醋、酸奶、馒头和面包等食品。
②土壤中的微生物可以分解动植物的尸体,使它们变成植物需要的营养素。
③在工业生产和医药卫生中也都离不开微生物。
2.5□□□□□□□□25□□□□□□□□1
一、填空:
3.非0数字
4.y%2==1
5.&&||!
19、夏季是观察星座的好季节,天空中有许多亮星,其中人们称之为“夏季大三角”的是天津四、织女星和牛郎星。
它们分别属于天鹅座、天琴座、天鹰座。
6.(x<0&&y<0)||(x<0&&z<0)||(y<0&&z<0)
7.0
8.(x>2&&x<3)||x<-10
答:
这个垃圾场不仅要能填埋垃圾,而且要能防止周围环境和地下水的污染。
9.01
8、铁生锈的原因是什么?
人们怎样防止铁生锈?
10.if(a>b){scanf(“%d”,&a);n++;}
else{scanf(“%d”,&b);m++;}
11.x*x+y*y>a*a&&x*x+y*y
12.4:
05PM
13.m==’a’
m==’c’
m==’b’
14.3635.4
15.u,vx>yu>z
16.y17.ch>=’A’&&ch<=’Z’
ch=ch-32
18.20
19.x>2&&x<=10x>-1&&x<=2y=-1
20.b=2
21.Q
22.1992isaleapyear
23.322
24.x>=100&&x<110
x<60||x>=110m=0;
25.mark/10
case0:
case1:
case2:
case3:
case4:
case5:
case9:
case10:
26.**1**
**3**
27.x<0
x/10
y!
=-2