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

版权声明:本文为weixin_60827079原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。