答案第四章选择结构程序设计Word格式.docx
《答案第四章选择结构程序设计Word格式.docx》由会员分享,可在线阅读,更多相关《答案第四章选择结构程序设计Word格式.docx(17页珍藏版)》请在冰豆网上搜索。
C)(ch>
=’Z’)D)(ch>
=’A’)AND(ch<
8.判断字符型变量ch为小写字母的表达式是D。
A)’a’<
=’z’B)(ch>
=a)&
=z)
=’a’)||(ch<
=’z’)D)(ch>
=’a’)&
=’z’)
9.以下if语句书写正确的是B。
A)if(x=0;
)B)if(x>
0)
printf(”%f”,x);
{x=x+1;
}
elseprintf(”%f”,-x);
C)if(x>
0);
D)if(x>
}{x=x+1;
printf(”%f”,x)}
10.分析以下程序:
{intx=5,a=0,b=0;
if(x=a+b)printf(“****\n”);
elseprintf(“####\n”);
以上程序D。
A)有语法错,不能通过编译B)通过编译,但不能连接
C)输出****D)输出####
11.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是A。
{intx;
scanf(“%d”,&
x);
if(x++>
5)printf(“%d”,x);
elseprintf(“%d\n”,x--);
A)7和5B)6和3C)7和4D)6和4
12.写出下面程序的执行结果D。
{intx,y=1;
if(y!
=0)x=5;
printf(“%d\t”,x);
if(y==0)x=3;
elsex=5;
printf(“%d\t\n”,x);
A)13B)15C)53D)55
13.写出下面程序的执行结果A。
(2级)
main()
{intx=1,y=1,z=0;
if(z<
if(y>
0)x=3;
printf("
%d\t"
x);
if(z=y<
elseif(y==0)x=5;
elsex=7;
z);
A)170B)370C)550D)151
14.假定所有变量均已正确说明,下列程序段运行后x的值是B。
a=b=c=0;
x=35;
if(!
a)x=-1;
elseif(b);
if(c)x=3;
elsex=4;
A)34B)4C)35D)3
15.写出下面程序的运行结果是。
{intx,y=1,z;
if(y!
x=%d\t"
if(y==0)x=3;
x=%d\t\n"
x=1;
0)x=3;
0)x=5;
%d\t\n"
if(x=y=z)x=3;
z=%d\t\n"
A)x=5x=5B)x=5x=5
x=1x=1
x=7z=0x=5z=0
x=3z=1x=3z=0
C)x=5x=5D)x=5x=5
x=5x=1
x=7z=0x=7z=0
16.若有以下函数关系
x<
0→y=2x
x>
0→y=x
x=0→y=x+1
下面程序段能正确表示以上关系的是改正后C。
A)y=2*x;
B)y=2*x;
if(x!
=0)if(x<
=0)
if(x>
0)y=x;
if(x==0)y=x+1;
elsey=x+1;
elsey=x;
=0)(D)y=x+1;
0)y=x;
if(x<
0)y=2*x;
elsey=2*x;
17.若有以下变量定义:
floatx;
inta,b;
则正确的switch语句是D。
A)switch(x)
{case1.0:
*\n"
);
case2.0:
**\n"
B)switch(x)
{case1,2:
case3:
C)switch(a+b)
{case1:
case2*a:
D)switch(a+b)
case1+2:
18.以下关于运算符优先顺序的描述正确的是C。
(02~03第一学期试题)
A)关系运算符<
算术运算符<
赋值运算符<
逻辑运算符
B)逻辑运算符<
关系运算符<
赋值运算符
C)赋值运算符<
逻辑运算符<
算术运算符
D)算术运算符<
19.能正确表示a>
=10或a<
=0的关系表达式是D。
A)a>
=10ora<
=0B)a>
=10|a<
=0
C)a>
=10&
a<
=0D)a>
=10||a<
20.以下不正确的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++;
21.当a=1,b=3,c=5,d=4时,执行完下面程序段后x的值为B。
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
22.以下if语句中语法错误的是C。
(01~02第二学期试题)
A)if(a>
b)printf(“%f”,a);
B)if(a>
elseprintf(“%f”,b);
C)if(a>
b)printf(“%f”,a)D)if(a>
b)printf(“%f”,b);
elseprintf(“%f”,a);
23.能表示整数x符合下面两个条件的语句是A。
(1)“能被4整除,但不能被100整除”.
(2)能被4整除,又能被400整除.
A)(x%4==0&
x%100!
=0)||x%400==0
B)(x%4==0||x%100!
x%400==0
C)(x%4==0&
x%400!
=0)||x%100==0
D)(x%100==0||x%4!
24.设有如下定义:
charch=’z’,则执行下面语句
后变量ch是值为:
D。
(03试题)
ch=(‘A’<
=ch&
ch<
=‘Z’)?
(ch+32):
ch
A)AB)aC)ZD)z
25.若I为整型变量,则下列程序段的运行结果为D。
I=322;
if(I%2==0)printf(“#####”)
elseprintf(“*****”);
A)#####B)#####*****
C)*****D)有语法错误,无法输出结果
26.已知intx=30,y=50,z=80;
以下语句执行后变量x、y、z的值分别为:
A。
if(x>
y||x<
z&
y>
z)
z=x;
x=y;
y=z;
A)x=50,y=80,z=80B)x=50,y=30,z=30
C)x=30,y=50,z=80D)x=80,y=30,z=50
27.C语言中,要求运算对象必须是整型的运算符是:
C。
(往届试题)
B)++C)%D)!
28.已知intx=30,y=50,z=80;
if(x>
{z=x;
29.以下程序的输出结果是A。
(04~05第二学期试题)
main(){intx=2,y=-1,z=2;
if(x<
y)if(y<
0)z=0;
elsez+=1;
printf(“%d\n”,z);
A)3B)2C)1D)0
30.设a、b和c是int型变量,且a=2,b=4,c=6,则下面表达式中值为0的是:
A)‘a’+‘b’B)a<
=b
C)a||b+c&
b-cD)!
((a<
b)&
!
c||1)
31.在C的if语句中,可用作判断的表达式是:
A)关系表达式B)逻辑表达式
C)算术表达式D)任意表达式
32.下面能正确表示变量a在区间[0,5]或(6,10)内的表达式为:
B。
A)0<
=a||a<
=5||6<
a||a<
10
B)0<
=a&
a<
=5||6<
a&
10
C)(0<
=a||a<
=5)&
(6<
a||a<
10)
D)0<
=5&
6<
33.在C语言中,多分支选择结构语句为:
switch(c)
{case常量表达式1:
语句1;
……
case常量表达式n-1:
语句n-1;
default语句n;
其中括号内表达式c的类型:
C。
A)可以是任意类型B)只能为整型
C)可以是整型或字符型D)可以为整型或实型
34.以下if语句语法正确的是:
0)
printf(“%f”,x)
elseprintf(“%f”,-x);
B)if(x>
{x=x+y;
printf(“%f”,x);
elseprintf(“%f”,-x);
C)if(x>
};
D)if(x>
printf(“%f”,x)}
35.为了表示关系x>
=y>
=z,应使用C语言表达式A。
A)(x>
=y)&
(y>
=z)B)(x>
=y)AND(y>
=z)
C)(x>
=z)D)(x>
36.若欲表示在if后a不等于0的关系,则能够正确表示这一关系的表达式为D。
A)a<
>
0B)!
aC)a=0D)a
37.下面程序的输出结果是B。
main()
{intx,y,z;
x=y=1;
z=x++-1;
printf(“%d,%d\t”,x,z);
z+=-x+++(++y||++z);
printf(%d,%d”,x,z);
A)2,03,-1B)2,13,0
C)2,02,1D)2,10,1
38.下面程序的输出结果是D。
{intx=40,y=4,z=4;
x=y==z;
printf(“%d”,x);
x=x==(y-z);
printf(%d”,x);
A)40B)41C)11D)10
39.若x=3,y=z=4,则下列表达式的值分别为。
(1)(z>
=x)?
1:
(2)z>
=y&
y>
=x
A)01B)11C)00D)10
40.若x=3,y=z=4,则下列表达式的值分别为。
(1)(z>
(2)y+=z,x*=y
A)024B)18C)08D)112
41.在以下一组运算符中,优先级最高的运算符是。
A)<
=B)=C)%D)&
42.以下程序的输出结果是。
inta=-1,b=4,k;
k=(++a<
(b--<
=0);
%d%d%d"
k,a,b);
A)104B)004C)103D)003
43.若已定义inta=25,b=14,c=19;
以下三项运算符(?
:
)所构成的语句的执行结果是。
a++<
=25&
b--<
=2&
c++?
***a=%d,b=%d,c=%d\n"
a,b,c):
###a=%d,b=%d,c=%d\n"
a,b,c)
A)(***a=25,b=14,c=19)B)(***a=26,b=13,c=19)
C)(###a=25,b=14,c=19)D)(###a=26,b=13,c=19)
二、填空题
1.在C语言中,对于if语句,else子句与if子句的配对约定是。
2.阅读下面程序,写出它的功能。
#include<
stdio.h>
{intlabel;
charc;
\nPleaseenter1number:
"
c=getchar();
while(c!
='
\n'
)
{if(c=='
.'
)label=1;
if(label==1)
\nfloat"
elseprintf("
\nint"
3.以下两条if语句可合并成一条if语句为。
if(a<
=b)x=1;
elsey=2;
if(a>
b)printf("
****y=%d\n"
y);
####x=%d\n"
4.以下程序的功能是计算一元二次方程ax2+bx+c=0的根,补足程序中空缺的语句。
math.h>
floata,b,c,_abs,_derta,_doublea,part1,part2;
entera,b,c:
scanf("
%f%f%f"
&
a,&
b,&
c);
if(
(1))
if(
(2))printf("
noanswerduetoinputerror\n"
thesinglerootis%f\n"
-c/b);
else
{_derta=b*b-4*a*c;
_doublea=2*a;
part1=-b/(2*a);
_abs=abs(_derta);
part2=sqrt(_abs)/_doublea;
if((3))
complexroot\nrealpart=%fimagepart=%f\n"
part1,part2);
printf("
realroots\nroot1=%froot2=%f\n"
part1+part2,part1-part2);
5.设有程序片段如下:
switch(class)
{case'
A'
GREAT!
\n"
case'
B'
GOOD!
C'
OK!
\n"
D'
NO!
default:
ERROR!
若class的值为'
则输出结果是。
6.以下程序段的运行结果是。
intx=1,y=0;
switch(x)
{case1:
switch(y)
{
case0:
x=1y=0\n"
break;
case1:
y=1\n"
case2:
x=2\n"
7.根据以下if语句写出与其功能相同的switch语句(x的值在0~100之间)。
if语句:
if(x<
60)m=1;
elseif(x<
70)m=2;
elseif(x<
80)m=3;
90)m=4;
100)m=5;
switch语句:
switch(
(1))
(2)m=1;
case6:
m=2;
case7:
m=3;
case8:
m=4;
(3)m=5;
8.输入3个实数a,b,c要求按从大到小的顺序输出三数。
{floata,b,c,t;
scanf(“%f,%f,%f”,&
if(a<
b)
{t=a;
__
(1)__b=t;
if(__
(2)__)
a=c;
c=t;
if(b<
c)
{__(3)__b=c;
printf(“%f,%f,%f”,a,b,c);
9.输入一个字符,如果是大写字母,则把其变成小写字母;
如果是小写字母,则变成大写字母;
其它字符不变。
请在()内填入缺省的内容。
main()
{charch;
scanf(“%c”,&
ch);
if(___
(1)____)ch=ch+32;
elseif(ch>
=’a’&
=‘z’)(__
(2)___);
printf(”%c\n”,ch);
10.以下程序的运行结果是:
_________。
main()
{inta=2,b=3,c;
c=a;
if(a>
b)c=1;
elseif(a==b)c=0;
elsec=-1;
printf(“%d\n”,c);
11.以下程序的运行结果是:
{intx;
x=5;
if(++x>
5)printf(“x=%d”,x);
elseprintf(“x=%d”,x--);
12.在C语言中提供的条件运算符"
?
的功能是.(1级)
13.条件表达式a?
b:
c,其中a,b,c是三个运算分量.当运算分量a的值为真,则,否则.(1级)
14.在C语言中的逻辑运算符的优先级是高于高于.(1级)
15.main()
{inta,b,c;
a=b=c=1;
a+=b;
b+=c;
c+=a;
(1)%d\n"
a>
b?
a:
b);
(2)%d\n"
c?
a--;
c++);
(a>
=b>
=c)?
AA"
CC"
\na=%d,b=%d,c=%d\n"
a,b,c);
运行结果为
(1)。
(2)。
16.用C语言描述下列命题(1级)
(1)a小于b或小于c,
(2)a和b都大于c
(3)a或b中有一个小于c
(4)a是奇数。
17.main()
{intx=1,y=1,z=1;
y=y+z;
x=x+y;
%d"
x<
y?
y:
x++:
y++);
运行结果为。
18.mian()
{intx,y,z;
x=3;
y=z=4;
(x.y=.=