第1章 课题的提出:打印月历 1
1.1 从“Hello World!”开始 1
1.1.1 为程序作注释 1
1.1.2 include的作用 2
1.1.3 main、函数与函数的组成部分 2
1.2 利用printf输出 3
1.3 利用函数可以简化编程 4
1.4 程序的运行过程 6
1.5 本章小结 8
1.6 练习 9
第2章 变量与运算 10
2.1 变量与变量的输入 10
2.1.1 利用printf输出数据 10
2.1.2 数据类型 12
2.1.3 合法声明的补充说明 14
2.1.4 定义常量 14
2.1.5 利用scanf完成变量的输入 15
2.1.6 输出时的格式控制 17
2.2 常用运算 18
2.2.1 算术运算符和“()”运算符 18
2.2.2 赋值运算 20
2.2.3 关系运算和逻辑运算 20
2.3 简单的函数使用 22
2.3.1 不带参数且没有返回值的函数 22
2.3.2 带参数且有返回值的函数 23
2.4 本章小结 24
2.5 练习 25
第3章 循环与分支 26
3.1 利用循环简化编程 26
3.1.1 从循环中最常用的两个运算符开始 27
3.1.2 最基本的循环——for循环 28
3.2 利用分支确定程序执行流程 32
3.2.1 分支的几种形式 32
3.2.2 对if语句细节的探讨 36
3.2.3 条件运算符 36
3.2.4 打印月历的例子 38
3.3 顺序循环和分支结构的深入讨论 38
3.3.1 顺序程序结构的再学习 38
3.3.2 while循环 40
3.3.3 do-while循环 50
3.3.4 goto循环 52
3.3.5 分支结构之switch 53
3.4 本章小结 58
3.5 练习 60
第4章 数组 62
4.1 用数组简化编程 62
4.1.1 数组的定义 62
4.1.2 数组的初始化 63
4.1.3 数组元素的访问 64
4.1.4 一维数组的常用算法 66
4.2 数组的应用——一副扑克牌 73
4.3 数组与月历 75
4.4 利用一维数组处理字符串 76
4.4.1 char型的数组和字符串 77
4.4.2 一些常用的字符串函数 78
4.5 一个数组应用项目——21点游戏 84
4.6 本章小结 89
4.7 练习 89
第5章 功能完善的月历 90
5.1 简单的软件工程 90
5.2 需求分析 91
5.3 软件设计 92
5.4 代码编写 93
5.5 软件测试 98
5.6 软件部署 99
5.7 其他 99
5.8 本章小结 100
5.9 练习 104
第6章 利用二维数组和结构体处理复杂的表格 106
6.1 表格与二维数组 106
6.1.1 二维数组的定义 106
6.1.2 二维数组的初始化 106
6.1.3 二维数组的访问 107
6.2 利用结构体完成复杂的数据表格 108
6.3 本章小结 110
6.4 练习 110
第7章 函数与数组的综合运用 112
7.1 函数的定义和应用 112
7.2 函数的变量及其作用域 116
7.3 在函数间传递数据 117
7.3.1 利用全局变量传递数据 117
7.3.2 利用数组传递大规模数据 118
7.4 特殊的函数调用方法 121
7.4.1 嵌套调用 121
7.4.2 递归调用 122
7.5 本章小结 124
7.6 练习 124
第8章 利用指针提高编程效率 125
8.1 内存模型和变量存储类型 125
8.2 指针的本质 127
8.3 指针与变量 128
8.4 指针与数组 132
8.5 指针与字符数组 136
8.6 “动态”数组 137
8.7 项目实战:一个班级成绩处理项目 145
8.7.1 项目要求 145
8.7.2 项目分析 145
8.7.3 项目代码与讲解 147
8.8 本章小结 155
8.9 练习 156
第9章 利用链表处理复杂表格 157
9.1 链表的优势 157
9.1.1 创建单链表 157
9.1.2 单链表的插入 159
9.1.3 单链表中节点的删除 162
9.1.4 单链表的查找 163
9.2 其他链表 164
9.2.1 循环链表 164
9.2.2 双向链表 165
9.3 本章小结 165
9.4 练习 165
第10章 文件操作 166
10.1 文件指针 166
10.2 文件的打开和关闭 167
10.2.1 打开文件 167
10.2.2 关闭文件 168
10.3 文件的读写 168
10.3.1 写文件 169
10.3.2 读文件 170
10.4 本章小结 171
10.5 练习 172
附录 基本语法总结 173
附录一 ASCII码表 173
附录二 C语言关键字 178
附录三 C语言运算符 179
附录四 C语言常用函数 180