第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 字符型常量 18
2.2.4 字符串常量 20
2.2.5 符号常量 20
2.3.1 变量及其定义 22
2.3.2 整型变量 22
2.3 变量及其类型 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.1 printf()函数 41
2.5 不同数据类型的输出 41
2.5.2 单字符输出函数putchar() 45
2.6 不同数据类型的输入 46
2.6.1 scanf()函数 46
2.6.2 单字符输入函数getchar()、getche()和getch() 50
2.7 常见错误分析(选学) 51
本章习题 53
第3章 结构化程序设计 59
3.1 结构化程序设计的思想及流程图 59
3.1.1 结构化程序设计思想 59
3.1.2 流程图 59
3.2 结构化程序设计的三种基本结构 60
3.2.1 顺序结构 60
3.2.2 选择结构 62
3.2.3 循环结构 70
3.2.4 循环的嵌套 75
3.2.5 几种循环的比较 76
3.3 几种转移控制语句 77
3.3.1 break语句 77
3.3.2 continue语句 77
3.3.3 break语句与continue语句的区别 78
3.3.4 goto语句 79
3.3.5 return语句 80
3.4 C程序语句 80
3.5 C程序举例 81
3.6 本章容易出现错误的知识点总结(选学) 84
本章习题 86
4.2 一维数组 91
4.2.1 一维数组的定义 91
4.1 数组的概念 91
第4章 数组及字符串 91
4.2.2 一维数组的初始化 92
4.2.3 一维数组的引用 93
4.3 二维数组 96
4.3.1 二维数组的定义 96
4.3.2 二维数组的初始化 97
4.3.3 二维数组的引用 99
4.4 字符串与字符函数 99
4.4.1 字符数组 99
4.4.2 字符串与字符数组 102
4.4.3 字符串处理函数 105
4.4.4 字符串函数应用举例 109
4.5 数组与字符串的应用举例(选学) 111
本章习题 115
5.1.1 C程序的模块化结构概念 122
5.1 C程序的模块结构 122
第5章 函数 122
5.1.2 函数的概述 123
5.2 函数的分类 123
5.3 函数的定义和调用 124
5.3.1 函数的说明 124
5.3.2 函数的定义 125
5.3.3 有参函数和无参函数 126
5.3.4 函数的调用 128
5.4 函数间的参数传递 130
5.4.1 函数的参数和值 130
5.4.2 用数组作为函数参数进行传递 132
5.4.3 参数传递举例 133
5.5 函数的嵌套与递归 135
5.5.1 函数的嵌套 135
5.5.2 函数的递归 136
5.6 系统函数 138
5.6.1 常用的数学函数 138
5.6.2 字符函数 142
5.6.3 其他函数 143
5.7 变量的存储类别、作用域、生存期 145
5.7.1 变量的作用域 145
5.7.2 变量的存储类别和生存期 146
5.7.3 变量在使用中的注意事项 149
5.8 程序举例(选学) 151
本章习题 153
第6章 指针 160
6.1 指针的基本概念 160
6.1.1 指针和指针变量 160
6.1.2 指针变量的定义 161
6.1.3 指针变量赋值 161
6.2.1 指针运算符 162
6.2 指针变量的运算 162
6.2.2 指针变量的运算 164
6.3 指向数组元素的指针 168
6.4 指向多维数组的指针变量 171
6.5 指向字符串的指针变量 173
6.6 指针型函数 176
6.6.1 指针型函数的定义方法 176
6.6.2 函数指针变量 176
6.7 二级指针 178
6.7.1 一级指针和二级指针的概念 178
6.7.2 二级指针的定义 179
6.7.3 二级指针的使用 179
6.8 程序举例 180
6.9.2 内存动态分配的步骤 183
6.9.1 内存动态分配的含义 183
6.9 用指针进行内存动态分配 183
6.9.3 常用的内存动态分配函数 184
6.10 指针数据类型的总结(选学) 186
本章习题 187
第7章 复合结构类型 193
7.1 结构体类型的概述 193
7.2 结构体类型的定义 194
7.3 结构体变量的定义及内存分配 196
7.3.1 结构体变量的定义 196
7.3.2 结构体类型的内存分配模式 197
7.4 结构体变量的初始化和引用 198
7.4.1 结构体变量的初始化 198
7.4.2 结构体变量的引用 199
7.5 结构体数组 199
7.5.1 结构体数组的定义 200
7.5.2 结构体数组的初始化 201
7.6 结构体变量和结构体数组成员的访问 202
7.6.1 访问结构体成员运算符 202
7.6.2 访问结构体成员的方法 203
7.7 指向结构体类型数据的指针 205
7.7.1 结构体指针的初始化 205
7.7.2 结构体指针的应用 205
7.8 结构体型与函数 207
7.8.1 结构体型的数据作函数的参数 207
7.8.2 结构体型的函数 210
7.9 用递归结构处理链表 214
7.9.1 递归结构 214
7.9.2 链表的概念 214
7.9.3 动态链表的基本操作 215
7.10.1 共用体的定义 217
7.10 共用体型 217
7.10.2 共用体变量的定义 218
7.10.3 共用体变量的引用 219
7.10.4 共用体类型数据的特点 221
7.10.5 结构体和共用体的区别 222
7.11 枚举类型 223
7.11.1 枚举型的定义 223
7.11.2 枚举变量的定义 223
7.11.3 给枚举常量赋初值 224
7.11.4 枚举中的几条规定 224
7.12 用typedef定义类型 226
7.12.1 typedef定义类型的格式 226
7.12.2 typedef定义类型的几点说明 227
7.12.3 类型定义的使用 227
7.13 程序举例(选学) 228
本章习题 230
8.1 编译预处理命令 236
8.2 宏定义 236
第8章 编译预处理 236
8.2.1 无参宏的定义 237
8.2.2 带参数宏的定义 240
8.2.3 宏替换与函数调用的区别 241
8.2.4 宏定义的解除和重新定义宏 243
8.3 文件包含 243
8.3.1 文件包含的格式 243
8.3.2 文件包含的功能 244
8.4 条件编译 245
8.4.1 条件编译命令的形式 245
8.4.2 条件编译的功能 247
8.5 程序举例(选学) 248
本章习题 250
9.1.1 位逻辑运算 254
第9章 位运算 254
9.1 位运算与位运算符 254
9.1.2 移位运算 256
9.1.3 复合赋值位运算符 257
9.1.4 不同长度的数据进行位运算 257
9.2 位段 257
9.2.1 位段结构类型及位段结构变量的定义 258
9.2.2 位段结构的存储 259
9.2.3 位段结构的使用 259
9.3 程序举例(选学) 260
本章习题 261
第10章 文件 265
10.1 文件的概述 265
10.1.1 数据文件 265
10.1.4 文件指针类型 266
10.1.2 文件的存取方式 266
10.1.3 流和文件 266
10.1.5 文件操作的步骤 267
10.2 文件的打开与关闭 267
10.2.1 文件的打开 268
10.2.2 文件的关闭 269
10.3 文件测试函数 271
10.4 文件的读写操作 271
10.4.1 字符读写函数 271
10.4.2 数据读写函数 275
10.4.3 字符串读写函数 277
10.4.4 格式化读写函数 278
10.4.5 其他读写函数 279
10.6.1 文件头定位函数 280
10.6 文件的随机读写操作 280
10.5.2 clearerr函数 280
10.5.1 ferror函数 280
10.5 出错的检测 280
10.6.2 文件随机定位函数 281
10.6.3 流式文件的定位函数 281
10.7 程序举例(选学) 281
本章习题 283
附录 287
附录一 C语言的运算符种类、优先级和结合性 287
附录二 常用ASCII码对照表 289
附录三 C语言中的关键字 291
附录四 C语言的库文件 292
附录五 Turbo C集成开发环境的使用 293
附录六 Turbo C编译错误一览 298
附录七 常用库函数 307