A numbered historical collection of C exercises covering fundamentals, algorithms, data structures, files, graphics, and small programs.
The repository is a learning archive, not one maintained program. Each top-level directory is an independent example or project; the collection moves from short syntax demonstrations to DOS-era graphics, games, and larger source sets.
No package manager, language-standard declaration, common build file, test harness, or supported compiler version applies to the entire archive.
The refreshed default-branch tree contains 599 files in 221 top-level directories. The directory sequence consists of 000_My Set/ and numbered entries 001.第一个C程序/ through 220.进销存管理系统/.
| Format | Count | Meaning |
|---|---|---|
.c |
266 | C source files |
.exe |
226 | Historical compiled programs; not trusted release artifacts |
.dat |
52 | Example-specific input or data files |
.h |
17 | Headers belonging to their enclosing example |
.dwg |
6 | CAD-related data under the larger examples |
.cpp |
5 | Supplemental C++ experiments, mainly under 000_My Set/ |
.com |
4 | Historical DOS binaries |
.asm |
2 | Assembly source used by legacy examples |
Counts describe tracked files only. They do not mean that 221 examples compile or behave correctly on a current system.
| Range or path | Representative topics |
|---|---|
001.第一个C程序/ to 041.学生成绩管理程序/ |
Expressions, control flow, arrays, pointers, structures, strings, and files |
042.插入排序/ to 049.基数排序/ |
Insertion, Shell, bubble, quick, selection, heap, merge, and radix sorting |
050.二叉搜索树操作/ to 074.K阶斐波那契序列/ |
Trees, lists, graphs, stacks, queues, recursion, and coding problems |
075.绘制余弦曲线和直线的迭加/ onward |
Numerical exercises, graphics, utilities, and increasingly applied programs |
207.商人过河游戏/ to 216.五子棋游戏/ |
Puzzle, typing, maze, board, and arcade-style games |
217.综合CAD系统/ to 220.进销存管理系统/ |
Larger CAD, editor, library, and inventory-management source collections |
| Path pattern | Contents and boundary |
|---|---|
000_My Set/ |
Additional early C and C++ experiments; not a shared library |
001.* to 041.* |
Mostly small introductory examples, sometimes with a data file or executable |
042.* to 074.* |
Algorithm and data-structure exercises |
075.* to 206.* |
Mathematics, text, file, graphics, and utility examples |
207.* to 216.* |
Standalone game projects |
217.综合CAD系统/, 218.功能强大的文本编辑器/ |
Multi-file DOS-era source sets with local historical notes |
219.图书管理系统/, 220.进销存管理系统/ |
Larger record-management examples with local data and binaries |
Headers, data files, fonts, project metadata, and binaries belong to the enclosing directory. Do not move them into a repository-wide include or data folder.
Simple examples may be adaptable to a current C compiler, but the repository does not declare a common C standard or compiler invocation. Inspect the selected source before choosing a toolchain.
The local notes for 217.综合CAD系统/ and 218.功能强大的文本编辑器/ identify Turbo C 2.0/3.0-era assumptions; the CAD notes also mention TASM. The editor source includes DOS- and BIOS-specific headers. Graphics, direct hardware access, memory models, and assembly integration are therefore per-example compatibility concerns, not optional repository dependencies.
- Select one numbered directory and inventory all of its source, header, data, font, project, and binary files.
- Read the source for compiler-specific headers, fixed paths, direct hardware access, file writes, and expected command-line input.
- Choose a compiler or emulator for that one example; record its version and working directory.
- Build from source in an isolated copy and use synthetic input. Prefer the rebuilt program over tracked
.exeor.comfiles. - Compare behavior with the source and local data, then document failures without changing unrelated examples.
There is intentionally no copy-and-paste command here: a command valid for a small ISO C exercise would be misleading or unsafe for a DOS graphics project.
- The 226
.exeand 4.comfiles are unverified historical binaries. Do not run them on a normal workstation. - DOS APIs, BIOS access, graphics libraries, segmented memory, and Turbo C extensions may fail under modern compilers.
- Some text and comments show legacy Chinese encoding. Preserve raw bytes and verify encoding before editing source or notes.
.dat, font, drawing, and configuration files may be required through relative paths; moving an executable can change behavior.- Larger examples can read or overwrite local files. Use a disposable directory and inspect file operations before execution.
No repository-wide run, test, build, lint, or format command was found. Compiling one source file cannot establish coverage for the other 220 directories, and the tracked binaries are not test oracles.
For a changed example, record the compiler, target platform, exact source set, input, output, and side effects. Documentation-only changes should verify paths, language links, Markdown structure, and the inventory against the complete tree.
Contributions should stay within one example unless an inventory correction necessarily spans the archive. Preserve numeric and Chinese directory names, local fixtures, original encodings, and the distinction between source and historical binaries.
Keep English, Simplified Chinese, and Japanese READMEs aligned in section order, counts, paths, links, and risk statements. Do not introduce a repository-wide framework solely to modernize one exercise.
See LICENSE. It is a rights and provenance notice, not an open-source license: it grants no permission to use, copy, modify, deploy, or redistribute original project material. Third-party material remains subject to its own rights and terms.
The archive may combine instructional examples and bundled assets from different sources. Confirm authorship and permission before copying, modifying, or redistributing source, binaries, fonts, drawings, or data.
- HaoXiang Huang
- Rays688888@Gmail.com
- Project homepage