admin 管理员组

文章数量: 1184232


2024年3月9日发(作者:表白网页制作)

第五章switch语句练习题

1.若运行时输入:3 5/<回车>,则以下程序的运行结果是________

main( )

{float x,y;

char o;

double r;

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

2. 根据以下嵌套的if语句所给条件,填写switch语句,使它完成相同的功能.

(假设mark的取值在1~100之间的整数.)

if语句:

if(mark<60)k=1;

else if(mark<70)k=2;

else if(mark<80)k=3;

else if(mark<90)k=4;

else if(mark<100)k=5;

switch语句:

switch( [1] )

{[2] k=1; break;

case 6: k=2: break;

case 7: k=3; break;

case 8: k=4; break;

[3] k=5;

3.设有程序片段:

switch(grade)

{case ’A’:printf(“85-100n”);

case ’B’:printf(“70-84n”);

case ’C’:printf(“60-69n”);

case ’D’:printf(“<60n”);

default:printf(“error!n”);}

若grade的值为’C’,则输出结果是_________.

4.以下程序段的运行结果是_____.

int x=1,y=0;

switch(x)

{case 1:

switch(y)

{case 0:printf(“**1**n”);break;

case 1:printf(“**2**n”);break;}

case 2:printf(“**3**n”);}

5.根据以下函数关系,对输入的每个x值,计算出相应的y值,请在程序的( )

内填正确内容

x y

x<0 0

0<=x<10 x

10<=x<20 10

20<=x<40 -0.5x+20

main( )

{int x,c,m;

float y;

scanf(“%d”,&x);

if(1)c=-1;

else c=(2);

switch(c)

{case -1;y=0;break;

case 0:y=x;break;

case 1:y=10;break;

case 2:

case 3:y=-0.5*x+20;break;

default:y=-2;}

if(3)printf(“y=%f”,y);

else printf(“errorn”);}

6.以下程序的运行结果是( )

main( )

{int a=2,b=7,c=5;

switch(a>0)

{case 1:switch(b<0)

{case 1:printf(“@”);break;

case 2:printf(“!”);break;}

case 0:switch(c= =5)

{case 0:printf(“*”);break;

case 1:printf(“#”);break;

default:printf(“#”);break;}

default:printf(“&”);

}printf(“n”);}

7.请读程序:

#include

main( )

{int x=1,y=0,a=0,b=0;

switch(x)

{case 1:

switch(y)

{case 0:a++;break;

case 1:b++;break;}

case 2:a++;b++;break;}

printf(“a=%d,b=%d”,a,b);}

上面程序的运行结果是( )

8.假设奖金税率如下(a代表奖金,r代表税率)

a<500 r=0%

500<=a<1000 r=5%

1000<=a<2000 r=8%

2000<=a<3000 r=10%

3000<=a r=15%

以下程序对输入的一个奖金数,求税率和应交税款以及实得奖金数(扣除奖金税后).题中r代表税率,t代表税款,b代表实得奖金数.在( )内填正确内容

main( )

{float a,r,t,b;

int c;

scanf(“%f”,&a);

if(a>=3000)c=6;

else c=[1];

switch(c)

{case 0:r=0;break;

case 1:r=0.05;break;

case 2:

case 3:[2];break;

case 4:

case 5:r=0.1;break;

case 6:r=0.15;break;}

t=a*r;

b=a-t;

printf(“r=%f,t=%f,b=%f”,r,t,b);}

9.某个自动加油站有’a’,b’,’c’三种汽油,单价分别为1.50,1.35,1.18(元/千克),也提供了“自己加”或“协助加”两个服务等级,这样用户可以得到5%或10%的优惠.本程序针对用户输入加油量a,汽油品种b和服务类型c(‘f’--自动,’m’--

自己,’e’--协助 ),输出应付款m请在[ ]内填入正确内容.

main( )

{float a,rl,r2,m;

char b,c;

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

switch(b)

{case ’a’:r1=1.5;break;

case ’b’:[ 1];break;

case ’c’:rl=1.18;break;}

switch(c)

{case ’f’:r2=0;break;

case ’m’:r2=0.05;break;

case [2]:r2=0.1;break;}

m=[3];

printf(“%f”,m);}

10.以下程序计算某年某月有几天.其中判别闰年的条件是:能被4整除但不能被100整除的年是闰年,能被400整除的年也是闰年.请在[ ]内填入正确内容.

main( )

{

int yy,mm,len;

printf(“year,month=”);

scanf(“%d %d”,&yy,&mm);

switch(mm)

{case 1:case 3:case 5:case 7:

case 8:case 10:case 12:[1];break;

case 4:case 6: case 9:case 11:len=30;break;

case 2:

if(yy%4= =0&&yy%100!=0||yy%400= =0)[2];

else[3];

default:printf(“input error”)

break;}

printf(“the length of %d %dis%dn”,yy,mm,len);}

11.以下程序用以计算y年ml月dl日与同年的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( )

{int y,ml,dl,m2,d2;

int i ,d

scanf(“%d,%d,%d,%d,%d,”&y,&ml,&dl,&m2,&d2);

y=(y%4= =0( )y%100!=0( )y%400= =0))1:0;

d=0-d1;

for(i=m1;i

switch(i)

{case 1:case 3:case 5:case 7:

case 8:case 10:case 12:

d+=31;

break;

case2:d=d+28+y;

break;

case4:case6:case9:case11:

( );}

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

12.将以下程序段改用非嵌套的if语句实现

int s,t,m;

t=(int)(s/10);

switch(t)

{case 10:m=5,break;

case 9:m=4;break;

case 8:m=3,break;

case 7:m=2,break;

case 6:m=1,break;

default m=0;}

13.用switch编程实现:

1(x0)y=0(x0)

1(x0)14.将以下程序段改用嵌套的if语句实现int s,t,m;

t=(int)(s/10);

switch(t)

{case 10:m=5,break

case 9:m=4,break

case 8:m=3,break

case 7:m=2,break

case 6:m=1,break

default:m=0}

15.将以下语句改写成switch语句

if((s>0)&&(s<=10))

if((s>=3)&&(s<=6))x=2;

else if((s>1)||(s>8))x=3;

else x=1

else x=0

16.编程实现以下功能:读入两个运算数(datal和data2)及一个运算符(op),计算表达式data1 op data2的值,其中op可为+,-,*,/(用switch语句实现)

17.编一程序,对于给定的一个百分制成绩,输出相应的五分制成绩,设90分以上为’A’80~89为’B’70~79为’C’60~69为’D’60以下’E’(用switch语句实现)


本文标签: 程序 语句 输出 代表 输入