第1章 C语言概述 1
1.1 C语言的发展及主要特点 1
1.1.1 C语言的发展史 1
1.1.2 C语言的主要特点 2
1.2 C程序的基本结构 2
1.2.1 C程序的实例 2
1.2.2 输入输出函数的简单介绍 4
1.2.3 C程序的基本结构 5
1.2.4 C语言的词汇 5
1.3 C程序的开发过程 7
1.4 C语言集成开发环境的使用 8
1.4.1 Turbo C 2.0的启动 8
1.4.2 Turbo C的集成开发环境 9
1.4.3 配置TC工作环境 10
1.4.4 调试C程序的步骤 12
1.5 C与C++语言(选学) 14
1.5.1 C语言与C++的历史 14
1.5.2 简单的C++程序——两个整数相加 18
本章习题 19
第2章 基本数据类型和运算 21
2.1 C语言的数据类型 21
2.1.1 C语言具有哪些数据类型 21
2.1.2 C语言的基本数据类型 21
2.1.3 基本数据类型的修饰 22
2.2 常量及其类型 23
2.2.1 整型常量 23
2.2.2 实型常量 24
2.2.3 字符型常量 25
2.2.4 字符串常量 26
2.2.5 符号常量 27
2.3 变量及类型 28
2.3.1 变量及其定义 28
2.3.2 整型变量 29
2.3.3 实型变量 31
2.3.4 字符型变量 32
2.3.5 字符串变量 33
2.4 运算符与表达式 33
2.4.1 运算符及运算对象 33
2.4.2 表达式 34
2.4.3 算术运算符 35
2.4.4 关系运算符 38
2.4.5 逻辑运算符 40
2.4.6 逗号运算符和条件运算符 42
2.4.7 长度(求字节)运算符 45
2.4.8 赋值运算符 46
2.4.9 数据之间的混合运算 47
2.5 不同数据类型的输入 50
2.5.1 printf函数 50
2.5.2 单字符输出函数putchar 55
2.6 不同数据类型的输出 56
2.6.1 scanf函数 56
2.6.2 单字符输入函数getchar、getche和getch 61
2.7 常见错误分析(选学) 62
本章习题 64
第3章 结构化程序设计 70
3.1 结构化程序设计的思想及流程图 70
3.1.1 结构化程序设计思想 70
3.1.2 流程图 70
3.2 结构化程序设计的三种基本结构 71
3.2.1 顺序结构 71
3.2.2 选择结构 73
3.2.3 循环控制 82
3.2.4 循环的嵌套 88
3.2.5 几种循环的比较 90
3.3 几种转移控制语句 90
3.3.1 break语句 90
3.3.2 continue语句 91
3.3.3 break语句与continue语句的区别 92
3.3.4 goto语句 93
3.3.5 return语句 94
3.4 C程序语句 94
3.5 C程序举例 95
3.6 本章容易出现错误的知识点总结(选学) 98
本章习题 101
第4章 数组和字符串 107
4.1 数组的基本概念 107
4.2 一维数组 107
4.2.1 一维数组的定义 108
4.2.2 一维数组的初始化 108
4.2.3 一维数组的引用 109
4.3 二维数组 113
4.3.1 二维数组的定义 113
4.3.2 二维数组的初始化 114
4.3.3 二维数组的引用 116
4.4 字符串与字符函数 117
4.4.1 字符数组 118
4.4.2 字符串与字符数组 120
4.4.3 字符串处理函数 123
4.4.4 字符串函数应用举例 129
4.5 数组与字符串的应用举例(选学) 131
本章习题 136
第5章 函数 142
5.1 C程序的模块结构 142
5.1.1 C程序的模块化结构概念 142
5.1.2 函数的概述 142
5.2 函数的分类 143
5.3 函数的定义和调用 145
5.3.1 函数的声明 145
5.3.2 函数的定义 145
5.3.3 有参函数和无参函数 147
5.3.4 函数的调用 149
5.4 函数间的参数传递 151
5.4.1 函数的参数和值 152
5.4.2 用数组作为函数参数进行传递 154
5.4.3 参数传递举例 154
5.5 函数的嵌套与递归 157
5.5.1 函数的嵌套 157
5.5.2 函数的递归 158
5.6 系统函数 160
5.6.1 常用的数学函数 161
5.6.2 字符函数 165
5.6.3 其他函数 166
5.7 变量的存储类别、作用域、生存期 168
5.7.1 变量的作用域 168
5.7.2 变量的存储类型和生存期 169
5.7.3 变量在使用中的注意事项 172
5.8 程序举例(选学) 175
本章习题 177
第6章 指针 184
6.1 指针的基本概念 184
6.1.1 指针和指针变量 184
6.1.2 指针变量的定义 185
6.1.3 指针变量赋值 186
6.2 指针变量的运算 186
6.2.1 指针运算符 187
6.2.2 指针变量的运算 189
6.3 指向数组元素的指针 192
6.4 指向多维数组的指针变量 196
6.5 指向字符串的针指变量 198
6.6 指针型函数 202
6.6.1 指针型函数的定义方法 202
6.6.2 函数指针变量 202
6.7 二级指针 205
6.7.1 一级指针和二级指针的概念 205
6.7.2 二级指针的定义 205
6.7.3 二级指针的使用 206
6.8 程序举例 207
6.9 用指针进行内存动态分配 211
6.9.1 内存动态分配的含义 211
6.9.2 动态内存分配的步骤 211
6.9.3 常用的内存动态分配函数 211
6.10 指针数据类型的总结(选学) 214
本章习题 215
第7章 复合结构类型 219
7.1 结构体类型的概述 219
7.2 结构体类型的定义 220
7.3 结构体变量的定义及内存分配 222
7.3.1 结构体变量的定义 222
7.3.2 结构体类型的内存分配模式 224
7.4 结构体变量的初始化和引用 225
7.4.1 结构体变量的初始化 225
7.4.2 结构体变量的引用 226
7.5 结构体数组 227
7.5.1 结构体数组的定义 227
7.5.2 结构体数组的初始化 228
7.6 结构体变量和结构体数组成员的访问 230
7.6.1 访问结构体成员运算符 230
7.6.2 访问结构体成员的方法 231
7.7 指向结构体类型数据的指针 233
7.7.1 结构体指针的初始化 233
7.7.2 结构体指针的应用 233
7.8 结构体类型与函数 235
7.8.1 结构体类型的数据作函数的参数 235
7.8.2 返回值为结构体类型的函数 240
7.8.3 返回值为结构体指针类型的函数 242
7.9 用递归结构处理链表 244
7.9.1 递归结构 244
7.9.2 链表的概念 244
7.9.3 动态链表的基本操作 245
7.10 共用体类型 247
7.10.1 共用体类型的定义 248
7.10.2 共用体变量的定义 249
7.10.3 共用体变量的引用 250
7.10.4 共用体类型数据的特点 252
7.10.5 结构体和共用体的区别 254
7.11 枚举类型 255
7.11.1 枚举类型的定义 256
7.11.2 枚举变量的定义 256
7.11.3 为枚举常量赋初值 257
7.11.4 枚举中的几条规定 257
7.12 用typedef定义类型 260
7.12.1 typedef定义类型的格式 260
7.12.2 typedef定义类型的几点说明 261
7.12.3 类型定义的使用 261
7.13 程序举例(选学) 263
本章习题 265
第8章 编译预处理 274
8.1 编译预处理命令 274
8.2 宏定义 275
8.2.1 无参宏的定义 275
8.2.2 带参数宏的定义 280
8.2.3 宏替换与函数调用的区别 281
8.2.4 宏定义的解除和重新定义宏 282
8.3 文件包含 283
8.3.1 文件包含的格式 283
8.3.2 文件包含的功能 285
8.4 条件编译 286
8.4.1 条件编译命令的形式 286
8.4.2 条件编译的功能 288
8.5 程序举例(选学) 289
本章习题 291
第9章 位运算 296
9.1 位运算符与位运算 296
9.1.1 位逻辑运算符与位逻辑运算 296
9.1.2 移位运算符 299
9.1.3 复合赋值位运算符 299
9.1.4 位运算符的优先级与结合性 300
9.1.5 不同长度的数据进行位运算 300
9.2 位段 301
9.3.1 位段结构类型及位段结构变量的定义 301
9.3.2 位段结构的存储 303
9.3.3 位段结构的使用 304
9.3 程序举例(选学) 304
本章习题 305
第10章 文件 309
10.1 文件的概述 309
10.1.1 数据文件 309
10.1.2 文件的存取方式 310
10.1.3 流和文件 310
10.1.4 文件指针类型 311
10.1.5 文件操作的步骤 311
10.2 文件的打开与关闭 312
10.2.1 文件的打开 312
10.2.2 文件的关闭 314
10.3 文件测试函数 316
10.4 文件的读写操作 316
10.4.1 字符读写函数 316
10.4.2 数据读写函数 320
10.4.3 字符串读写函数 322
10.4.4 格式化读写函数 323
10.4.5 其他读写函数 324
10.5 出错的检测 325
10.5.1 ferror函数 325
10.5.2 clearerr函数 326
10.6 文件的随机读写操作 326
10.7 程序举例(选学) 327
本章习题 330
附录A C语言的运算符种类、优先级和结合性 334
附录B 常用ASCII码对照表 337
附录C C语言中的关键字 339
附录D 常用库函数 340
参考文献 343