1.1 C的发展和特点 1
1.1.1 C的发展 1
1.1.2 C的特点 1
第1章 概论 1
1.2 C程序的组成和结构 2
1.2.1 一个简单的C程序 2
1.2.2 C程序的基本语法成分 3
1.2.3 C程序结构 4
1.3 C程序编译过程 5
小结 6
练习题1 6
第2章 数据类型及其运算 7
2.1 C的数据类型 7
2.2.1 整型、实型及符号常量 8
2.2 常量 8
2.2.2 字符型常量 10
2.3 变量 11
2.3.1 变量的概念 12
2.3.2 变量的定义与初始化 12
2.3.3 整型变量 13
2.3.4 实型变量 15
2.3.5 字符变量 15
2.3.6 字符串变量 16
2.4 运算符与表达式 16
2.4.1 C运算符概述 16
2.4.2 算术运算符与算术表达式 18
2.4.3 表达式中数据间的混合运算与类型转换 20
2.4.4 赋值运算符与赋值表达式 22
2.4.5 条件运算符和条件表达式 24
2.4.6 逗号运算符和逗号表达式 25
小结 26
练习题2 26
第3章 顺序结构程序设计 29
3.1 三种基本控制结构 29
3.2 顺序执行语句 31
3.3 格式化输出函数printf() 32
3.3.1 printf()函数的一般格式 32
3.3.2 格式说明符 32
3.3.3 使用说明 34
3.4.1 scanf()函数的一般格式 35
3.4.2 格式指示符 35
3.4 格式化输入函数scanf() 35
3.4.3 使用说明 37
3.5 单个字符的输入输出函数 39
小结 40
练习题3 40
第4章 选择结构程序设计 42
4.1 关系运算及其表达式 42
4.1.1 关系运算符及其优先次序 42
4.1.2 关系表达式 43
4.2 逻辑运算及其表达式 43
4.2.1 逻辑运算及其优先次序 43
4.2.2 逻辑表达式 44
4.3 if语句 45
4.3.1 单分支if语句 45
4.3.2 双分支if语句 46
4.3.3 多分支if语句 47
4.3.4 if语句嵌套 48
4.4 switch语句 50
小结 55
练习题4 55
第5章 循环结构程序设计 59
5.1 while语句 59
5.2 do-while循环语句 62
5.3 for语句 64
5.4 break和continue语句 66
5.5 循环结构的嵌套 70
5.6 goto语句 73
5.7 循环结构程序设计应用 74
5.7.1 穷举法 74
5.7.2 迭代法 76
小结 77
练习题5 78
第6章 数组 81
6.1 一维数组 81
6.1.1 一维数组的定义 81
6.1.2 一维数组元素的引用 82
6.1.3 一维数组的初始化 82
6.1.4 一维数组的应用 84
6.2 二维数组 92
6.2.1 二维数组的定义 93
6.2.2 二维数组元素的引用 93
6.2.3 二维数组的初始化 94
6.3 字符数组和字符串数组 97
6.3.1 字符数组 97
6.3.2 字符串数组 103
小结 104
练习题6 105
第7章 函数 107
7.1 模块化程序设计 107
7.1.1 模块化程序设计技术 107
7.1.2 函数调用的执行过程 108
7.2 函数的定义与调用 109
7.2.1 函数定义 109
7.2.2 函数调用 110
7.2.3 函数的返回值与函数类型 113
7.2.4 被调函数说明 114
7.2.5 函数应用举例 115
7.3.1 外部函数 123
7.3 外部函数和内部函数 123
7.3.2 内部函数 124
7.3.3 Turbo C中运行一个多文件程序的方法 124
7.4 局部变量和全局变量 126
7.4.1 局部变量 126
7.4.2 全局变量 128
7.5 变量的存储类别 130
7.5.1 局部变量的存储类别 131
7.5.2 全局变量的存储类别 133
7.6 函数间的数据传递 135
7.6.1 函数间的参数传递 135
7.6.2 全局变量传递数据 137
7.7 递归函数 138
7.7.1 递归模型 138
7.7.2 递归的执行过程 139
练习题7 141
小结 141
第8章 指针 145
8.1 地址和指针变量 145
8.2 指针变量的定义 146
8.3 指针运算符 148
8.4 指针变量的初始化 150
8.5 C动态分配函数 151
8.6 指针变量的运算 153
8.6.1 指针的赋值运算 153
8.6.2 指针变量的算术运算 154
8.6.3 指针变量的关系运算 156
8.6.4 指针变量的赋值运算 156
8.7 字符串指针变量和字符串 157
8.8 指针作为函数参数 159
小结 162
练习题8 162
第9章 指针和数组 166
9.1 指针变量与一维数组 166
9.1.1 指向数组元素的指针变量 166
9.1.2 通过指针引用数组元素 167
9.1.3 地址越界问题 169
9.2 指向多维数组元素和指向分数组的指针 170
9.2.1 多维数组的地址 170
9.2.2 指向数组元素的指针变量 172
9.2.3 数组指针变量 174
9.3 指针数组 175
9.4 多级指针变量 177
练习题9 180
小结 180
第10章 数组和函数 185
10.1 数组元素作为函数参数 185
10.2 数组元素指针作为函数参数 186
10.3 数组名作为函数参数 188
10.3.1 一维数组名作为函数参数 188
10.3.2 多维数组名作为函数参数 193
10.3.3 指针数组作为函数参数 196
10.4 命令行参数 197
小结 199
练习题10 199
第11章 指针和函数 201
11.1 指针型函数 201
11.2 指向函数的指针变量 202
练习题11 207
小结 207
第12章 编译预处理 208
12.1 宏定义 208
12.1.1 无参宏定义 208
12.1.2 带参宏定义 210
12.2 条件编译 213
12.3 文件包括 216
小结 218
练习题12 218
第13章 结构体和共用体 221
13.1 结构体类型说明和结构体变量定义 221
13.1.1 结构体类型说明 221
13.1.2 结构体变量的定义 222
13.1.3 结构体变量的引用和初始化 224
13.1.4 结构体变量作为函数参数 226
13.2 结构体数组 227
13.2.1 结构体数组的定义 227
13.2.2 结构体数组的引用 227
13.2.3 结构体数组的初始化 228
13.3 结构体指针变量 230
13.3.1 结构体指针变量定义 230
13.3.2 结构体指针变量作为函数参数 231
13.4 结构体数组指针变量 233
13.4.1 结构体数组的指针变量 233
13.4.2 结构体数组名作为函数参数 235
13.5 结构体的应用:链表 237
13.5.1 单链表及其基本运算的实现 237
13.5.2 单链表的应用实例 243
13.6 共用体 245
13.6.1 共用体类型的说明 246
13.6.2 共用体变量的定义 246
13.6.3 共用体变量的引用和初始化 248
13.7 枚举类型 252
13.7.1 枚举类型的说明和变量定义 252
13.7.2 有关枚举类型数据的操作 253
13.8 用户定义类型 255
小结 257
练习题13 258
第14章 位运算 262
14.1 位运算符和位运算 262
14.1.1 位运算符 262
14.1.2 位运算符的运算功能 262
14.2.2 位段结构的说明和变量定义 267
14.2.1 位段的概念 267
14.2 位段 267
14.2.3 位段的引用和赋值 269
14.2.4 使用位段的注意事项 269
小结 270
练习题14 271
第15章 文件 273
15.1 文件概述 273
15.1.1 文件的分类 273
15.1.2 文件的操作流程 274
15.1.3 文件缓冲区 275
15.1.4 流和文件指针 275
15.2 文件打开和关闭 276
15.2.1 文件的打开 276
15.3.1 文件的字符读写函数 278
15.3 文件的顺序读写 278
15.2.2 文件的关闭 278
15.3.2 文件的字符串读写函数 282
15.3.3 文件格式化读写 285
15.4 文件的随机读写 287
15.4.1 文件定位操作 287
15.4.2 文件的随机读写 289
15.5 文件检测函数 295
小结 296
练习题15 296
附录A 综合练习题 300
附录B 上机实习题 303
附录C C运算符及优先级 306
附录D 部分字符与ASCII代码对照表 307
参考文献 308