第一章 C语言概述 1
第一节 C语言出现的历史背景和特点 1
一 C语言出现的历史背景 1
第一篇 初步C程序设计技术 1
二 C语言的特点 2
三 C语言与其它高级语言的比较 3
第二节 C语言程序的书写格式和结构特点 4
一 简单的C程序介绍 4
二 C程序的书写特点 5
三 C程序的结构特点 6
第三节 简单的输入输出 6
一 格式化输出函数 6
二 格式化输入函数 7
四 字符输出函数 8
三 字符输入函数 8
第四节 C程序的开发过程 9
一 源文件的编辑 9
二 编译过程 9
三 链接过程 10
四 运行程序 10
第五节 Turbo C集成开发环境的使用 11
一 Turbo C主菜单功能简介 11
二 Turbo C子菜单功能简介 12
三 在集成环境下编辑源程序 13
四 在集成开发环境下开发一个简单的C程序 15
思考与练习一 15
一 五种基本类型及其长度 16
第一节 C的数据类型 16
第二章 数据类型、常量与变量 16
二 基本类型修饰符 17
三 标识符 17
第二节 常量 18
一 常量及分类 18
二 数值常量 19
三 字符常量 20
四 字符串常量 20
五 系统定义的常量 20
六 符号常量 20
第三节 变量及其数据类型 22
一 变量的定义和变量的地址 22
三 数据类型的转换 23
二 变量的数据类型 23
第四节 变量的存贮类型和使用范围 24
一 内存储区域的划分 24
二 自动变量及使用范围 25
三 寄存器型变量及使用范围 27
四 外部型变量及使用范围 27
五 静态存储类型及其变量的使用范围 30
第五节 局部变量与全局变量 31
一 局部变量 31
二 全局变量 32
第六节 变量的初始化 32
一 自动变量和寄存器变量的初始化 33
二 对外部静态变量和外部全局变量的初始化 33
二 变量修饰符volatile 34
一 变量修饰符const 34
第七节 变量修饰符 34
思考与练习二 35
第三章 运算符和表达式 37
第一节 C语言运算符和表达式简介 37
一 运算符的分类 37
二 运算符的优先级与结合性 37
第二节 算术运算符和算术表达式 39
一 基本的算术运算符 39
二 算术表达式 39
三 自增自减运算符 39
四 有关表达式使用中的问题说明 40
二 关系表达式 42
一 关系运算符及其优先级 42
第三节 关系运算符和关系表达式 42
第四节 逻辑运算符和逻辑表达式 43
一 逻辑运算符及其优先级 43
二 逻辑表达式 44
第五节 位运算符 45
一 逻辑运算符 45
二 移位运算符 47
第六节 赋值运算符和赋值表达式 48
一 赋值运算符 48
二 赋值表达式 49
三 赋值运算符应用举例 50
二 取地址内容运算符 51
第八节 条件运算符和条件表达式 51
一 取地址运算符 51
第七节 地址运算符与scanf() 51
第九节 逗号运算符和逗号表达式 52
一 逗号运算符和逗号表达式 52
二 逗号运算符的应用 52
第十节 其它运算符 52
第十一节 运算符嵌套与运算顺序 53
一 运算符嵌套 53
二 运算顺序 53
第十二节 浮点运算 53
思考与练习三 54
第四章 语句和流程控制语句 55
第一节 结构化程序设计与C语言语句 55
一 算法及其表示方法 55
二 C语句概述 56
三 结构化程序设计 57
第二节 简单语句 58
一 表达式语句 58
二 空语句 58
三 返回语句 58
四 复合语句 58
第三节 条件分支语句 59
一 if-else分支 59
二 if分支 60
三 条件分支嵌套 61
四 else if结构 61
第四节 多路开关语句switch-case 62
四 循环体 66
三 循环条件表达式 66
二 循环的执行过程 66
第五节 while循环语句 66
一 循环的程序流程和程序形式 66
五 应用举例 67
第六节 for循环语句 68
一 循环的程序流程和程序形式 68
二 循环的执行过程 68
三 循环的三个表达式 68
四 循环体 68
五 循环的变型 69
六 应用举例 69
二 循环的执行过程 71
三 do-while循环条件表达式 71
一 循环的程序流程和程序形式 71
第七节 do-while循环语句 71
四 循环体 72
五 应用举例 72
第八节 goto语句与标号 73
第九节 break和continue语句 73
一 break语句 73
二 continue语句 74
第十节 几种循环语句的比较 75
思考与练习四 75
第五章 数组 77
第一节 数组的概念及特点 77
第二节 一维数组的定义及内部表示 77
一 一维数组的定义 77
一 一维数组元素的初始化 80
二 一维数组的内部表示 80
第三节 一维数组的初始化和一维数组元素的引用 80
二 数组元素的引用 82
第四节 字符型数组与字符串 85
一 字符型数组的定义和字符串 85
二 字符型数组的初始化 86
三 字符型数组的输入输出 87
第五节 二维数组与字符串数组 89
一 二维数组的定义 89
二 二维数组的内部表示 89
三 二维数组元素的初始化 90
四 字符串数组 90
五 二维数组的应用 91
二 多维数组的内部表示 95
三 多维数组元素的引用 95
第六节 多维数组 95
一 多维数组的定义 95
思考与练习五 97
第二篇 一般C程序设计技术 99
第六章 指针变量 99
第一节 指针的概念 99
一 数据在内存中的存储 99
二 内存储单元的地址和内存储单元的内容 99
三 指针的基本概念 100
四 访问变量的方式 101
第二节 指针变量的定义及初始化 102
一 指针变量的说明 102
三 指针变量的初始化举例 103
二 指针变量的初始化 103
第三节 指针变量运算 104
一 指针算术运算 104
二 指针变量关系运算 106
三 指针变量赋值运算符 107
第四节 指针与数组 107
一 指向数组的指针 107
二 通过指针引用数组元素 108
第五节 字符指针与字符数组 111
一 字符串的表示形式 111
二 字符指针变量与字符串 111
三 字符指针变量的应用 113
一 指针数组的概念 114
第六节 指针数组 114
二 指针数组的初始化 115
三 指针数组的应用 116
第七节 多级指针 118
一 多级指针的概念 118
二 二级指针的定义 119
三 二级指针的初始 119
四 多级指针应用 120
思考与练习六 125
第七章 函数 127
第一节 模块化软件与C语言程序结构 127
一 模块化软件及其优点 127
二 C语言的程序结构 127
二 函数定义的一般格式 128
一 函数的存储类型和数据类型 128
第二节 函数定义的一般形式 128
第三节 函数的实参数和形式参数及函数值 131
一 函数的实参和形参 131
二 函数的返回值 131
第四节 函数的调用 132
一 函数调用的一般形式 132
二 函数调用的方式 133
三 对被调函数的说明 133
四 从被调用函数中返回 134
第五节 函数间的参数传递方式 134
一 值传递方式 134
二 地址传递方式 136
三 利用参数返回函数结果 137
四 通过全局变量返回函数值 138
第六节 函数与数组 139
一 数组元素做函数的实参数 139
二 数组名做函数的实参数 140
三 多维数组作函数参数 142
第七节 指针型函数 143
第八节 函数与字符串 146
一 定义处理字符串的函数 146
二 标准字符串处理函数 148
三 对存储区数组进行操作的函数 151
四 字符串函数应用举例 151
第九节 递归函数 153
第十节 指向函数的指针 158
一 函数指针变量的定义 158
二 函数指针变量的应用 159
三 函数指针数组 161
一 命令行参数的说明 163
第十一节 main()函数的参数应用及返回值 163
二 命令行参数应用举例 164
三 main()函数的返回值 166
第十二节 参数个数不定的函数 166
一 定义参数个量不定的函数 166
二 有关头文件stdarg.h的使用说明 166
思考与练习七 168
第八章 编译预处理 169
第一节 宏定义语句 169
一 不带参数的宏定义 170
二 带参数的宏定义 172
四 宏定义与函数的区别 175
三 取消宏定义 175
第二节 文件包含处理 176
第三节 条件编译 177
一 ifdef语句 177
二 #ifndef语句 178
三 #if语句 178
四 #if—#elif语句 179
第四节 预定义宏名 179
一 ANSI的预定义宏 179
二 Turbo C预定义的宏 180
第五节 #error 181
第六节 #line 181
思考与练习八 182
二 #program warn 182
第七节 #program 182
一 #program inline 182
第九章 结构体和联合体 184
第一节 概述 184
第二节 定义结构体类型及结构变量的方法 184
一 结构类型的定义 184
二 定义结构体类型变量 186
第三节 结构体类型变量的引用和初始化 190
一 结构体的使用形式 190
二 结构体变量的初始化 192
第四节 结构体数组 193
一 结构体数组的定义 193
二 结构体数组的引用 194
三 结构体数组的初始化 195
二 结构指针的初始化 197
第五节 结构指针 197
一 结构指针 197
三 用结构指针引用结构成员 198
四 结构指针的运算 198
五 指向结构体数组的指针 200
第六节 结构体在函数间的传递 201
一 采用数据复制方式传递结构体 201
二 采用数据地址复制方式传递结构体 203
第七节 结构型函数和结构指针型函数 206
一 结构型函数 206
二 结构指针型函数 208
第八节 结构嵌套 210
第九节 位段结构体 213
一 共用体类型的说明形式 219
第十节 共用体 219
二 定义共用体类型数据 220
三 共用体类型数据的引用 221
思考与练习九 222
第十章 类型定义和枚举 223
第一节 用typedef定义类型 223
一 定义新的类型名 223
二 类型定义的作用 223
三 类型定义与编译预处理的区别 223
第二节 枚举类型 224
一 枚举类型及其变量的定义 224
二 常用的枚举类型 225
三 枚举类型应用举例 227
思考与练习十 229
第三篇 高级C程序的设计技术 230
第十一章 输入输出与标准库函数 230
第一节 文件概述 230
一 文件与流 230
二 三种类型的文件 231
三 三类输入输出函数 232
四 文件指针与文件控制 232
第二节 标准设备文件的输入输出 233
一 字符级输入输出函数 233
二 字符串输入输出函数 234
三 格式化输出函数 236
四 格式化输入函数 238
五 标准文件的转向 240
一 文件的建立、打开和关闭 241
第三节 流级文件的输入输出 241
二 文件的字符级输入输出 244
三 文件的字级输入输出 247
四 文件的字符串级输入输出 248
五 文件的指针定位与随机读写 251
六 文件的记录级输入输出 252
七 文件的格式化输入输出 253
八 文件状态控制 255
九 缓冲区控制 256
第四节 系统级文件的输入输出 257
一 文件标识符文件标识号 259
二 文件的建立、打开和关闭 259
三 文件的输入输出 263
五 有关系统有文件的其它操作函数 266
四 文件的指针定位与随机读写 266
思考与练习十一 268
第十二章 C语言与动态数据结构 269
第一节 动态存储分配 269
一 从堆中分配释放内存空间 269
二 从远堆中分配释放内存空间 269
第二节 链表 270
一 建立链表 270
二 链表的遍历 272
三 链表的删除和插入 275
四 链栈 276
思考与练习十二 282
一 BIOS概述 283
第二节 ROM-BIOS系统调用 283
第一节 调用系统资源概述 283
第十三章 调用系统资源 283
二 调用ROM BIOS软中断接口函数 284
三 应用举例 285
第三节 DOS系统调用 287
一 DOS概述 287
二 调用MS DOS功能的函数 287
三 应用举例 288
思考与练习十三 291
第十四章 存储模式和地址修饰符 292
第一节 8086处理器的寄存器简介 292
一 通用寄存器 292
二 段地址寄存器 292
三 专用寄存器 292
四 紧凑模式 293
三 中模式 293
二 小模式 293
五 大模式 293
六 特大模式 293
第二节 内存分段及地址计算 293
一 极小模式 293
第三节 Turbo c的六种存储模式 293
二 地址计算 293
一 8086的分段存储结构 293
第四节 函数、指针修饰符 294
一 近指针 294
二 远指针 294
四 四个特殊的段指针 295
三 特大指针 295
第五节 混合模式程序设计 296
一 说明远函数和近函数 296
二 明确定义数据指针 296
三 混合模式的连接 297
思考与练习十四 297
第十五章 C语言与汇编语言的混合编程 298
第一节 C语言和汇编语言混合编程概述 298
第二节 从C程序调用汇编语言程序 298
一 C语言程序的汇编列表 298
二 C程序调用汇编程序 304
三 C程序使用汇编语言程序的变量数据 306
一 汇编程序调用C函数 307
第三节 从汇编语言程序调用C函数和C变量 307
二 汇编子程序使用C程序中的变量 308
第四节 C程序和汇编语言程序间的数据传递 309
第五节 Borland C与汇编语言混合编程 312
一 简化的段指令 312
二 省略下划线 312
三 在汇编子程序中直接使用参数名 313
四 应用举例 314
思考与练习十五 315
第十六章 C程序设计的低级支撑 316
第一节 伪变量及应用 316
一 伪变量 316
二 伪变量的使用方法 317
三 伪变量应用举例 317
一 在C程序中直接插入汇编代码 318
第二节 直接插入汇编代码 318
二 四类可直接插入到C程序中的汇编语句 319
三 引用数据和函数 321
四 转跳指令和标号的使用 322
五 直接插入汇编代码的C程序的编译方法 323
六 直接插入汇编语句应用举例 323
第三节 中断函数 324
一 中断函数 324
二 中断函数应用举例 325
第四节 使用低级支撑的例子 326
思考与练习十六 327
第一节 基本概念 328
第十七章 文本模式下的程序设计 328
第二节 设置文本模式和文本窗口 330
一 设置文本模式 330
二 设置文本窗口 330
第三节 状态和属性控制 331
一 设置前景颜色和背景颜色 331
二 设置文本字符显示亮度 333
三 状态控制函数 334
第四节 文本输出和操作 334
一 文本读写函数 334
二 窗口中的文本操作 335
三 文本的存储与恢复 337
思考与练习十七 337
二 图形模式 338
一 图形卡 338
第一节 基本概念 338
第十八章 用C语言开发图形软件 338
三 颜色常量 340
第二节 图形系统控制 341
一 图形控制函数综述 341
二 图形的初始化 342
第三节 色彩控制 344
一 获得颜色信息 344
二 设置颜色信息 344
第四节 绘图和着色 346
一 绘图函数 347
二 填充函数 347
三 常用画图函数的使用 350
第五节 图形屏幕管理和视区设置 352
一 屏幕操作 353
二 视区操作 355
三 位映象操作 357
四 象素操作函数 360
第六节 图形模式下的正文输出 360
一 图形模式下有关文本信息设置的常用函数简介 360
二 图形模式下的正文输出函数 362
第七节 图形模式下的出错处理 364
思考与练习十八 364
附录 366
附录A Turbo C的连接程序TLINK 366
附录B Turbo库管理程序TLIB 370
附录C TCC命令行编译器的使用方法 374
附录D 独立的Make实用程序 382
附录E 编译错误信息 397