最新3微机练习选择结构有答案.docx
《最新3微机练习选择结构有答案.docx》由会员分享,可在线阅读,更多相关《最新3微机练习选择结构有答案.docx(15页珍藏版)》请在冰豆网上搜索。
![最新3微机练习选择结构有答案.docx](https://file1.bdocx.com/fileroot1/2022-10/29/5610eafa-3c88-499f-9ad0-9109c5c281b7/5610eafa-3c88-499f-9ad0-9109c5c281b71.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",c