选择结构练习题(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语句)

《C#零基础入门之百识百例》选择结构 if-else语句 -- 偶数判断

选择结构ifswitch

控制语句

转换器练习:跳过 if 和 else if 语句 [关闭]

第2节用if语句实现选择结构学习导案