我需要三个中等难度的c语言练习题,内容包含对 switch,if,while的运用,练习中不要出现自定义函数,也不要出现随机数,数组
时间: 2024-10-21 22:14:47 浏览: 60
**练习题1:字母等级转换器**
创建一个程序,接收用户输入的一系列字母,然后根据ASCII值转换成对应的字母等级(A-F)。使用switch-case结构,同时利用if语句检查边界情况。
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char grade;
while ((grade = getchar()) != EOF) {
if (isalpha(grade)) {
int ascii_val = (int)grade;
switch (ascii_val - 65) {
case 0...5:
printf("%c is an A.", grade);
break;
case 6...10:
printf("%c is a B.", grade);
break;
case 11...15:
printf("%c is a C.", grade);
break;
case 16...20:
printf("%c is a D.", grade);
break;
default:
printf("%c is an F.", grade);
break;
}
} else {
printf("Invalid input: '%c'\n", grade);
}
}
return 0;
}
```
**练习题2:数字猜测游戏**
设计一个简单的猜数字游戏,计算机随机选择一个1到100之间的整数,玩家通过while循环和if条件判断猜测是否正确。每次猜测后,给出提示是“太大”、“太小”还是“恭喜,猜对了”。
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int generate_random_number();
int main() {
srand(time(0)); // 初始化随机数生成器
int secret_number = generate_random_number();
int guess;
printf("I'm thinking of a number between 1 and 100.\n");
while (1) {
printf("Guess the number: ");
scanf("%d", &guess);
if (guess < secret_number) {
printf("Too low! Guess again.\n");
} else if (guess > secret_number) {
printf("Too high! Guess again.\n");
} else {
printf("Congratulations, you guessed it!\n");
break;
}
}
return 0;
}
// 自动完成部分,生成1到100之间的随机数
int generate_random_number() {
return rand() % 100 + 1;
}
```
**练习题3:简单的计数器**
创建一个无限循环,利用while和break语句控制退出条件,当用户输入特定关键词(如"stop")时,退出循环。打印出用户输入次数。
```c
#include <stdio.h>
#include <string.h>
int main() {
char input[50];
int count = 0;
while (1) {
printf("Enter a word or type 'stop': ");
fgets(input, sizeof(input), stdin);
if (strcmp(input, "stop") == 0) {
break;
}
++count;
printf("You've entered '%s', count: %d\n", input, count);
}
printf("Total inputs: %d\n", count);
return 0;
}
```
阅读全文