第1章 C语言概述 1
1.1 C语言的发展史 1
1.2 C语言的特点 1
1.3 C程序的组成 3
1.3.1 简单的C程序分析 3
1.3.2 简单的C程序应用 5
1.4 C程序的执行 6
1.4.1 C语言的编译 6
1.4.2 Turbo C 2.0常用菜单命令介绍 7
小结 8
习题 9
上机实验 9
2.1.1 常量与变量 10
2.1 数据类型 10
第2章 C语言程序设计的初步知识 10
2.1.2 整型数据 13
2.1.3 实型数据 15
2.1.4 字符型数据 16
2.2 数据类型转换 18
2.2.1 自动转换与强制转换 18
2.2.2 不同数据类型间的混合运算实例 20
2.3 运算符与表达式 21
2.3.1 算术运算符与算术表达式 21
2.3.2 赋值运算符与赋值表达式 24
2.3.3 逗号运算符与逗号表达式 27
小结 29
习题 29
上机实验 32
第3章 基本算法 33
3.1 程序与算法 33
3.2 算法的特征 33
3.3 算法的表示 34
3.4 程序设计基本算法 38
3.4.1 穷举法 38
3.4.2 迭代算法 38
3.4.3 递推算法 39
3.4.4 递归算法 40
小结 41
习题 42
上机实验 42
4.1 C语句介绍 43
第4章 顺序结构 43
4.2 数据的输入与输出 45
4.2.1 格式输出函数——printf函数 45
4.2.2 格式输入函数——scanf函数 50
4.2.3 字符输出函数——putchar函数 53
4.2.4 字符输入函数——getchar函数 54
4.3 顺序程序设计 55
小结 57
习题 57
上机实验 61
第5章 选择结构 62
5.1 关系运算符与关系表达式 62
5.1.1 关系运算符 62
5.1.2 关系表达式 63
5.2.1 逻辑运算符 64
5.2 逻辑运算符与逻辑表达式 64
5.2.2 逻辑表达式 65
5.3 选择结构语句 67
5.3.1 if语句 67
5.3.2 条件运算符 73
5.3.3 switch语句 75
5.3.4 标号语句和goto语句 77
5.4 选择结构程序设计举例 78
小结 80
习题 80
上机实验 83
第6章 循环结构 84
6.1 while型循环 84
6.1.1 while结构的形式 84
6.1.2 while循环的语义 85
6.2 do-while型循环 87
6.2.1 结构形式 87
6.2.2 do-while循环的含义 88
6.3 for型循环 89
6.3.1 for循环表现形式 89
6.3.2 for与while 91
6.3.3 for语句的实例 92
6.4 循环的嵌套 93
6.5 其他控制语句 94
6.5.1 break语句 94
6.5.2 continue语句 95
6.6 循环结构综合实例 96
习题 99
小结 99
上机实验 101
第7章 数组 103
7.1 一维数组 103
7.1.1 一维数组的定义与引用 103
7.1.2 一维数组的初始化与应用 104
7.2 二维数组 107
7.2.1 二维数组定义与引用 107
7.2.2 二维数组初始化 108
7.2.3 二维数组应用举例 109
7.3 多维数组介绍 111
7.4 字符数组 111
7.4.1 字符数组定义 111
7.4.3 字符串与字符数组 113
7.4.2 字符数组初始化 113
7.4.4 字符数组的输入与输出 114
7.4.5 字符数组处理函数 115
7.5 数组综合实例 119
小结 121
习题 122
上机实验 124
第8章 函数 126
8.1 函数概念引入 126
8.2 库函数 127
8.3 函数定义 129
8.3.1 函数定义的形式 129
8.3.2 函数的简单应用 131
8.4.1 形式参数和实际参数 132
8.4 函数间的参数传递 132
8.4.2 函数返回值 134
8.5 函数调用 136
8.5.1 调用的一般形式 136
8.5.2 函数调用方式 136
8.5.3 函数调用声明 138
8.5.4 函数的嵌套调用 139
8.5.5 函数的递归调用 141
8.6 数组与函数 143
8.7 变量的作用域 145
8.7.1 局部变量 145
8.7.2 全局变量 146
8.8.1 变量的动态和静态存储方式 149
8.8 变量的存储类型 149
8.8.2 局部变量的存储类别 150
8.8.3 全局变量的存储类别 153
8.8.4 存储类别小结 155
8.9 函数的存储分类 156
8.9.1 内部函数 156
8.9.2 外部函数 157
小结 158
习题 159
上机实验 164
第9章 指针 165
9.1 指针的含义 165
9.2.1 指针变量的概念 166
9.2.2 指针变量的定义 166
9.2 指针变量 166
9.2.3 指针变量赋值与初始化 167
9.2.4 指针的算术运算 169
9.2.5 指针变量的引用 170
9.3 指针与数组 171
9.3.1 一维数组的指针 172
9.3.2 二维数组的指针 175
9.4 指针与函数 180
9.4.1 变量的指针作为函数参数 180
9.4.2 指针型函数 183
9.4.3 一维数组的指针作为函数参数 188
9.4.4 二维数组的指针作为函数参数 191
9.5 指针与字符串 195
9.5.1 单字符串 196
9.5.2 多字符串 200
9.5.3 字符串指针作函数参数 201
9.6 字符数组与字符指针的区别 202
9.7 多级指针 202
9.7.1 定义形式 202
9.7.2 传给main函数的参数 205
9.7.3 void指针类型 206
9.8 指针类型小结 207
9.9 综合实例 207
小结 210
习题 210
上机实验 214
第10章 编译预处理 215
10.1 文件包含 215
10.2.1 无参数宏定义 218
10.2 宏定义 218
10.2.2 有参数的宏定义 221
10.2.3 宏替换与函数调用的区别 223
10.3 条件编译 224
小结 227
习题 227
上机实验 229
第11章 复杂数据类型 230
11.1 结构体 230
11.1.1 结构体类型的声明 230
11.1.2 结构体变量 231
11.1.3 结构体变量的引用与初始化 233
11.1.4 结构体数组 235
11.1.5 结构体指针 238
11.1.6 结构体与函数 241
11.1.7 结构体嵌套 244
11.2 用结构指针操作链表 245
11.2.1 链表概述 245
11.2.2 动态内存管理函数 246
11.2.3 链表的基本操作 247
11.2.4 结点的插入与删除 251
11.3 共用体 253
11.3.1 共用体类型定义 253
11.3.2 共用体变量的引用 255
11.4 枚举类型 257
11.5 类型定义typedef 260
小结 261
习题 262
上机实验 265
12.1 二进制位运算概述 267
第12章 位运算 267
12.2 位运算符 268
12.3 位段 273
小结 274
习题 274
上机实验 276
第13章 文件 277
13.1 C文件的概述 277
13.1.1 文件的基本概念 277
13.1.2 文件指针 279
13.2 文件的打开与关闭 280
13.2.1 文件的打开 280
13.2.2 文件的关闭 282
13.3.1 单个字符的读写操作 283
13.3 文件的读写 283
13.3.2 字符串的读写操作 284
13.3.3 数据块的读写操作 286
13.3.4 格式化读写函数 288
13.4 文件的定位与出错检测 290
13.4.1 文件的定位 290
13.4.2 文件操作的出错检测 292
小结 293
习题 293
上机实验 296
附录A 运算符的优先级及其结合性 297
附录B 常用ASCII代码对照表 298
附录C 各章习题参考答案 299
附录D 各章上机实验参考答案 316