第04章 选择结构文档格式.docx
《第04章 选择结构文档格式.docx》由会员分享,可在线阅读,更多相关《第04章 选择结构文档格式.docx(22页珍藏版)》请在冰点文库上搜索。
![第04章 选择结构文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/4/079ec99f-8eaa-4b34-bbab-e04c6316d4b0/079ec99f-8eaa-4b34-bbab-e04c6316d4b01.gif)
if(a<
c)
if(b<
d)x=2;
elsex=3;
elsex=6;
elsex=7;
A)1B)2C)3D)6
7.有一个函数关系见下表:
x
y=
x<
x-1
x=0
x
x>
x+1
下面程序中能正确表示上面关系的是______。
A)y=x+1
=0)
if(x==0)y=x;
B)elsey=x-1;
y=x-1;
if(x!
if(x>
0)y=x+1;
elsey=x;
C)if(x<
if(x<
0)y=x-1;
D)elsey=x+1;
y=x;
if(x<
elsey=x+1;
8.以下程序的输出结果是______。
inta=100,x=10,y=10,ok1=5,ok2=0;
y)
if(y!
=10)
if(!
ok1)
a=1;
else
if(ok2)a=10;
a=-1;
printf(“%d\n”,a);
}
A)1B)0C)–1D)值不确定
9.以下程序的输出结果是______。
intx=2,y=-1,z=2;
if(y<
0)z=0;
elsez+=1;
printf(“%d\n”,z);
10.为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:
else子句总量与______配对。
A)缩排位置相同的ifB)其之前的最近的if
C)其之后最近的ifD)同一行上的if
11.以下不正确的语句为______。
B)if(x=y)&
(x!
=0)x+=y;
=y)scanf(“%d”,&
x);
elsescanf(“%d”,&
y){x++;
y++;
12.请阅读以下程序:
#include“stdio.h”
main()
{
floata,b;
scanf(“%f”,&
a);
0.0)b=0.0;
elseif((a<
0.5)&
(a!
=2.0))b=1.0/(a+2.0);
elseif(a<
10.0)b=1.0/x;
elseb=10.0;
prinf(“%f\n”,y);
若运行时输入2.0<
回车>
,则上面程序的输出结果是______。
A)0.000000B)0.500000C)1.000000D)0.250000
二、程序阅读题
13.请阅读以下程序:
{
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”);
elseprintf(“PM”);
}
若运行时输入:
1605<
时,程序的运行结果是______。
14.若运行是输入:
5999<
,则以下程序的运行结果(保留小数点后一位)是______。
intx;
floaty;
if(“x>
=0&
=2999)y=18+0.12*x;
=3000&
=5999)y=36+0.6*x;
=6000&
=10000)y=54+0.3*x;
printf(“%6.1f”,y);
15.以下程序实现输出x,y,z三个数中的最大者。
请在_____内填入正确内容。
intx=4,y=6,z=7;
int__1__;
if(__2__)u=x;
elseu=y;
if(__3___)v=u;
elsev=z;
printf(“v=%d”,v);
16.以下程序实现:
输入三个整数,按从大到小的顺序进行输出。
请在_____内填入正确的内容。
intx,y,z,c;
scanf(“%d%d%d”,&
x,&
y,&
z);
if(__1__)
{c=y;
y=z;
z=c;
if(__2__)
{c=x;
x=z;
z=c};
if(__3__)
x=y;
y=c;
printf(“%d,%d,%d”,x,y,z);
17.以下程序对输入的两个整数,按从大到小顺序输出。
请在_____填入正确内容。
intx,y,z;
scanf(“%d,%d”,&
if(__1__)
{z=x;
__2__}
printf(“%d,%d”,x,y);
18.以下程序对输入的一个小写字母,将字母循环后移5人位置输出。
如’a’变成’f’,’w’变成’b’。
#include“stdio.h”
main()
charc;
c=getchar();
if(c>
=’a’&
c<
=’u’)__1__;
elseif(c>
=’v’&
=’z’)__2__;
putchar(c);
19.输入一个字符,如果它是一个大写字母,则把它变成小写字母;
如果它是一个小写字母,则把它变成大写字母;
其它字符不变。
charch;
scanf(“%c”,&
ch);
if(_____)ch=ch+32;
elseif(ch>
ch<
=’z’)_____;
printf(“%c”,ch);
20.以下程序的运行结果是_____。
inta,b,c;
ints,w,t;
s=w=t=0;
b=3;
c=3;
0)s=a+b;
if(b>
0)
if(c<
=0)w=a-b;
0)w=a-b;
elset=c;
printf(“%d%d%d”,s,w,t);
21.以下程序的运行结果是_____。
inta,b,c,d,x;
a=c=0;
b=1;
d=20;
if(a)d=d-10;
elseif(!
c)x=15
elsex=25;
printf(“%d\n”,d);
22.以下程序的运行结果是_____。
voidmain(void)
intx,y=1,z;
if(y!
=0)x=5;
printf(“\t%d\n”,x);
if(y==0)x=4;
elsex=5;
x=1;
if(y>
0)x=4;
printf(“\t%d\n”,x);
23.以下程序的运行结果是_____。
intx,y=-2,z=0;
if((z=y<
elseif(y==0)x=5;
elsex=6;
printf(“\t%d\t%d\n”,x,z);
if(z=(y==0))
x=5;
x=4;
printf(“\t%d\t%d\n”,x,z);
if(x=z=y)x=4;
24.请阅读的程序。
ints,t,a,b;
scanf(“%d,%d”,&
a,&
b);
s=1;
t=1;
if(a>
0)s=s+1;
b)t=s+t;
elseif(a==b)t=5;
elset=2*s;
printf(“s=%d,t=%d”,s,t);
为了使输出结果t=4,输入量a和b应满足的条件是_____。
25.请阅读的程序。
elseif(a==b)t=5;
为了使输出结果s=1,t=5,输入量a和b应满足的条件是_____。
26.以下程序的功能是计算一元二次方程ax2+bx+c=0的根。
#include“math.h”
floata,b,c,t,disc,twoa,term1,term2;
printf(“entera,b,c:
”);
scanf(“%f%f%f”,&
b,&
c);
if(__1__)
if(__2__)printf(“noanswerduetoinputerror\n”);
elseprintf(“thesinglerootis%f\n”,-c/b);
disc=b*b-4*a*c;
twoa=2a;
term1=-b/twoa;
t=abs(disc);
term2=sqrt(t)/twoa;
printf(“complexroot\nrealpart=%fimagpart=%f\n”,term1,term2);
elseprintf(“realroots\nroot1=%froot2=%f\n”,term1+term2,term1-term2);
27.以下程序根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型。
floata,b,c;
floats,area;
scanf(“%f%f%f”,&
if(__1__)/*a+b>
c&
|a+c>
b&
b+c>
a*/
s=(a+b+c)/2;
arae=sqrt(s*(s-a)*(s-b)*(s-c));
printf(“%f”,area);
if(__2__)/*a==b&
b==c&
a==c*/
printf(“等边三角形”);
elseif(__3__)
printf(“等腰三角形”);
/*a==b||a==c||b==c*/
elseif((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a))
printf(“直角三角形”);
elseprintf(“一般三角形”);
elseprintf(“不能组成三角形”);
28.某邮局对邮寄包裹有如下规定:
若包裹的长宽高任一尺寸超过1米或重量超过30千克,不予邮寄;
对可以邮寄的包裹每件收手续费0.2元,再上根据下表按重量wei计算的邮资:
重量(千克)
收费歀(元)
wei<
10
0.80
10<
=20
0.75
20<
=30
0.7
请在程序的_____内填入正确内容。
floatlen,wei,hei,wid,mon,r;
scanf(“%f%f%%f”,&
len,&
wid,&
hei,&
wei);
if(len>
1||wid>
1||hei>
1||wei>
30)__1__;
elseif(wei<
10)r=0.8;
=20)r=0.75;
=30)__2__;
if(r==-1)printf(“error\n”);
__3__;
printf(“%f”,mon);
29.某服装店经营套服,也单件出售。
若买的不少于50套,每套80元;
不足50套的每套90元;
只买上衣每件60元;
只买裤子每条45元。
以下程序的功能是读入所买上衣c和裤子t的件数,计算应付款m。
请在_____内填正确内容。
intc,t,m;
printf(“inputthenumberofcoatandtrousersyourwantbuy:
\n”);
scanf(“%d%d”,&
c,&
=50)m=c*m;
elsem=c*90;
if(__2__)
if(t>
=50)m=t*80+(c-t)*60;
elsem=t*90+(c-t)*60;
elseif(__3__)m=c*80+(t-c)*45;
elsem=c*90+(t-c)*45;
printf(“%d”,m;
)
30.以下程序的功能是判断输入的年份是否是闰年。
inty,f;
scanf(“%d”,&
if(y%400==0)f=1;
elseif(__1__)f=1;
else__2__;
if(f)printf(“%dis”,y);
elseprintf(“%disnot”,y);
printf(“aleapyear\n”);
31.以下程序针对输入截止日期(年:
year,月:
mend,日:
dend)和出生日期(yman,mman,dman),计算出实际年龄。
设有:
intyend,mend,dend,mman,dman,age;
age=yend-yman;
if(mend__1_),age--;
elseif(mend__2__mman&
dend__3__dman)
age--;
32.有四个数a,b,c,d,要求按从大到小的顺序输出。
inta,b,c,d,t;
scanf(“%d%d%d%d”,&
a,&
b,&
c,&
d);
b){t=a;
a=b;
b=t;
if(__1__){t=c;
c=d;
d=t;
c){t=a;
a=c;
c=t;
if(__2___){t=b;
b=c;
c=t}
d){t=b;
b=d;
d=t;
d){t=c;
c=d;
printf(“%d%d%d%d\n”,a,b,c,d);
33.以下程序的运行结果是_____。
inta=2,b=3,c;
c=a;
b)c=1;
elseif(a==b)c=0;
elsec=-1;
printf(“%d\n”,c);
34.当运行时输入:
1992<
,则以下程序的运行结果是_____。
inty,t;
t=((y%4==0&
y%100!
=0)||y%400==0)?
1:
0;
if(t)printf(“%dis”,y);
printf(“aleapyear”);
35.若运行时输入:
35/<
floatx,y;
charo;
doubler;
scanf(“%f%f%c”,&
x,&
y,&
o);
switch(o)
case‘+’:
r=x+y;
break;
case‘-’:
r=x-y;
case‘*’:
r=x*y;
case‘/’:
r=x/y;
printf(“%f”,r);
36.设有程序片段:
switch(grade)
case‘A’:
printf(“85-100\n”);
case‘B:
printf(“70-84\n”);
case‘C’:
printf(“60-69\n”);
case‘D’:
printf(“<
60\n”);
default:
printf(“error!
若grade的值为’C’,则输出结果是______。
37.以下程序的运行结果是______。
intx=1,y=0;
switch(x)
case1:
switch(y)
case0:
printf(“**1**\n”);
printf(“**2**\n”);
case2:
printf(“**3**\n”);
38.以下程序的运行结果是______。
inta=2,b=7,c=5;
switch(a>
switch(b<
printf(“@”);
casa2:
printf(“!
switch(c==5)
printf(“*”);
printf(“#”);
default:
printf(“&
printf(“\n”);
39.请读程序:
#include<
stdio.h>
intx=1,y=0,a=0,b=0;
case1:
a++;
b++;
printf(“a=%d,b=%d”,a,b);
40.以下程序用以计算y年m1月d1日与同年的m2月d2日之间的天数(m2>
=m1),并打印计算结果。
若m1=m2且d1=d2则计算1天。
在闰年中,2月有29天。
闰年的年号由以下方式确定:
该年号能被能被4整除但不能被100整除,或者该年号能被400整除则是闰年。
例如:
输入1997,2,27,3,10<
时,输出为12天。
表明从1997年2月27日到3月10日共有12天。
请在______内填入正确内容。
inty,m1,d1,m2,d2;
inti,d;
scanf(“%d%d%d,%d,%d”,&
m1,&
d1,&
m2,&
d2);
y=(y%4==0___1___y%100!
=0___2___y%40==0)?
d=0-d1;
for(i=m1;
i<
m2;
i++)
switch(i)
case3:
case5:
case7:
case8:
case10:
casae12:
d+=31;
break;
d=d+28+y;
case4:
case6:
case9:
case11:
______;
printf(“%d”,d+d2+1);
答案:
题号
1
2
3
4
5
6
7
8
9
11
12
C
B
D
13
14
15
16
17
4:
05PM
3636.4
1)uv2)x>
y3)u>
z
1)y<
z2)x<
3)x<
y
1)x<
2)