您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > switch语句练习
第五章switch语句练习题1.若运行时输入: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);}2.根据以下嵌套的if语句所给条件,填写switch语句,使它完成相同的功能.(假设mark的取值在1~100之间的整数.)if语句:if(mark60)k=1;elseif(mark70)k=2;elseif(mark80)k=3;elseif(mark90)k=4;elseif(mark100)k=5;switch语句:switch([1]){[2]k=1;break;case6:k=2:break;case7:k=3;break;case8:k=4;break;[3]k=5;3.设有程序片段:switch(grade){case’A’:printf(“85-100\n”);case’B’:printf(“70-84n”);case’C’:printf(“60-69\n”);case’D’:printf(“60\n”);default:printf(“error!\n”);}若grade的值为’C’,则输出结果是_________.4.以下程序段的运行结果是_____.intx=1,y=0;switch(x){case1:switch(y){case0:printf(“**1**\n”);break;case1:printf(“**2**\n”);break;}case2:printf(“**3**\n”);}5.根据以下函数关系,对输入的每个x值,计算出相应的y值,请在程序的()内填正确内容xyx000=x10x10=x201020=x40-0.5x+20main(){intx,c,m;floaty;scanf(“%d”,&x);if(1)c=-1;elsec=(2);switch(c){case-1;y=0;break;case0:y=x;break;case1:y=10;break;case2:case3:y=-0.5*x+20;break;default:y=-2;}if(3)printf(“y=%f”,y);elseprintf(“error\n”);}6.以下程序的运行结果是()main(){inta=2,b=7,c=5;switch(a0){case1:switch(b0){case1:printf(“@”);break;case2:printf(“!”);break;}case0:switch(c==5){case0:printf(“*”);break;case1:printf(“#”);break;default:printf(“#”);break;}default:printf(“&”);}printf(“\n”);}7.请读程序:#includestdio.hmain(){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);}上面程序的运行结果是()8.假设奖金税率如下(a代表奖金,r代表税率)a500r=0%500=a1000r=5%1000=a2000r=8%2000=a3000r=10%3000=ar=15%以下程序对输入的一个奖金数,求税率和应交税款以及实得奖金数(扣除奖金税后).题中r代表税率,t代表税款,b代表实得奖金数.在()内填正确内容main(){floata,r,t,b;intc;scanf(“%f”,&a);if(a=3000)c=6;elsec=[1];switch(c){case0:r=0;break;case1:r=0.05;break;case2:case3:[2];break;case4:case5:r=0.1;break;case6: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(){floata,rl,r2,m;charb,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(){intyy,mm,len;printf(“year,month=”);scanf(“%d%d”,&yy,&mm);switch(mm){case1:case3:case5:case7:case8:case10:case12:[1];break;case4:case6:case9:case11:len=30;break;case2:if(yy%4==0&&yy%100!=0||yy%400==0)[2];else[3];default:printf(“inputerror”)break;}printf(“thelengthof%d%dis%d\n”,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(){inty,ml,dl,m2,d2;inti,dscanf(“%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;im2;i++)switch(i){case1:case3:case5:case7:case8:case10:case12:d+=31;break;case2:d=d+28+y;break;case4:case6:case9:case11:();}printf(“%d”,d+d2+1);}12.将以下程序段改用非嵌套的if语句实现ints,t,m;t=(int)(s/10);switch(t){case10:m=5,break;case9:m=4;break;case8:m=3,break;case7:m=2,break;case6:m=1,break;defaultm=0;}13.用switch编程实现:y=)0(1)0(0)0(1xxx14.将以下程序段改用嵌套的if语句实现ints,t,m;t=(int)(s/10);switch(t){case10:m=5,breakcase9:m=4,breakcase8:m=3,breakcase7:m=2,breakcase6:m=1,breakdefault:m=0}15.将以下语句改写成switch语句if((s0)&&(s=10))if((s=3)&&(s=6))x=2;elseif((s1)||(s8))x=3;elsex=1elsex=016.编程实现以下功能:读入两个运算数(datal和data2)及一个运算符(op),计算表达式data1opdata2的值,其中op可为+,-,*,/(用switch语句实现)17.编一程序,对于给定的一个百分制成绩,输出相应的五分制成绩,设90分以上为’A’80~89为’B’70~79为’C’60~69为’D’60以下’E’(用switch语句实现)
本文标题:switch语句练习
链接地址:https://www.777doc.com/doc-5051323 .html