选择结构练习题(if语句if else语句switch语句)
Posted 张夷陵
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了选择结构练习题(if语句if else语句switch语句)相关的知识,希望对你有一定的参考价值。
一、if语句练习
1.输入三个整数,按从小到大的顺序输出
思路:if语句冒泡排序3次
#include<stdio.h>
int main()
int a,b,c,t;
scanf("%d%d%d",&a,&b,&c);
if(a>b)t=a;a=b;b=t;
if(b>c)t=c;c=b;b=t;
if(a>b)t=a;a=b;b=t;
printf("a=%d,b=%d,c=%d",a,b,c);
return 0;
二、if else语句练习
1.请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。(Monday、Tuesday、Wednesday、Thursday、Friday、Saturday、Sunday)
思路:
1.当输入MWF时,三个首字母无重复,直接输出星期几
2.当输入ST时,继续读入下一个字母,根据下一个字母输出星期几
注意:当需要使用多个输入函数接收字符时需要注意的是:多使用一次getchar()接收回车换行符
#include<stdio.h>
int main()
char c;
c=getchar();
getchar();
if(c=='M')printf("星期一");
else if(c=='W')printf("星期三");
else if(c=='F')printf("星期五");
else
printf("请输入第二个字母:");
char c2=getchar();
getchar();
if(c2=='u')printf(c=='T'?"星期二":"星期天");
else printf(c2=='h'?"星期四":"星期六");
return 0;
2.输入图书的定价和数量,计算购书金额并输出。其中,图书销售策略为:正常情况下按九折出售,超过10本按八五折出售,超过100本按八折出售。
思路:傻瓜题,注意定价类型和购书金额类型,scanf函数输入时要求严格匹配,double型使用%lf格式,float型使用%f格式
#include<stdio.h>
int main()
double p,sp;
int n;
printf("请输入定价和数量:");
scanf("%lf%d",&p,&n);
if(n>100)sp=n*p*0.8;
else if(n>10)sp=n*p*0.85;
else sp=n*p*0.9;
printf("购书金额为:%.2lf",sp);
return 0;
3.从键盘输入某年某月某日,输出这个日期是该年的第几天。
思路:定义数组存储每个月份的天数,从1月累加到当前月份天数。
注意当年份为闰年时设置2月为29天。
#include<stdio.h>
int main()
int y,m,d;
printf("请依次输入年月日:");
scanf("%d%d%d",&y,&m,&d);
int a[13]=0,31,28,31,30,31,30,31,31,30,31,30,31;
if((y%4==0&&y%100!=0)||y%400==0)
a[2]=29;
int today=d,i;
for(i=1;i<m;i++)
today+=a[i];
printf("该日期是该年的第%d天\\n",today);
return 0;
4.输入一个人的月收入,输出应交的个人所得税,起征点为 5000 元,税率如下:
级数 | 应税所得额 m=月收入-5000 | 税率(%) |
1 | m<=2500 | 3 |
2 | m>2500 且m<=5500 | 10 |
3 | m>5500 且m<=10000 | 20 |
4 | m>10000 且 m<=35000 | 25 |
思路:先输入月收入值,然后用公式(应税所得额 m=月收入-5000)求出需要缴税的金额,如果m的值<=0输出“不需要缴税”,否则个人所得税=m*r
(1)m<=2500:r=0.03
(2)m<=5500:r=0.1
(3)m<=10000:r=0.2
(4)m<=35000:r=0.25
#include<stdio.h>
int main()
float in;
scanf("%f",&in);
float m=in-5000;
if(m<=0)printf("不需要缴税");
else if(m<=2500)printf("%f",m*0.03);
else if(m<=5500)printf("%f",2500*0.03+(m-2500)*0.1);
else if(m<=10000)printf("%f",2500*0.03+3000*0.1+(m-5500)*0.2);
else if(m<=35000)printf("%f",2500*0.03+3000*0.1+4500*0.2+(m-10000)*0.25);
return 0;
三、switch语句练习
1.从键盘输入某年某月,输出该年份该月的天数。
思路:1、3、5、7、8、10、12是31天,4、6、9、11是30天,2月平年28天、闰年29天
#include<stdio.h>
int main()
int y,m;
printf("请依次输入年月:");
scanf("%d%d",&y,&m);
switch(m)
case 1:case 3:case 5:case 7:case 8:case 10:case 12:
printf("31天");break;
case 4:case 6:case 9:case 11:
printf("30天");break;
case 2:printf((y%4==0&&y%100!=0)||y%400==0?"29天":"28天");
return 0;
2.输入2个数,显示这两个数的四则运算结果。
思路:根据操作符进行匹配case,匹配上后输出计算结果
#include<stdio.h>
int main()
float a,b;
char c;
scanf("%f%c%f",&a,&c,&b);
switch(c)
case '+':printf("%f",a+b);break;
case '-':printf("%f",a-b);break;
case '*':printf("%f",a*b);break;
case '/':printf("%f",a/b);break;
return 0;
以上是关于选择结构练习题(if语句if else语句switch语句)的主要内容,如果未能解决你的问题,请参考以下文章
选择结构练习题(if语句if else语句switch语句)