找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 86|回复: 0

C语言字符练习题

[复制链接]

37

主题

21

回帖

241

积分

中级会员

积分
241
发表于 2026-4-8 12:02:20 | 显示全部楼层 |阅读模式
一、基础练习题

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 即可。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|郎哥嵌入式编程社区 ( 鲁ICP备15001146号-5 )

GMT+8, 2026-4-28 03:34 , Processed in 0.013933 second(s), 19 queries .

快速回复 返回顶部 返回列表