第1章 程序设计与C语言概述 1
1.1 程序设计语言 1
1.2 C语言概述 3
1.2.1 C语言的发展历史 3
1.2.2 C程序的基本结构 3
1.2.3 C语言的特点 6
1.3 程序设计与算法 7
1.3.1 程序设计 7
1.3.2 算法 8
1.4 C程序的开发过程 10
1.5 Turbo C集成开发环境简介 11
1.6 小结与提高 14
1.7 思考与练习 14
第2章 数据类型、运算符与表达式 16
2.1 基本数据类型 16
2.1.1 整型 16
2.1.2 实型 18
2.1.3 字符型 19
2.2 常量与变量 20
2.2.1 常量 20
2.2.2 变量 24
2.2.3 标识符的命名原则 25
2.3 运算符与表达式 25
2.3.1 C语言的运算符 25
2.3.2 算术运算符与算术表达式 26
2.3.3 算术表达式中的数据类型转换问题 27
2.3.4 赋值运算符与赋值表达式 28
2.3.5 自加与自减运算符 30
2.3.6 负号运算符、逗号运算符与sizeof运算符 31
2.3.7 位运算 32
2.4 小结与提高 36
2.5 思考与练习 37
第3章 顺序结构程序设计 40
3.1 简单示例及顺序结构特点 40
3.2 数据输出 41
3.2.1 printf——格式化输出函数 41
3.2.2 putchar——字符输出函数 49
3.3 数据输入 50
3.3.1 scanf——格式化输入函数 51
3.3.2 getchar——字符输入函数 56
3.4 复合语句与空语句 57
3.4.1 复合语句 57
3.4.2 空语句 58
3.5 程序举例 58
3.6 小结与提高 60
3.7 思考与练习 60
第4章 选择结构程序设计 66
4.1 用于描述条件的运算符与表达式 66
4.1.1 关系运算符与关系表达式 66
4.1.2 逻辑运算符与逻辑表达式 67
4.2 if语句的三种格式 69
4.2.1 if…else格式与两分支结构 69
4.2.2 if格式与单分支结构 71
4.2.3 else if格式与多分支结构 72
4.2.4 if语句与分支的嵌套结构 74
4.2.5 条件运算符与二分支结构 75
4.3 break语句与switch语句 76
4.3.1 break语句 76
4.3.2 switch语句 76
4.4 语句标号和goto语句 78
4.5 应用举例 79
4.6 小结与提高 80
4.7 思考与练习 81
第5章 循环结构程序设计 85
5.1 while语句 85
5.2 do…while语句 87
5.3 for语句 90
5.4 三种循环语句的比较 93
5.5 循环的嵌套结构 93
5.6 break语句和continue语句 95
5.6.1 break语句 95
5.6.2 continue语句 97
5.7 程序举例 98
5.8 小结与提高 103
5.9 思考与练习 104
第6章 数组 110
6.1 一维数组 110
6.1.1 一维数组的定义 110
6.1.2 一维数组的初始化 112
6.1.3 一维数组应用举例 114
6.2 二维数组 118
6.2.1 二维数组的定义 118
6.2.2 二维数组的初始化 119
6.2.3 二维数组应用举例 120
6.3 字符数组与字符串 122
6.3.1 一维字符数组与一个字符串 123
6.3.2 二维字符数组与一组字符串 129
6.3.3 字符数组应用举例 129
6.4 数组综合应用举例 131
6.5 小结与提高 133
6.6 思考与练习 133
第7章 函数 144
7.1 概述 144
7.2 函数定义 146
7.2.1 函数名与形参 147
7.2.2 函数体 149
7.2.3 函数值与函数值的数据类型 150
7.3 函数调用 151
7.3.1 实参 151
7.3.2 函数调用在main中出现的位置 157
7.4 函数声明 157
7.5 变量的存储属性 159
7.5.1 变量的存储类型 160
7.5.2 局部变量 160
7.5.3 外部变量 165
7.6 数组的存储属性 169
7.7 动态存储方式与静态存储方式 170
7.8 小结与提高 171
7.9 思考与练习 172
第8章 指针 181
8.1 指针与基本类型的变量 181
8.1.1 与指针有关的基本概念 181
8.1.2 指针变量的定义与使用 182
8.1.3 指针变量作为被调函数的形参 186
8.2 指针与一维数组 189
8.2.1 一维数组元素的间接访问 189
8.2.2 用指针变量存放一维数组元素的地址 190
8.2.3 一维数组作为函数参数 193
8.3 指针与二维数组 196
8.3.1 二维数组行与元素的表示 196
8.3.2 用指针变量存放二维数组元素的地址与行地址 199
8.3.3 二维数组作为函数参数 201
8.4 指针与字符串 202
8.4.1 一个字符串的表示 202
8.4.2 一组字符串的表示 207
8.5 指向指针的指针 210
8.6 小结与提高 212
8.7 思考与练习 212
第9章 对函数的进一步讨论与预处理命令 220
9.1 函数的嵌套调用 220
9.2 递归函数与递归调用 221
9.3 指针与函数 223
9.3.1 返回值为指针的函数 223
9.3.2 指向函数的指针变量 225
9.4 函数值的存储属性 228
9.5 main函数的参数 228
9.6 预处理命令 230
9.6.1 宏定义 230
9.6.2 文件包含 236
9.6.3 条件编译 238
9.7 小结与提高 241
9.8 思考与练习 242
第10章 结构体、共用体与枚举类型 245
10.1 结构体 245
10.1.1 结构体类型 246
10.1.2 结构体变量 247
10.1.3 结构体数组 252
10.1.4 指向结构体类型的指针 256
10.1.5 结构体与函数 258
10.2 链表 262
10.2.1 用指针和结构体构成链表 262
10.2.2 处理动态链表所需的函数 264
10.2.3 链表的基本操作 265
10.3 共用体 268
10.3.1 共用体类型 268
10.3.2 共用体变量 269
10.3.3 共用体应用举例 271
10.4 枚举 273
10.4.1 枚举类型 273
10.4.2 枚举变量 273
10.5 类型定义语句typedef 276
10.6 小结与提高 277
10.7 思考与练习 278
第11章 文件 285
11.1 与文件有关的概念 285
11.1.1 ASCII文件与二进制文件 285
11.1.2 缓冲文件系统 286
11.1.3 文件型指针 287
11.2 文件的打开与关闭 288
11.2.1 文件的打开 288
11.2.2 文件的关闭 290
11.3 文件的读/写操作 290
11.3.1 fputc函数与fgetc函数的使用 290
11.3.2 fgets函数与fputs函数的使用 293
11.3.3 fscanf函数与fprintf函数的使用 295
11.3.4 按数据块方式读写——fwrite函数与fread函数 296
11.4 文件的定位 298
11.5 小结与提高 300
11.6 思考与练习 301
附录A 常用字符与ASCII码对照表 303
附录B 运算符的优先级和结合性 304
附录C C语言中的关键字 306
附录D C语言中的库函数 307
主要参考文献 313