1.1 C语言的历史和发展 1
第1章 C语言程序概述 1
1.2 C语言的特点 2
1.3 C语言程序结构 3
1.4 C语言程序的编译和链接 5
1.4.1 C程序的开发环境 5
1.4.2 C程序的编译和链接过程 7
1.4.3 CL命令的使用方法 8
第2章 基本概念 10
2.1 C语言的基本元素 10
2.1.1 标识符 10
2.1.3 空白字符 11
2.1.2 关键字 11
2.1.4 注释 12
2.1.5 分隔符 12
2.2 变量和数据类型 13
2.2.1 变量 13
2.2.2 数据类型的种类 13
2.2.3 基本数据类型 14
2.3 常量 17
2.3.1 整数常量 18
2.3.2 浮点数常量 18
2.3.3 字符常量 18
2.4 综合练习 20
2.4.1 按格式输出函数printf 20
2.3.4 字符串 20
2.4.2 转义序列的应用 22
2.4.3 printf中控制字符的应用 23
2.4.4 printf中格式选择项的应用 24
2.4.5 练习题 25
第3章 表达式和运算符 27
3.1 表达式 27
3.2 运算符 29
3.2.1 算术运算符 30
3.2.2 关系运算符 32
3.2.3 求反运算符 33
3.2.4 移位运算符 34
3.2.5 按位运算符 37
3.2.6 逻辑运算符 38
3.2.7 条件运算符 41
3.2.8 赋值运算符 42
3.2.9 一元加1、减1运算符 44
3.2.10 sizeof运算符 46
3.2.11 逗号及其它运算符 47
3.3 类型转换 48
3.3.1 算术转换 48
3.3.2 赋值转换 49
3.3.3 强制类型转换 50
3.4 综合练习 52
3.4.1 应用例题 52
3.4.2 练习题 53
4.2 结构控制语句 54
4.1 语句 54
第4章 结构控制语句 54
4.2.1 while循环语句 55
4.2.2 do~while循环语句 57
4.2.3 for循环语句 58
4.2.4 if~else条件语句 60
4.2.5 switch开关语句 64
4.2.6 goto语句和标号 66
4.3 辅助控制语句 67
4.3.1 break间断语句 67
4.4 综合练习 68
4.4.1 应用例题 68
4.3.3 return返回语句 68
4.3.2 continue继续语句 68
4.4.2 练习题 71
第5章 数组 73
5.1 数组的基本概念 73
5.2 一维数组 74
5.3 字符串与字符数组 76
5.4 多维数组 78
5.5 综合练习 79
5.5.1 应用例题 79
5.5.2 练习题 81
第6章 函数 83
6.1 函数的结构 83
6.2 函数的形参与实参 86
6.3 函数的说明与定义 88
6.4 void类型 90
6.5 函数的递归调用 90
6.6 综合练习 92
6.6.1 应用例题 92
6.6.2 练习题 95
第7章 存储类别 97
7.1 变量的存在性和可见性 97
7.2 变量的存储类别 97
7.2.1 自动变量 98
7.2.2 寄存器变量 99
7.2.3 外部变量 100
7.2.4 静态变量 103
7.3 变量的初始化(小结) 104
7.4 函数的存储类别 105
7.5 综合练习 107
7.5.1 应用例题 107
7.5.2 练习题 109
第8章 指针 110
8.1 指针与地址的概念 110
8.2 指针的种类 112
8.3 指针与数组 113
8.3.1 指针与一维数组 113
8.3.2 指针与多维数组 115
8.4 字符串指针 116
8.5 指针运算 119
8.7 指针数组 121
8.6 指针类型的转换 121
8.8 多级指针 126
8.9 综合练习 128
8.9.1 应用例题 128
8.9.2 练习题 131
第9章 函数与指针 133
9.1 函数的指针参数 133
9.2 命令行参数 139
9.3 返回指针的函数 140
9.4 指向函数的指针 141
9.5 函数中的函数指针参数 142
9.6 函数指针数组 143
9.7 复杂说明的理解方法 144
9.8 综合练习 146
9.8.1 应用例题 146
9.8.2 练习题 151
第10章 结构 153
10.1 结构的基本概念 153
10.2 结构数组 159
10.3 结构指针 160
10.3.1 指向结构的指针 160
10.3.2 结构指针与结构数组 162
10.3.3 结构指针运算 163
10.4 结构与函数 165
10.4.1 结构参数的传递 165
10.4.2 返回结构类型的函数 168
10.5 结构的嵌套 171
10.6 递归结构 173
10.7 包含位域的结构 177
10.8 类型定义typedef 181
10.9 综合练习 181
10.9.1 结构数组的传递 181
10.9.2 队列和栈 183
10.9.3 双向链表 186
10.9.4 二叉树 188
10.9.5 练习题 194
第11章 联合、枚举类型 195
11.1 联合 195
11.2 结构中嵌套联合 197
11.3 联合中嵌套结构 199
11.4 枚举 202
11.5 综合练习 206
11.5.1 应用例题 206
11.5.2 练习题 210
第12章 C预处理程序 211
12.1 宏替换命令 211
12.2 包含文件命令 213
12.3 条件编译命令 214
12.3.1 #if~#elif~#else~#endif命令 215
12.3.2 #ifdef(ifndef)~#else~#endif命令 217
12.4 行控制命令 218
12.5.1 应用例题 219
12.5 综合练习 219
12.5.2 练习题 220
第13章 输入和输出 221
13.1 标准输入/输出 221
13.1.1 标准文件与FILE结构 221
13.1.2 字符的输入/输出 223
13.1.3 字符串的输入/输出 224
13.1.4 按格式输入/输出 225
13.1.5 内存数据的格式转换 229
13.1.6 I/O的重新定向 231
13.2 文件的存取 232
13.2.1 文件的打开与关闭 232
13.2.2 错误处理与出口 235
13.2.3 文件的读/写操作 236
13.2.4 文件的随机存取 239
13.3 低级I/O 242
13.3.1 文件的读/写操作 243
13.3.2 文件的打开、关闭和创建 244
13.3.3 文件的随机存取 247
13.4 有关文件操作的其它函数 247
13.5 综合练习 248
13.5.1 应用例题 248
13.5.2 练习题 254
第14章 C语言的高水平编程 256
14.1 进程控制 256
14.1.1 system函数 256
14.1.2 spawn函数 257
14.1.3 子进程的环境设置 260
14.2 far指针的应用 263
14.2.1 near指针和far指针 263
14.2.2 MS—C中段和组的分配 264
14.2.3 跨段的数据访问 265
14.3 C语言与汇编语言的接口 267
14.3.1 基本概念和规则 267
14.3.2 传递整型参数、返回整型值 270
14.3.3 传递字符串 271
14.3.4 传递指针 272
14.3.5 传递长整型参数、返回长整型值 274
14.3.6 从C访问汇编中定义的数据 275
14.3.7 在C程序中嵌入汇编子程序 277
14.3.8 far函数调用 280
14.4 C对其它高级语言的调用 281
14.4.1 C与其它高级语言的接口 281
14.4.2 C与其它高级语言之间的数据共享 281
14.4.3 应用例题 282
14.5 图形处理 284
附录A MS—DOS标准ESC序列 291
附录B C语言库函数 296
附录C MS—C编译和链接命令 317
附录D MS—C编译、链接错误信息一览表 318
表索引 337
英文、符号索引 338
参考文献 341