此练习为本人自己练习完成的答案,答案方法不止一种,仅供参考!!!
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;
}