TheBadZhang's Blog - 2026年8月
type: channel
link: http://tbz.io/index.php/2026/08/
description: 想拥有万里挑一的有趣灵魂
items: C 语言编程经典 100 例（详解版）

C 语言编程经典 100 例（详解版）
type: item
date: 2026-08-03T14:14:00+00:00
description: C 语言编程经典 100 例（详解版） 本系列面向零基础（Base）或刚开始学习 C 语言的同学，共收录 程序 1 ~ 程序 100 一百道题目，按知识点从易到难编排，讲解循序渐进。 如何使用本文档 每一题包含：题目 → 解题思路 → 完整代码 → 代码讲解 → 知识点 → 数学原理（如适用） → 扩展思考 / 其他解法。 讲解中第一次出现的概念会展开解释；后面的题目会直接引用（ref）前面的概念，不再重复展开。 建议学习方式：先自己读题、动手写，写不出来再看解题思路，最后对照完整代码逐行理解，再合上文档自己重写一遍。 文中代码均采用符合现代 C 标准的写法（补全 #include、使用 int main()），多数代码在 Dev-C++、Visual Studio、Code::Blocks、VS Code + GCC 等环境下可直接编译（Compiler）运行。 特殊环境说明：程序 32~35 涉及终端（Terminal）颜色与光标控制，推荐在 Windows Terminal / VS Code 终端 / Linux / macOS 终端等现代终端中运行；程序 56~65 为图形绘制题，使用轻量的 ACLLib 图形库（GitHub：wengkai/ACLLib）实现，需要先按第六部分的说明配置（Windows + MinGW / Dev-C++ / VS Code + GCC）。 零基础读者必读：预备知识 如果你完全没接触过编程，请先花十几分钟读完这一节。这一节里提到的名词，后面的每一题都会用到。 1. 什么是程序？什么是 C 语言？ 计算机只会"执行指令"。程序就是把你想让计算机做的事，用某种"人看得懂、机器能执行"的语言写下来的一串指令。C 语言是其中最经典的一种，它语法简洁、运行速度快，是很多大学的第一门编程语言，也是操作系统（Operating System）（Linux、Windows 内核（Kernel））、嵌入式系统的基础语言。 2. 从"源代码"到"可运行的程序" 用 C 语言写的文件叫源代码（后缀通常是 .c），它本身计算机还不能直接执行，需要经过两个步骤： 编译：编译器（如 GCC）把源代码翻译成机器能懂的二进制代码。 链接：把我们用到的库函数（比如 printf）和主程序"拼"在一起，生成可执行文件（Windows 下是 .exe）。 所以，编程界有一句话："代码写错一处，编译报错一片"。不要怕报错，报错信息是编译器在帮你。 3. 程序的基本框架（几乎每个程序都一样） #include <stdio.h> // 头文件：引入 printf、scanf 等函数 int main() // 主函数：程序从这里开始执行 { // 在这里写你的代码 return 0; // 返回 0 表示程序正常结束 } #include <stdio.h>：stdio 是"标准输入输出"（Standard Input Output）。printf（输出）、scanf（输入）都在这个头文件里声明。用了就要 #include。 main：主函数，程序唯一的人口。程序一运行，编译器就会从 main 的第一行开始执行。 花括号 { }：把一组语句"圈"在一起，叫一个代码块。 每一条语句末尾要有分号 ;，就像中文句子末尾的句号。 4. 变量与数据类型 变量就是"存放数据的盒子"。用之前要先"声明"（告诉计算机盒子的名字和它能装什么类型的数）： 类型 含义 示例 int 整数（不含小数） int age = 18; long / long long 更大的整数 long long x; float 小数（单精度） float pi = 3.14; double 小数（双精度，更精确） double pi = 3.1415926; char 单个字符 char c = 'A'; 赋值：age = 18; 表示把 18 放进 age 这个盒子。 变量名：只能由字母、数字、下划线组成，不能以数字开头，不能用关键字（如 int、if）。 为什么有 int 和 float 之分？因为计算机内存里整数和小数的存储方式完全不同。用 int 装小数会丢失小数部分，用 float 装大整数可能产生误差。后面很多题（如程序 3、20、24）会体现这一点。 5. 运算符 算术运算符：+ 加、- 减、* 乘、/ 除、% 取余（求余数，如 7 % 3 = 1）。 注意：整数除以整数结果还是整数！例如 5 / 2 在 C 里结果是 2 而不是 2.5（小数部分被丢掉）。想得到小数，要让其中一个数是小数，如 5 / 2.0 或 (float)5 / 2。 关系运算符：> 大于、< 小于、>= 大于等于、<= 小于等于、== 等于（注意是两个等号！）、!= 不等于…