C语言switch语句的应用练习题

此练习为本人自己练习完成的答案,答案方法不止一种,仅供参考!!!

1-1 五级制成绩 (8 分)

任务描述
五级制成绩表示法可以这样来理解,A代表[90-100]、B代表[80-90)、C代表[70-80)、D代表[60-70)、E代表[0-60)。 给出五级制成绩(一个字符),请输出这个字符所代表的分数范围。

输入格式:
一个大写的英文字符,代表五级制成绩。

输出格式:
在一行中输出该成绩所表示的整数成绩范围区间,如果该字符不在五级制定义范围之内,输出:ERROR。

输入样例1:

A

输出样例1:

[90-100]

输入样例2:

D

输出样例2:

[60-70)

输入样例3:

X

输出样例3:

ERROR

答案:

#include <stdio.h>
int main()
{
	char rank;
	scanf("%c",&rank);
	switch (rank)
	{
		case 'A': printf("[90-100]");break;
		case 'B': printf("[80-90)");break;
		case 'C': printf("[70-80)");break;
		case 'D': printf("[60-70)");break;
		case 'E': printf("[0-60)");break;
		default: printf("ERROR\n");
	}
	return 0; 
}

1-2 求该月天数 (10 分)

求一个月有多少天,用switch完成。

输入格式:
输入两个整数,如2021 9,第一个表示年,第二个表示月,输出该月的天数。需要考虑闰年。如果月份错误,输出ERROR。

输出格式:

31

输入样例:
在这里给出一组输入。例如:

2021 9

输出样例:
在这里给出相应的输出。例如:

30

答案:

#include<stdio.h>
int main(){
	int year,mouth;
	scanf("%d %d",&year,&mouth);
	switch(mouth){
		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:
			if((year%4==0 && year%100!=0)||year%400==0)
            {
				printf("29");
			}
			else
            {
				printf("28");
			}
            break;
        default: printf("ERROR\n");
	}
    return 0;
}

1-3 两个数的简单计算器 (15 分)

本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加、减、乘、除或求余运算。题目保证输入和输出均不超过整型范围。

输入格式:
输入整数A、符号ch和整数B。

输出格式:
根据符号ch,在一行中输出A ch B的值。

如果ch是+,则输出A+B的值

如果ch是-,则输出A-B的值

如果ch是*,则输出A * B的值

如果ch是/,则输出A/B的值(题目保证B不为0,并且结果整除整还是整数)

如果ch是%,则输出A%B的值

如果ch是其他符号,则直接输出ERROR

输入样例1:

12+4=16

输出样例1:

12+4=16

输入样例2:

12&4

输出样例2:

ERROR

答案:

#include <stdio.h>
int main()
{
	int first,second,result;
	char sign;
	scanf("%d%c%d",&first,&sign,&second);
	switch (sign)
	{
		case '+': result=first+second;printf("%d%c%d=%d",first,sign,second,result);break;
		case '-': result=first-second;printf("%d%c%d=%d",first,sign,second,result);break;
		case '*': result=first*second;printf("%d%c%d=%d",first,sign,second,result);break;
		case '/': result=first/second;printf("%d%c%d=%d",first,sign,second,result);break;
		case '%': result=first%second;printf("%d%c%d=%d",first,sign,second,result);break;
		default: printf("ERROR\n");
	}
	return 0; 
}
  • 1
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

F1nAl_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值