目录
第一题:编写一个基于switch语句的等级评估程序
第二题:学生成绩评定
第三题:计算圆的周长和面积
第四题:将三个整数按从大到小顺序输出
第五题:打印九九乘法表
第一题:编写一个基于switch语句的等级评估程序
描述:
编写一个程序,该程序接收用户输入的等级字符(A、B、C、D、E),并使用switch语句判断等级,输出对应的描述信息。等级对应的描述如下:
- A:优秀
- B:良好
- C:中等
- D:及格
- E:不及格
要求:
- 程序应提示用户输入等级字符。
- 用户输入的等级字符必须为大写字母(A、B、C、D、E)。
- 程序应使用switch语句来判断用户输入的等级,并输出对应的描述。
- 如果用户输入的字符不是A、B、C、D、E中的任意一个,程序应输出错误信息,并提示用户重新输入。
示例:
假设用户输入了等级字符"A",程序应输出"优秀"。
如果用户输入了非法的等级字符(如"F"),程序应输出错误信息,并提示用户重新输入。
提示:
- 使用
scanf
函数接收用户输入。 - 使用switch语句进行条件判断。
- 使用
printf
函数输出结果。 - 注意检查用户输入是否合法,如果不合法,应提示用户重新输入。
代码实现:
#include <stdio.h>
int main()
{
// 定义变量保存用户输入的等级
char grade;
int isValid = 0; // 标志变量,用于检查输入是否有效
// 循环直到用户输入了一个有效的等级字符
while (!isValid)
{
printf("请输入等级(A、B、C、D、E):\n");
scanf(" %c", &grade); // 注意%c前的空格,用于跳过任何之前的空白字符
// 检查输入是否合法
switch (grade)
{
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
isValid = 1; // 输入有效,设置标志变量
break;
default:
printf("输入等级有误,请重新输入\n");
break;
}
}
// 根据用户输入的等级输出对应的描述
switch (grade)
{
case 'A':
printf("优秀\n");
break;
case 'B':
printf("良好\n");
break;
case 'C':
printf("中等\n");
break;
case 'D':
printf("及格\n");
break;
case 'E':
printf("不及格\n");
break;
}
return 0;
}
运行结果:
第二题:学生成绩评定
描述:
编写一个程序,从屏幕上接收用户输入的学生成绩(0 - 100分),然后根据成绩范围进行评定。评定规则如下:
- 成绩小于60分为E
- 成绩在60到69分之间为D
- 成绩在70到79分之间为C
- 成绩在80到89分之间为B
- 成绩在90分以上为A
- 如果成绩小于0或大于100,则提示成绩输入出错
要求:
- 程序应提示用户输入成绩。
- 用户输入的成绩应为整数。
- 程序应根据成绩范围输出对应的评定结果。
- 如果成绩不在0到100的范围内,程序应提示用户输入有误。
示例:
假设用户输入的成绩为85,程序应输出“B”。
如果用户输入的成绩为-5,程序应提示“成绩输入出错”。
提示:
- 可以使用
scanf
函数从屏幕上读取用户输入的成绩。 - 使用
if-else if-else
语句根据成绩范围进行评定。
代码实现:
#include <stdio.h>
int main() {
int score;
printf("请输入学生的成绩(0 - 100):");
scanf("%d", &score);
if (score < 0 || score > 100) {
printf("成绩输入出错\n");
} else if (score < 60) {
printf("E\n");
} else if (score >= 60 && score < 70) {
printf("D\n");
} else if (score >= 70 && score < 80) {
printf("C\n");
} else if (score >= 80 && score < 90) {
printf("B\n");
} else {
printf("A\n");
}
return 0;
}
运行结果:
第三题:计算圆的周长和面积
计算圆的周长和面积
描述:
给定一个圆的半径,编写一个程序来计算并输出该圆的周长和面积。
要求:
- 程序应提示用户输入圆的半径。
- 用户输入的半径应为正实数。
- 程序应使用公式计算圆的周长和面积。
- 圆的周长公式:C = 2 * π * r
- 圆的面积公式:A = π * r^2
- 输出结果应保留两位小数。
示例:
假设用户输入的半径为5,则程序应输出:
周长:31.42
面积:78.54
提示:
- 可以使用
scanf
函数从屏幕上读取用户输入的半径。 - 使用数学常量
M_PI
来表示圆周率π。 - 使用
printf
函数输出结果,并使用%.2f
格式化输出保留两位小数。
代码实现:
#include <stdio.h>
#include <math.h>
int main() {
double radius, circumference, area;
// 提示用户输入半径
printf("请输入圆的半径:");
scanf("%lf", &radius);
// 计算圆的周长和面积
circumference = 2 * M_PI * radius;
area = M_PI * radius * radius;
// 输出结果,保留两位小数
printf("周长:%.2f\n", circumference);
printf("面积:%.2f\n", area);
return 0;
}
运行结果:
第四题:将三个整数按从大到小顺序输出
描述:
编写一个程序,接收用户输入的三个整数,并将这三个整数按照从大到小的顺序输出。
要求:
- 程序应提示用户分别输入三个整数。
- 输入的整数应为合法整数,不包含小数或字符。
- 程序应判断输入的整数是否有效,如果输入的不是整数,应提示用户重新输入。
- 程序应将输入的三个整数按照从大到小的顺序输出。
示例:
假设用户输入的三个整数分别为 5、10 和 8,程序应输出:
10 8 5
提示:
- 可以使用
scanf
函数从标准输入读取整数。 - 可以使用条件语句和临时变量来实现整数的比较和交换。
代码实现:
#include <stdio.h>
int main()
{
// 写代码将三个整数数按从大到小输出。
// 例如:
// 输入:2 3 1
// 输出:3 2 1
// 六种情况:a,b,c a,c,b b,a,c b,c,a c,b,a c,a,b
int a, b, c;
int temp;
// 提示用户输入三个整数
printf("请输入第一个整数:");
if (scanf("%d", &a) != 1)
{
printf("输入无效,请输入一个整数。\n");
return 1; // 输入无效时退出程序
}
printf("请输入第二个整数:");
if (scanf("%d", &b) != 1)
{
printf("输入无效,请输入一个整数。\n");
return 1; // 输入无效时退出程序
}
printf("请输入第三个整数:");
if (scanf("%d", &c) != 1)
{
printf("输入无效,请输入一个整数。\n");
return 1; // 输入无效时退出程序
}
// 使用条件语句和临时变量进行排序
if (a < b)
{
temp = a;
a = b;
b = temp;
}
if (a < c)
{
temp = a;
a = c;
c = temp;
}
if (b < c)
{
temp = b;
b = c;
c = temp;
}
// 输出排序后的整数
printf("从大到小排序后的整数为:%d %d %d\n", a, b, c);
return 0;
}
运行结果:
第五题:打印九九乘法表
描述:
九九乘法表是中国古代小学生学习乘法的一种方法,也被称为“九九歌”。现在,请你编写一个程序,用于打印出完整的九九乘法表。
要求:
- 打印出的九九乘法表应为9行9列,每行输出对应的乘法运算和结果。
- 每行输出的乘法运算应使用“×”表示乘法操作。
- 每行输出的乘法结果应与乘法运算之间用制表符(\t)分隔。
- 每行输出的末尾不应有多余的空格或制表符。
示例输出:
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
1×4=4 2×4=8 3×4=12 4×4=16
1×5=5 2×5=10 3×5=15 4×5=20 5×5=25
1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36
1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49
1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64
1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81
提示:
- 你可以使用两个嵌套的循环来遍历乘法表的行和列。
- 使用
printf
函数进行格式化输出,确保每行的乘法运算和结果之间使用制表符分隔。 - 注意每行的末尾不要有多余的制表符或空格。
代码实现:
#include <stdio.h>
int main() {
int i, j;
for (i = 1; i <= 9; i++) {
for (j = 1; j <= i; j++) {
printf("%d×%d=%d\t", j, i, i * j);
}
printf("\n"); // 换行
}
return 0;
}
运行结果: