第04章 选择结构.docx

上传人:b****8 文档编号:9854287 上传时间:2023-02-07 格式:DOCX 页数:22 大小:21.01KB
下载 相关 举报
第04章 选择结构.docx_第1页
第1页 / 共22页
第04章 选择结构.docx_第2页
第2页 / 共22页
第04章 选择结构.docx_第3页
第3页 / 共22页
第04章 选择结构.docx_第4页
第4页 / 共22页
第04章 选择结构.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

第04章 选择结构.docx

《第04章 选择结构.docx》由会员分享,可在线阅读,更多相关《第04章 选择结构.docx(22页珍藏版)》请在冰豆网上搜索。

第04章 选择结构.docx

第04章选择结构

一、选择题

1.以下不正确的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(x

2.已知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

3.以下if语句语法正确的是______。

A)if(x>0)

printf(“%f”,x);

elseprintf(“%f”,-x);

B)if(x>0)

{x=x+y;printf(“%f”,x);}

C)if(x>0)

{x=x+y;printf(“%f”,x);};

elesprintf(“%f”,-x);

D)if(x>0)

{x=x+y;printf(“%f”,x)}

elseprintf(“%f”,-x);

4.请阅读以下程序:

main()

{

inta=5,b=0,c=0;

if(a=b+c)printf(“***\n”);

elseprintf(“$$$\n”);

}

以上程序______。

A)有语法错误不能通过编译B)可以通过编译但不能通过连接

C)输出***D)输出$$$

5.以下程序的运行结果是______。

main()

{

intm=5;

if(m++>5)printf(“%d\n”,m);

elseprintf(“%d\n”,m--);

}

A)4B)5C)6D)7

6.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是______。

if(a

if(c

else

if(a

if(b

elsex=3;

elsex=6;

elsex=7;

A)1B)2C)3D)6

7.有一个函数关系见下表:

x

y=

x<0

x-1

x=0

x

x>0

x+1

下面程序中能正确表示上面关系的是______。

A)y=x+1

if(x>=0)

if(x==0)y=x;

B)elsey=x-1;y=x-1;

if(x!

=0)

if(x>0)y=x+1;

elsey=x;

C)if(x<=0)

if(x<0)y=x-1;

elsey=x;

D)elsey=x+1;y=x;

if(x<=0)

if(x<0)y=x-1;

elsey=x+1;

8.以下程序的输出结果是______。

main()

{

inta=100,x=10,y=10,ok1=5,ok2=0;

if(x

if(y!

=10)

if(!

ok1)

a=1;

else

if(ok2)a=10;

a=-1;

printf(“%d\n”,a);

}

A)1B)0C)–1D)值不确定

9.以下程序的输出结果是______。

main()

{

intx=2,y=-1,z=2;

if(x

if(y<0)z=0;

elsez+=1;

printf(“%d\n”,z);

}

10.为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:

else子句总量与______配对。

A)缩排位置相同的ifB)其之前的最近的if

C)其之后最近的ifD)同一行上的if

11.以下不正确的语句为______。

A)if(x>y);

B)if(x=y)&&(x!

=0)x+=y;

C)if(x!

=y)scanf(“%d”,&x);elsescanf(“%d”,&y);

D)if(x

12.请阅读以下程序:

#include“stdio.h”

main()

floata,b;

scanf(“%f”,&a);

if(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.请阅读以下程序:

main()

{

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<回车>,则以下程序的运行结果(保留小数点后一位)是______。

main()

{

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);

}

15.以下程序实现输出x,y,z三个数中的最大者。

请在_____内填入正确内容。

main()

{

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.以下程序实现:

输入三个整数,按从大到小的顺序进行输出。

请在_____内填入正确的内容。

main()

{

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__)

{c=x;x=y;y=c;}

printf(“%d,%d,%d”,x,y,z);

}

17.以下程序对输入的两个整数,按从大到小顺序输出。

请在_____填入正确内容。

main()

intx,y,z;

scanf(“%d,%d”,&x,&y);

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’&&c<=’z’)__2__;

putchar(c);

}

19.输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其它字符不变。

请在_____内填入正确内容。

main()

{

charch;

scanf(“%c”,&ch);

if(_____)ch=ch+32;

elseif(ch>=’a’&&ch<=’z’)_____;

printf(“%c”,ch);

}

20.以下程序的运行结果是_____。

main()

{

inta,b,c;

ints,w,t;

s=w=t=0;

a=-1;b=3;c=3;

if(c>0)s=a+b;

if(a<=0)

{

if(b>0)

if(c<=0)w=a-b;

}

elseif(c>0)w=a-b;

elset=c;

printf(“%d%d%d”,s,w,t);

}

21.以下程序的运行结果是_____。

main()

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);

22.以下程序的运行结果是_____。

#include“stdio.h”

voidmain(void)

{

intx,y=1,z;

if(y!

=0)x=5;

printf(“\t%d\n”,x);

if(y==0)x=4;

elsex=5;

printf(“\t%d\n”,x);

x=1;

if(y<0)

if(y>0)x=4;

elsex=5;

printf(“\t%d\n”,x);

}

23.以下程序的运行结果是_____。

#include“stdio.h”

voidmain(void)

