第4章 选择结构程序设计 练习题OKWord格式.docx
《第4章 选择结构程序设计 练习题OKWord格式.docx》由会员分享,可在线阅读,更多相关《第4章 选择结构程序设计 练习题OKWord格式.docx(19页珍藏版)》请在冰豆网上搜索。
y)&
(c>
’B’);
A)0B)1C)假D)真
9.表示关系x<
=y<
=z的c语言表达式为()。
A)(x<
=y)&
(y<
=z)B)(x<
=y)AND(y<
=z)C)(x<
=z)D)(x<
=z)
10.能正确表示逻辑关系:
“a≥10或a≤0”的C语言表达式是()。
A)a>
=10ora<
=0B)a>
=0|a<
=10C)a>
=10&
a<
=0D)a>
=10‖a<
=0
11.判断char型变量c1为小写字母的表达式为()。
A)’a’<
=c1<
=’z’B)(c1>
=’a’)&
(c1<
=’z’)C)(’a’<
=c1)AND(‘z’>
=c1)D)(c1>
=’a’)&
=’’z’)
12.有定义charc;
c=getchar();
判断字符变量c为大写字母的正确表达式为()。
A)‘A’=<
=’Z’B)c>
=‘A’&
c<
=’ZC)A=<
=ZD)c>
=A&
=Z
13.判断x的值为奇数,以下不能满足要求的表达式是()。
A)x%2==1B)!
(x%2)C)x%2D)!
(x%2==0)
14.设a为整型变量,则不能正确表达数学关系10<a<15的C语言表达式是()。
A)10<
15B)a==11||a==12||a==13||a==14C)a>
10&
15D)!
(a<
=10)&
(a>
=15)
15.为表示逻辑表达式79<
X<
90,应使用的C语言表达式是()。
A)(X>
79)&
(X<
90)B)(X>
79)!
=(X<
90)C)79<
90D)(X>
79)||(X<
90)
16.运算符+、!
=、!
、%中,优先级最高的运算符是()
A)+B)!
=C)!
D)%
17.C语言对嵌套if语句的规定是:
else语句总是与()配对。
A)其之前最近的ifB)第一个if
C)缩进位置相同的ifD)其之前最近的且尚未配对的if
18.在C语言语句中,用来决定分支流程的表达式可以是()。
A)可用任意表达式 B)只能用逻辑表达式或关系表达式
C)只能用逻辑表达式 D)只能用关系表达式
19.C语言中()表示逻辑“真”。
A)trueB)1C)非零的值D)false
20.若k是int型变量,且有下面的程序段,输出结果是()。
intk;
k=-3;
if(k<
=0)printf(“####”);
elseprintf(“&
”);
A)####B)&
C)####&
D)有语法错误,无输出结果
21.以下程序段的输出结果是()。
inta=10,b=50,c=30;
if(a<
b)
a=b;
b=c;
c=a;
printf("
a=%2db=%2dc=%2d\n"
a,b,c);
A)a=10b=50c=10B)a=10b=30c=10C)a=50b=30c=10D)a=50b=30c=50
22.以下程序段的输出结果是()。
if(a>
b)
A)a=10b=50c=10B)a=10b=30c=10C)a=50b=30c=10D)a=50b=30c=50
23.输入1,-1,以下程序的输出结果是(B);
如果输入-1,1,则以下程序的输出结果是(C)。
main(){
intx,y,z=1;
scanf("
%d,%d"
&
x,&
y)
;
if(x<
y)
if(y<
0)z=0;
elsez=z+1;
printf(“%d\n”,z);
}
A)0B)1C)2D)3
24.以下程序段的输出结果是()。
#include<
stdio.h>
main(){
inta=4,b=5,t=0;
if(a<
b){t=a;
b=t;
}
printf("
a=%d,b=%d\n"
a,b);
}
A)a=5,b=4B)a=4,b=5C)a=5,b=0D)语法错误
25.若有定义:
floatx;
inta,b;
则以下正确的switch语句是()
A)switch(x)
{case1.0:
printf(“*\n”);
case2.0:
printf(“$\n”);
B)switch(x)
{case1:
case2:
C)switch(a+b)
D)switch(a+b)
26.若inti=10;
执行下列程序后,变量i的正确结果是()。
switch(i){case9:
i+=1;
break;
case10:
case11:
default:
A)13B)12C)11D)10
27.若inti=10;
A)13B)12C)11D)10
28.若inti=10;
A)13B)12C)11D)10
29.main()
{intx=0,a=0,b=0;
switch(x){
case0:
b++;
case1:
a++;
case2:
b++;
printf(“a=%d,b=%d\n”,a,b);
该程序的输出结果是()。
A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2
二、阅读程序,写出运行结果
1.
main(){
intr;
scanf(“%d”,&
r);
floatnum=3.14,a=0;
if(r>
0)a=2*num*r;
resultis%f\n"
a);
输入2,运行结果为:
resultis12.560000
输入-2,运行结果为:
resultis0.000000
2.
main(){
inta=12,b=-34,c=56,min;
min=a;
if(min>
b)min=b;
c)min=c;
min=%d"
min);
运行结果为:
min=-34
3.
inta=1,b=3,c=5;
if(c==a+b)
printf("
yes\n"
);
else
no\n"
no
4.
intx=5,a=1,b=1;
if(x!
=a+b)
x=%d\n"
x-1);
a+b=%d\n"
a+b);
x=4
5.
#include<
main(){
charc=getchar();
if((‘0’<
=c)&
(c<
=’9’))
printf(“YES”);
printf(“NO”);
若输入5,运行结果为:
YES
若输入c,运行结果为:
NO
6.
#include<
inta=10,b=50,c=30;
c=a;
a=%db=%dc=%d\n"
a,b,c);
a=10b=30c=10
7.
intx=10,y=10;
if(x<
9)
%d\n"
y);
x--;
if(x>
=9)
y+1);
y+2);
11
8.
inta=6,b=6;
5)
{a*=2;
b/=2;
a/=2;
b*=2;
a=%db=%d\n"
a=12b=6
9.
main(){
floatc=3.0,d=4.0;
if(c>
d)
c=5.0;
else
if(c==d)
c=6.0;
c=7.0;
printf(“%.1f\n”,c);
7.0
10.
main()
{intm;
scanf("
%d"
&
m);
if(m>
=0)
{if(m%2==0)
printf("
%disapositiveeven\n"
m);
else
%disapositiveodd\n"
else
{if(m%2==0)
%disanegativeeven\n"
else
%disanegativeodd\n"
}
若键入-9,则运行结果为:
-9isanegativeodd
11.
intx=2,y=-1,z=5;
if(y<
0)
z=0;
z=z+1;
5
12.
inta=5,b=6,c=7,z=10;
if(a>
if(b>
c)
printf(“%d\n”,z+10);
printf(“%d\n”,z+20);
10
13.
inta=2,b=3,c=1;
if(a>
c)
printf(“%d\n”,a);
printf(“%d\n”,c);
printf(“over!
\n”);
}
运行结果为:
over!
14.
inta=0,b=1,d=20;
if(a)
d=d-10;
if(!
d=15;
elsed=25;
d=%d\n"
d);
d=25
15.
inta,b,c,x,y;
a=b=c=0;
x=10;
if(a)x-=5;
elseif(b)
y=20;
elseif(!
y=45;
x+=5;
x);
y=%d\n"
x=10
y=45
16.
floata,b,c,t;
a=3;
b=7;
c=1;
{t=a;
a=c;
c=t;
{t=b;
%5.2f,%5.2f,%5.2f"
1.00,3.00,7.00
17.
inta=0,b=0,c=0;
switch(c)
{case0:
a,b);
a=2,b=2
18.
main(){
charch;
ch=getchar();
switch(ch)
{case‘A’:
printf(“%c”,’A’);
case‘B’:
printf(“%c”,’B’);
default:
printf(“%s\n”,”other”);
当从键盘输入字母A时,运行结果为:
AB
当从键盘输入字母a时,运行结果为:
other
19.
inta=1,b=0;
scanf(“%d”,&
a);
switch(a)
{case1:
b=2;
break;
default:
b=10;
b);
若键盘输入1,运行结果为:
2
若键盘输入5,运行结果为:
10
20.
inta=10,b=11,c=0;
switch(a%3)
c++;
switch(b%2)
{case0:
c);
三、编程题
1、输入两个数,输出较大的数。
intmain(){
inta,b,max;
printf(“Pleaseinputtwonumbers
:
”)
scanf(“%d%d”,&
a,&
b);
max=a;
max=b;
printf(“max=%d\n”,max);
return0
2、输入一个整数,判断其奇偶性。
voidmain(){
intm;
if(m%2==0)
%disaeven\n"
else
%disaodd\n"
3、输入一个正整数,判断其是否为3和7的公倍数,若是输出“Yes”,否则输出“No”。
if(m%3==0&
m%7==0)
Yes\n"
No\n"
4、输入一个字符,如果是大写英文字母,将其转换为小写字母并输出,如果不是,则原样输出。
intmain(){
charc1;
c1=getchar();
if(c1>
=’A’&
c1<
=’Z’)
c1=c1+32;
putchar(c1);
return0;
5、输入一个字符,如果是英文字母,输出“abcd”,如果是数字字符,输出“####”,如果都不是,输出“other”。
charc;
c=getchar();
if(c>
=’Z’||c>
=’a’&
=’z’)
printf(“abcd”);
elseif(c>
=’0’&
=’9’)
printf(“####”);
else
printf(“other”);
6、输入三个数,按照从小到大的顺序输出。
intmain(){
scanf(“%f%f%f”,&
b,&
c);
%f,%f,%f"
7、函数y=f(x)表示如下,编程实现输入一个x值,输出y值。
2x+1(x<
y=0(x=0)
2x-1(x>
voidmain(){
intx,y;
x);
0)
y=2*x+1;
elseif(x>
y=2*x-1;
y=0;
printf(“%d”,y);
8、编程,输入每个月的上网时间,计算上网费用,资费标准如下:
inthour;
floatfee;
printf(“pleaseinputhour:
scanf(“%d”,&
hour);
if(hour<
=10)
fee=30;
elseif(hour<
=50)
fee=3*hour;
else
fee=hour*2.5;
printf(“Thetotalfeeis%f”,fee);
9、神州行用户无月租费,话费每分钟0.6元,全球通用户月租费50元,话费每分钟0.4元。
输入一个月的通话时间,分别计算出两种方式的费用,判断哪一种合适。
#include<
floatt,szx,qqt;
printf(“请输入您的通话时间:
scanf(“%f,”,&
t);
szx=0.6*t;
qqt=50+0.4*t;
if(szx>
qqt)
printf(“建议使用全球通”);
printf(“建议使用神州行);
10、要求按照考试成绩的等级输出百分制分数段,A等为85分以上,B等为70~84分,C等为60~69分,D等为60分以下。
成绩的等级由键盘输入。
chargrade;
scanf("
%c"
grade);
Yourscore:
"
switch(grade)
{case'
A'
85~100\n"
case'
B'
70~84\n"
C'
60~69\n"
case'
D'
<
60\n"
enterdataerror!
\n"