第1章 C语言概述 1
1.1 C语言的发展及主要特点 1
1.1.1 C语言的发展史 1
1.1.2 C语言的主要特点 1
1.2 C程序的基本结构 2
1.2.1 C程序的实例 2
1.2.2 输入/输出函数的简单介绍 4
1.2.3 C程序的基本结构 4
1.2.4 C语言的词汇 5
1.3 C程序的开发过程 6
1.4 C语言集成开发环境的使用 7
1.4.1 Turbo C 2.0的启动 8
1.4.2 Turbo C的集成开发环境 8
1.4.3 确立TC工作环境 9
1.4.4 调试C程序的步骤 11
本章习题 13
第2章 基本数据类型和运算 15
2.1 C语言的数据类型 15
2.1.1 C语言具有的数据类型 15
2.1.2 C语言的基本数据类型 16
2.1.3 基本数据类型的修饰 16
2.2 常量及其类型 17
2.2.1 整型常量 17
2.2.2 实型常量 18
2.2.3 字符型常量 19
2.2.4 字符串常量 20
2.2.5 符号常量 20
2.3 变量及其类型 22
2.3.1 变量及其定义 22
2.3.2 整型变量 22
2.3.3 实型变量 24
2.3.4 字符型变量 25
2.3.5 字符串变量 26
2.4 运算符与表达式 26
2.4.1 运算符及运算对象 26
2.4.2 表达式 27
2.4.3 算术运算符 28
2.4.4 关系运算符 31
2.4.5 逻辑运算符 33
2.4.6 逗号运算符和条件运算符 35
2.4.7 长度(求字节)运算符 37
2.4.8 赋值运算符 38
2.4.9 数据之间的混合运算 38
2.5 不同数据类型的输出 41
2.5.1 printf函数 41
2.5.2 单字符输出函数putchar 45
2.6 不同数据类型的输入 46
2.6.1 scanf函数 46
2.6.2 单字符输入函数getchat()、getche()和getch() 50
2.7 常见错误分析(选学) 51
本章习题 53
第3章 结构化程序设计 58
3.1 结构化程序设计的思想及流程图 58
3.1.1 结构化程序设计思想 58
3.1.2 流程图 58
3.2 结构化程序设计的三种基本结构 59
3.2.1 顺序结构 59
3.2.2 选择结构 61
3.2.3 循环结构 69
3.3 几种转移控制语句 76
3.3.1 break语句 76
3.3.2 continue语句 76
3.3.3 goto语句 78
3.3.4 return语句 79
3.4 C程序语句 79
3.5 C程序举例 80
3.6 本章容易出现错误的知识点总结(选学) 83
本章习题 85
第4章 数组及字符串 90
4.1 数组的概念 90
4.2 一维数组 90
4.2.1 一维数组的定义 90
4.2.2 一维数组的初始化 91
4.2.3 一维数组的引用 92
4.3 二维数组 95
4.3.1 二维数组的定义 95
4.3.2 二维数组的初始化 96
4.3.3 二维数组的引用 98
4.4 字符串与字符函数 98
4.4.1 字符数组 98
4.4.2 字符串与字符数组 101
4.4.3 字符串处理函数 104
4.4.4 字符串函数应用举例 108
4.5 数组与字符串的应用举例(选学) 110
本章习题 114
第5章 函数 120
5.1 C程序的模块结构 120
5.1.1 C程序的模块化结构概念 120
5.1.2 函数的概述 121
5.2 函数的分类 121
5.3 函数的定义和调用 122
5.3.1 函数的说明 122
5.3.2 函数的定义 123
5.3.3 有参函数和无参函数 124
5.3.4 函数的调用 126
5.4 函数间的参数传递 128
5.4.1 函数的参数和值 128
5.4.2 用数组作为函数参数进行传递 130
5.4.3 参数传递举例 131
5.5 函数的嵌套与递归 133
5.5.1 函数的嵌套 133
5.5.2 函数的递归 134
5.6 系统函数 136
5.6.1 常用的数学函数 136
5.6.2 字符函数 140
5.6.3 其他函数 141
5.7 变量的存储类别、作用域、生存期 143
5.7.1 变量的作用域 143
5.7.2 变量的存储类别和生存期 143
5.7.3 变量在使用中的注意事项 146
5.8 程序举例(选学) 148
本章习题 151
第6章 指针 157
6.1 指针的基本概念 157
6.1.1 指针和指针变量 157
6.1.2 指针变量的定义 158
6.1.3 指针变量赋值 158
6.2 指针变量的运算 159
6.2.1 指针运算符 159
6.2.2 指针变量的运算 161
6.3 指向数组元素的指针 165
6.4 指向二维数组的指针变量 168
6.5 指向字符串的指针变量 170
6.6 指针型函数 173
6.6.1 指针型函数的定义方法 173
6.6.2 函数指针变量 173
6.7 指针数组 174
6.8 二级指针 175
6.8.1 一级指针和二级指针的概念 175
6.8.2 二级指针的定义 176
6.8.3 二级指针的使用 176
6.9 程序举例 177
6.10 用指针进行内存动态分配 180
6.10.1 内存动态分配的含义 180
6.10.2 内存动态分配的步骤 180
6.10.3 常用的内存动态分配函数 181
6.11 指针数据类型的总结(选学) 183
本章习题 184
第7章 复合结构类型 189
7.1 结构体类型的概述 189
7.2 结构体类型的定义 190
7.3 结构体变量的定义及内存分配 192
7.3.1 结构体变量的定义 192
7.3.2 结构体类型的内存分配模式 193
7.4 结构体变量的初始化和引用 194
7.4.1 结构体变量的初始化 194
7.4.2 结构体变量的引用 195
7.5 结构体数组 195
7.5.1 结构体数组的定义 196
7.5.2 结构体数组的初始化 197
7.6 结构体变量和结构体数组成员的访问 198
7.6.1 访问结构体成员运算符 198
7.6.2 访问结构体成员的方法 199
7.7 指向结构体类型数据的指针 201
7.7.1 结构体指针的初始化 201
7.7.2 结构体指针的应用 201
7.8 结构体类型与函数 203
7.8.1 结构体类型的数据作函数的参数 203
7.8.2 结构体类型的函数 206
7.9 用递归结构处理链表 210
7.9.1 递归结构 210
7.9.2 链表的概念 210
7.9.3 动态链表的基本操作 211
7.10 共用体类型 213
7.10.1 共用体的定义 213
7.10.2 共用体变量的定义 214
7.10.3 共用体变量的引用 215
7.10.4 共用体类型数据的特点 217
7.10.5 结构体和共用体的区别 218
7.11 枚举类型 219
7.11.1 枚举类型的定义 219
7.11.2 枚举变量的定义 219
7.11.3 给枚举常量赋初值 220
7.11.4 枚举中的几条规定 220
7.12 用typedef定义类型 222
7.12.1 typedef定义类型的格式 222
7.12.2 typedef定义类型的几点说明 223
7.12.3 类型定义的使用 223
7.13 程序举例(选学) 224
本章习题 226
第8章 编译预处理 232
8.1 编译预处理命令 232
8.2 宏定义 232
8.2.1 无参宏的定义 233
8.2.2 带参数宏的定义 236
8.2.3 宏替换与函数调用的区别 237
8.2.4 宏定义的解除和重新定义宏 239
8.3 文件包含 239
8.3.1 文件包含的格式 239
8.3.2 文件包含的功能 240
8.4 条件编译 241
8.4.1 条件编译命令的形式 241
8.4.2 条件编译的功能 243
8.5 程序举例(选学) 244
本章习题 246
第9章 位运算 250
9.1 位运算与位运算符 250
9.1.1 位逻辑运算 250
9.1.2 移位运算 252
9.1.3 复合赋值位运算符 253
9.1.4 不同长度的数据进行位运算 253
9.2 位段 253
9.2.1 位段结构类型及位段结构变量的定义 254
9.2.2 位段结构的存储 255
9.2.3 位段结构的使用 255
9.3 程序举例(选学) 256
本章习题 257
第10章 文件 261
10.1 文件的概述 261
10.1.1 数据文件 261
10.1.2 文件的存取方式 262
10.1.3 流和文件 262
10.1.4 文件指针类型 262
10.1.5 文件操作的步骤 263
10.2 文件的打开与关闭 263
10.2.1 文件的打开 264
10.2.2 文件的关闭 265
10.3 文件测试函数 267
10.4 文件的读写操作 267
10.4.1 字符读写函数 267
10.4.2 数据读写函数 271
10.4.3 字符串读写函数 273
10.4.4 格式化读写函数 274
10.4.5 其他读写函数 275
10.5 出错的检测 276
10.5.1 ferror函数 276
10.5.2 clearerr函数 276
10.6 文件的随机读写操作 276
10.6.1 文件头定位函数 276
10.6.2 文件随机定位函数 277
10.6.3 流式文件的定位函数 277
10.7 程序举例(选学) 277
本章习题 279
附录 283
附录一 C语言的运算符种类、优先级和结合性 283
附录二 常用ASCII码对照表 285
附录三 C语言中的关键字 287
附录四 C语言的库文件 288
附录五 Turbo C集成开发环境的使用 289
附录六 Turbo C编译错误一览 294
附录七 常用库函数 303