{

intx,y=-2,z=0;

if((z=y<0)x=4;

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;

printf(“\t%d\t%d\n”,x,z);

}

24.请阅读的程序。

main()

{

ints,t,a,b;

scanf(“%d,%d”,&a,&b);

s=1;

t=1;

if(a>0)s=s+1;

if(a>b)t=s+t;

elseif(a==b)t=5;

elset=2*s;

printf(“s=%d,t=%d”,s,t);

}

为了使输出结果t=4,输入量a和b应满足的条件是_____。

25.请阅读的程序。

main()

{

ints,t,a,b;

scanf(“%d,%d”,&a,&b);

s=1;

t=1;

if(a>0)s=s+1;

if(a>b)t=s+t;

elseif(a==b)t=5;

elset=2*s;

printf(“s=%d,t=%d”,s,t);

}

为了使输出结果s=1,t=5,输入量a和b应满足的条件是_____。

26.以下程序的功能是计算一元二次方程ax2+bx+c=0的根。

请在_____内填入正确的内容。

#include“math.h”

main()

{

floata,b,c,t,disc,twoa,term1,term2;

printf(“entera,b,c:

”);

scanf(“%f%f%f”,&a,&b,&c);

if(__1__)

if(__2__)printf(“noanswerduetoinputerror\n”);

elseprintf(“thesinglerootis%f\n”,-c/b);

else

{

disc=b*b-4*a*c;

twoa=2a;

term1=-b/twoa;

t=abs(disc);

term2=sqrt(t)/twoa;

if(__3__)

printf(“complexroot\nrealpart=%fimagpart=%f\n”,term1,term2);

elseprintf(“realroots\nroot1=%froot2=%f\n”,term1+term2,term1-term2);

}

}

27.以下程序根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型。

请在_____内填入正确的内容。

#include“stdio.h”

main()

{

floata,b,c;

floats,area;

scanf(“%f%f%f”,&a,&b,&c);

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

0.75

20

0.7

请在程序的_____内填入正确内容。

main()

{

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;

elseif(wei<=20)r=0.75;

elseif(wei<=30)__2__;

if(r==-1)printf(“error\n”);

else

{

__3__;printf(“%f”,mon);

}

}

29.某服装店经营套服,也单件出售。

若买的不少于50套,每套80元;不足50套的每套90元;只买上衣每件60元;只买裤子每条45元。

以下程序的功能是读入所买上衣c和裤子t的件数,计算应付款m。

请在_____内填正确内容。

main()

{

intc,t,m;

printf(“inputthenumberofcoatandtrousersyourwantbuy:

\n”);

scanf(“%d%d”,&c,&t);

if(__1__)

if(c>=50)m=c*m;

elsem=c*90;

else

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.以下程序的功能是判断输入的年份是否是闰年。

请在_____内填入正确内容。

main()

{

inty,f;

scanf(“%d”,&y);

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,要求按从大到小的顺序输出。

请在_____内填入正确内容。

main()

inta,b,c,d,t;

scanf(“%d%d%d%d”,&a,&b,&c,&d);

if(a

if(__1__){t=c;c=d;d=t;}

if(a

if(__2___){t=b;b=c;c=t}

if(b

if(c

printf(“%d%d%d%d\n”,a,b,c,d);

33.以下程序的运行结果是_____。

main()

{

inta=2,b=3,c;

c=a;

if(a>b)c=1;

elseif(a==b)c=0;

elsec=-1;

printf(“%d\n”,c);

}

34.当运行时输入:

1992<回车>,则以下程序的运行结果是_____。

main()

{

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”);

}

35.若运行时输入:

35/<回车>,则以下程序的运行结果是_____。

main()

floatx,y;

charo;

doubler;

scanf(“%f%f%c”,&x,&y,&o);

switch(o)

{

case‘+’:

r=x+y;break;

case‘-’:

r=x-y;break;

case‘*’:

r=x*y;break;

case‘/’:

r=x/y;break;

}

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!

\n”);

}

若grade的值为’C’,则输出结果是______。

37.以下程序的运行结果是______。

intx=1,y=0;

switch(x)

{

case1:

switch(y)

{

case0:

printf(“**1**\n”);break;

case1:

printf(“**2**\n”);break;

}

case2:

printf(“**3**\n”);

}

38.以下程序的运行结果是______。

main()

{

inta=2,b=7,c=5;

switch(a>0)

{

case1:

switch(b<0)

{

case1:

printf(“@”);break;

casa2:

printf(“!

”);break;

}

case0:

switch(c==5)

{

case0:

printf(“*”);break;

case1:

printf(“#”);break;

default:

printf(“#”);break;

}

default:

printf(“&”);

}

printf(“\n”);

}

39.请读程序:

#include

{

intx=1,y=0,a=0,b=0;

switch(x)

{

case1:

switch(y)

{

case0:

a++;break;

case1:

b++;break;

}

case2:

a++;b++;break;

}

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天。

请在______内填入正确内容。

main()

{

inty,m1,d1,m2,d2;

inti,d;

scanf(“%d%d%d,%d,%d”,&y,&m1,&d1,&m2,&d2);

y=(y%4==0___1___y%100!

=0___2___y%40==0)?

1:

0;

d=0-d1;

for(i=m1;i

switch(i)

{

case1:

case3:

case5:

case7:

case8:

case10:

casae12:

d+=31;

break;

case2:

d=d+28+y;

break;

case4:

case6:

case9:

case11:

______;

}

printf(“%d”,d+d2+1);

}

 

答案:

一、选择题

题号

1

2

3

4

5

6

7

8

9

10

11

12

C

B

B

D

C

B

C

C

B

B

B

B

二、程序阅读题

题号

13

14

15

16

17

4:

05PM

3636.4

1)uv2)x>y3)u>z

1)y

3)x

1)x

2)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1