|
|
一、基础练习题
1. 输入一个字符,原样输出
要求:从键盘输入一个字符,直接打印出来。
#include <stdio.h>
int main() {
char ch;
// 输入字符
scanf("%c", &ch);
// 输出字符
printf("你输入的字符是:%c\n", ch);
return 0;
}
2. 输入字符,输出它的 ASCII 码值
知识点:字符在 C 语言中本质是 ASCII 数字,%c打印字符,%d打印数字。
#include <stdio.h>
int main() {
char ch;
scanf("%c", &ch);
printf("字符:%c\nASCII码:%d\n", ch, ch);
return 0;
}
3. 判断输入字符是大写 / 小写 / 数字 / 其他
知识点:ASCII 范围
大写字母:A-Z → 65~90
小写字母:a-z → 97~122
数字:0-9 → 48~57
#include <stdio.h>
int main() {
char ch;
scanf("%c", &ch);
if(ch >= 'A' && ch <= 'Z') {
printf("大写字母\n");
} else if(ch >= 'a' && ch <= 'z') {
printf("小写字母\n");
} else if(ch >= '0' && ch <= '9') {
printf("数字\n");
} else {
printf("其他字符\n");
}
return 0;
}
4. 大小写字母转换
规则:大写 +32 = 小写;小写 -32 = 大写
#include <stdio.h>
int main() {
char ch;
scanf("%c", &ch);
if(ch >= 'A' && ch <= 'Z') {
// 大写转小写
ch = ch + 32;
printf("转换后:%c\n", ch);
} else if(ch >= 'a' && ch <= 'z') {
// 小写转大写
ch = ch - 32;
printf("转换后:%c\n", ch);
} else {
printf("无法转换\n");
}
return 0;
}
二、进阶练习题
5. 统计输入字符串中:字母、数字、空格、其他字符的个数
要求:输入一行字符,统计各类字符数量。
#include <stdio.h>
int main() {
char ch;
int letter = 0, digit = 0, space = 0, other = 0;
printf("请输入一行字符:\n");
// 循环读取直到换行
while((ch = getchar()) != '\n') {
if((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) {
letter++;
} else if(ch >= '0' && ch <= '9') {
digit++;
} else if(ch == ' ') {
space++;
} else {
other++;
}
}
printf("字母:%d\n数字:%d\n空格:%d\n其他:%d\n", letter, digit, space, other);
return 0;
}
6. 输入一个字符串,把所有小写转大写,大写转小写
#include <stdio.h>
int main() {
char ch;
printf("转换结果:");
while((ch = getchar()) != '\n') {
if(ch >= 'a' && ch <= 'z') {
putchar(ch - 32);
} else if(ch >= 'A' && ch <= 'Z') {
putchar(ch + 32);
} else {
putchar(ch);
}
}
return 0;
}
7. 输出 26 个英文字母(正序 + 倒序)
#include <stdio.h>
int main() {
char ch;
// 正序 A-Z
printf("正序:");
for(ch = 'A'; ch <= 'Z'; ch++) {
printf("%c ", ch);
}
// 倒序 Z-A
printf("\n倒序:");
for(ch = 'Z'; ch >= 'A'; ch--) {
printf("%c ", ch);
}
return 0;
}
核心知识点总结
字符变量:用 char 定义,占 1 字节。
输入输出:%c 单个字符、getchar()/putchar()。
判断依据:用 ASCII 范围判断字母、数字。
大小写转换:±32 即可。
|
|