第1章 C语言程序基本结构 1
1.1 第一个C语言程序 2
1.1.1 编程基本过程 2
1.1.2 集成开发环境 4
1.1.3 字面常量、左值和右值 5
1.1.4 表达式 6
1.1.5 对象的地址 7
1.2 循环结构 11
1.2.1 while语句 12
1.2.2 for语句 14
1.3 标准输入函数 16
1.4 分而治之 17
1.5 选择结构(if-else语句) 19
1.6 关系运算和逻辑运算 20
1.7 条件表达式和复合赋值表达式 21
1.8 输入验证 23
1.8.1 break和continue语句 23
1.8.2 前哨(sentinels) 26
练习 28
第2章 函数 33
2.1 函数的定义和调用 34
2.2 函数声明 38
2.3 自设头文件 40
2.4 应用函数设计举例 42
2.4.1 阶乘 42
2.4.2 质数 45
2.4.3 最大公约数 47
2.4.4 斐波那契数列 49
2.4.5 π的近似值 50
2.5 函数与对象的存储类别 53
2.5.1 局部变量 54
2.5.2 静态局部变量 54
2.5.3 外部变量 55
2.5.4 寄存器变量 56
练习 56
第3章 指针和数组 59
3.1 指针和地址传递 60
3.1.1 地址和指针 60
3.1.2 两种参数传递 62
3.1.3 对象值交换 64
3.2 数组和线性表 68
3.3 指针和数组 71
3.3.1 指针和数组的统一 71
3.3.2 数组求和 73
3.3.3 数组逆置 75
3.4 const限定符 78
3.5 数组应用 82
3.5.1 最大元素 82
3.5.2 选择排序 84
3.5.3 顺序搜索和二分搜索 86
3.5.4 平均值 89
3.6 类型转换 90
3.7 动态空间 91
3.7.1 动态数组 91
3.7.2 动态分配函数与对象 94
3.7.3 最近平均值 95
3.8 指针与索引 97
3.9 函数指针 99
练习 100
第4章 顺序表 105
4.1 数组求和分析 106
4.2 动态数组应用 108
4.3 结构初步 109
4.4 typedef名字 110
4.5 准构造和准析构 113
4.6 尾插 116
4.7 读取 118
4.8 求和 120
4.9 删除 121
4.10 基本函数补充 124
4.11 参数合法性检验 125
4.12 顺序表头文件 127
4.13 顺序表的意义 129
练习 130
第5章 结构、联合、枚举 133
5.1 结构 134
5.1.1 结构与对象 134
5.1.2 结构Date 137
5.1.3 结构与数组 141
5.2 联合 143
5.3 枚举常量和switch-case语句 145
练习 151
第6章 字符串 155
6.1 字符型 156
6.2 字符串特点 159
6.3 字符串基本操作 161
6.3.1 字符串输入输出 161
6.3.2 字符串求长 162
6.3.3 字符串复制 163
6.3.4 字符串连接 164
6.3.5 字符串大小写 165
6.3.6 字符串比较 165
6.3.7 字符查找 166
6.3.8 字符串匹配 167
6.4 设计字符串基本操作 167
6.4.1 设计字符串输入和输出函数 168
6.4.2 设计字符串求长函数 169
6.4.3 设计字符串复制函数 170
6.4.4 设计字符串连接函数 171
6.4.5 设计字符串大小写函数 172
6.4.6 设计字符串比较函数 174
6.4.7 设计字符查找函数 175
6.5 函数返回指针 176
练习 177
第7章 文件 179
7.1 文件指针 180
7.2 文件打开与关闭 180
7.3 文件的读写 183
7.3.1 字符的读写 183
7.3.2 字符串的读写 185
7.3.3 格式读写 187
7.3.4 无格式读写 189
练习 193
第8章 链表 195
8.1 链表设计 196
8.1.1 链表结点 196
8.1.2 链表 199
8.1.3 链表插入 201
8.1.4 链表删除 204
8.1.5 链表逆置 205
8.2 链表声明与实现 208
8.3 Josephus问题 210
练习 213
第9章 二维数组和指针 215
9.1 二维数组 216
9.1.1 二维数组定义 216
9.1.2 二维数组初始化 216
9.1.3 二维数组和指针 218
9.2 二维数组和一维数组 221
9.2.1 二维数组作为一维数组 221
9.2.2 马鞍点 222
9.2.3 一维数组作为二维数组 225
9.3 指针数组和二级指针 226
9.4 二级指针和二维数组 227
练习 229
附录A 命名规则 231
附录B 基本类型 233
附录C 编译预处理 237
参考文献 241