第1章概论 1
1.1 C语言简介 1
1.2 C语言在计算机语言体系中的地位 2
1.3 C语言的特点 3
1.4程序设计语言 5
1.4.1程序设计语言的主要构成 5
1.4.2程序设计语言的实现 6
1.4.3为什么要研究和学习程序设计语言 8
1.5 C语言的基本构成成分 9
1.5.1字符集 9
1.5.2保留字(关键字) 9
1.5.3特定字 10
1.5.4标识符 10
1.6简单C程序实例 10
1.7 C程序的编辑、编译和执行 17
1.8上机步骤 18
1.8.1 Turbo C 3.0简介 18
1.8.2 UNIX操作系统下的C编程简介 25
习题 26
第2章 C语言的基本数据类型和变量的存储类 27
2.1整型数据 27
2.1.1整型常量 27
2.1.2整型变量 29
2.1.3整型数据的存储表示 30
2.2字符型数据 36
2.2.1字符型常量 36
2.2.2字符型变量 37
2.2.3字符型数据的存储表示 37
2.2.4字符串常量 40
2.3浮点型 40
2.3.1浮点型常量 40
2.3.2浮点型变量 41
2.3.3浮点型数据的存储表示 41
2.4双精度型 43
2.5变量的初始化 44
2.6变量的存储类 45
2.6.1 自动变量 46
2.6.2寄存器变量 51
2.6.3静态变量 51
2.6.4外部变量 54
习题 56
第3章运算和表达式 59
3.1 C运算符简介 59
3.2算术运算符和算术表达式 59
3.2.1基本的算术运算符 59
3.2.2模运算符% 60
3.3赋值运算符和赋值表达式 60
3.4 ++,--运算符 62
3.5关系运算符和关系表达式 63
3.6逻辑运算符和逻辑表达式 65
3.7逗号运算符和逗号表达式 66
3.8混合运算和类型转换 66
习题 69
第4章语句及控制结构 71
4.1 C语句概述 71
4.2条件执行控制 72
4.2.1简单if 72
4.2.2块if 73
4.2.3 if-else-if 74
4.2.4条件运算符?: 76
4.3循环控制 77
4.3.1 while循环 77
4.3.2 do-while循环 80
4.3.3 for循环 81
4.4 goto语句及语句标号 84
4.5 switch语句及多路分支 85
习题 90
第5章函数 94
5.1 函数和C程序结构 94
5.2函数的构成及定义 95
5.3 函数的参数及返回值 95
5.3.1形式参数和实际参数 95
5.3.2函数形参和实参的结合方式 96
5.3.3函数的返回值 97
5.4函数的调用 99
5.5函数的类型及说明 100
5.6函数的递归调用 105
习题 111
第6章C预处理程序 117
6.1 宏替换 117
6.1.1简单宏替换 117
6.1.2带有参数的宏替换 120
6.2文件包含 124
6.3条件编译 125
习题 127
第7章数组 131
7.1 数组的定义及引用数组元素 131
7.1.1一维数组 131
7.1.2二维数组 134
7.1.3多维数组 135
7.2数组的存储表示 135
7.3 多维数组的减维使用 136
7.4数组的初始化 137
7.5数组作为函数参数 138
7.5.1数组元素作为函数的参数 138
7.5.2数组名作为函数的参数 138
7.6字符串变量 143
7.6.1字符串变量的表示 143
7.6.2字符串数组 144
7.6.3常用字符串处理函数 145
习题 149
第8章指针 152
8.1指针和地址 152
8.2变量的地址及间接引用 152
8.3指针变量、指针类型及指针运算 154
8.4指针作为函数参数 156
8.5指针和数组 158
8.6指针数组 162
8.7字符指针和字符串 165
8.8返回指针的函数和指向函数的指针 168
8.9指向指针的指针 171
8.10指针初始化 172
8.11 main函数和命令行参数 173
8.12指针小结 174
8.12.1指针类型 174
8.12.2指针运算 175
习题 176
第9章结构和联合 181
9.1结构类型和结构变量 181
9.2访问结构成员 184
9.3结构数组和结构指针 185
9.3.1结构数组 185
9.3.2结构指针 186
9.3.3通过指向结构的指针访问结构成员 186
9.4 sizeof运算符和C的动态存储分配函数 188
9.5结构作为函数的参数 190
9.6结构的自引用 191
9.7位域——存储空间的充分利用 192
9.8联合 193
9.8.1联合类型和联合变量 193
9.8.2联合变量的引用方式 195
9.8.3联合的特点 196
9.9枚举类型 197
9.10用typedef定义类型 199
习题 201
第10章位运算 204
10.1位及位运算的概念 204
10.2位运算符 204
10.2.1按位“与”运算符& 205
10.2.2按位“或”运算符 205
10.2.3按位“异或”运算符八 205
10.2.4按位“取反”运算符~ 206
10.2.5逐位“左移”运算符<< 207
10.2.6逐位“右移”运算符>> 207
10.2.7复合的赋值位运算符 207
10.2.8不同长度数据的位运算 208
10.3位运算举例 209
习题 210
第11章I/O及有关库函数 212
11.1控制台I/O 212
11.1.1 getchar和putchar(单字符输入输出) 213
11.1.2 gets和puts(行输入输出) 214
11.1.3 printf和scanf(按格式输入输出) 215
11.2文件I/O 221
11.2.1 C文件的概念 221
11.2.2文件类型及文件指针 221
11.2.3文件的打开和关闭 223
11.2.4文件的读写 226
11.2.5其他和文件有关的库函数 234
习题 238
第12章面向对象的程序设计 240
12.1对象入门 240
12.2 OOP技术简介 242
12.2.1抽象的进步 242
12.2.2抽象的实现 243
12.2.3对象的接口 244
12.2.4 对象接口的隐蔽实现 245
12.2.5代码复用 248
12.2.6继承 248
12.2.7多形对象的上溯使用 256
12.2.8抽象类和接口 265
12.2.9 对象的创建和生存期 266
12.2.10封装 277
12.2.11集合(对象容器) 280
12.2.12单根结构与多根结构 281
12.2.13多形对象的下溯还原 282
12.2.14 象的清除 282
12.2.15 异常处理 285
12.3结束语 286
习题 286
附录A ASCII字符编码表 288
标准ASCII字符集 288
扩充ASCII字符集 289
附录B C运算符的优先级和结合方向 290
附录C常用的C库函数 291
一、数学函数 291
二、字符和字符串函数 292
三、I/O函数 292
四、字符屏幕函数 293
五、图形屏幕函数 294
六、动态存储分配函数 295
七、类型转换函数 295