C 经典100例¶
本页整理适合练习 C 基础语法、控制流、数组、指针、字符串、结构体和文件操作的经典题型。建议每题都独立编写、编译并测试边界输入。
入门题¶
- 输出 Hello World。
- 输入两个整数并输出和。
- 摄氏温度和华氏温度转换。
- 判断奇偶数。
- 判断闰年。
- 求三个数最大值。
- 交换两个变量。
- 计算圆面积。
- 求阶乘。
- 打印乘法表。
控制流与函数¶
- 判断素数。
- 输出指定范围内的素数。
- 求最大公约数。
- 求最小公倍数。
- 斐波那契数列。
- 递归求阶乘。
- 递归求字符串长度。
- 判断回文数。
- 判断水仙花数。
- 简单计算器。
数组与排序¶
- 数组求和。
- 数组最大值和最小值。
- 数组逆序。
- 冒泡排序。
- 选择排序。
- 插入排序。
- 二分查找。
- 合并两个有序数组。
- 去除数组重复元素。
- 统计数组元素频率。
字符串¶
- 统计字符个数。
- 字符串复制。
- 字符串连接。
- 字符串比较。
- 字符串反转。
- 判断回文字符串。
- 统计单词数量。
- 查找子串。
- 字符大小写转换。
- 删除字符串中的空格。
指针与内存¶
- 指针交换两个变量。
- 指针遍历数组。
- 动态分配数组。
- 动态二维数组。
- 函数返回状态并通过指针输出结果。
- 函数指针调用。
- 使用
qsort排序整数。 - 使用
qsort排序结构体。 - 实现简单动态字符串。
- 检查内存分配失败。
结构体与文件¶
- 学生结构体输入输出。
- 结构体数组排序。
- 链表创建。
- 链表插入。
- 链表删除。
- 链表查找。
- 文本文件复制。
- 统计文件行数。
- 读取 CSV 简单字段。
- 二进制文件读写结构体。
综合练习¶
- 通讯录管理。
- 学生成绩管理。
- 简单词频统计。
- 简单日志过滤器。
- 简单十六进制查看器。
- Base64 编码理解练习。
- 简单 XOR 编码器。
- 命令行参数解析。
- 简单配置文件解析。
- 简单栈实现。
进阶练习¶
- 简单队列实现。
- 循环队列实现。
- 哈希表实现。
- 二叉树遍历。
- 表达式括号匹配。
- 简单计算表达式求值。
- 迷宫 DFS。
- 迷宫 BFS。
- 文件加密解密练习。
- 简单压缩统计。
安全与边界¶
- 安全读取一行输入。
- 检查整数溢出。
- 安全拼接字符串。
- 避免数组越界。
- 避免格式化字符串漏洞。
- 检查
malloc返回值。 - 防止 use-after-free。
- 防止 double free。
- 使用 AddressSanitizer 检查程序。
- 使用 UndefinedBehaviorSanitizer 检查程序。
项目题¶
- 简单 Todo 程序。
- 简单文本数据库。
- 简单 HTTP 请求解析器。
- 简单 ELF 魔数检测器。
- 简单 PNG 文件头检测器。
- 简单端口配置解析器。
- 简单单元测试框架。
- 简单 Makefile 多文件项目。
- 简单命令行工具。
- 综合复习项目。