第一章 C语言 特点与上机操作 1
1.1 C语言特点 1
1.1.1 C 语言的产生与发展 1
1.1.2 计算机语言与程序设计 1
1.1.3 C语言的特点 2
1.2 C语言程序基本组成 2
1.3 Turbo C2.0上机步骤 5
1.3.1 编辑,编译,连接,执行及调试程序的概念 5
1.3.2 Turbo C的上机步骤 6
习题 7
第二章 C 语言的语法基础 8
2.1 基本数据类型 8
2.1.1 标识符与基本数据类型 8
2.1.2 常量与变量 10
2.1.3 内存的概念 15
2.2 基本输入,输出函数 17
2.2.1 格式输入函数和格式输出函数 17
2.2.2 非格式化输入,输出函数 26
2.3 运算符与表达式 28
2.3.1 算术运算 29
2.3.2 增1 与减1运算 30
2.3.3 关系,逻辑及条件运算 31
2.3.4 位运算 33
2.3.5 赋值运算 35
2.3.6 类型转换 39
2.3.7 逗号运算 39
2.3.8 长度运算符 39
习题 40
2.4 小结 40
3.1 C语言的语句 45
第三章 程序控制结构 45
3.2 顺序结构 46
3.3 分支结构 47
3.3.1 if结构 47
3.3.2 switch结构 51
3.4 循环结构 54
3.4.1 当型循环(前判定循环) 54
3.4.2 直到型循环(后判定循环) 58
3.4.3 break语句与continue 语句 61
3.5 goto语句与标号 65
习题 67
4.1.1 一维数组 71
第四章 构造型数据类型 71
4.1 数组 71
4.1.2 字符数组 78
4.1.3 二维数组 81
4.2 结构体 86
4.2.1 结构体的概念 86
4.2.2 结构体类型及结构体变量 87
4.2.3 结构体变量的使用 89
4.2.4 结构体变量,结构体数组的初始化 93
4.2.5 位段 95
4.3 共用体 96
4.3.1 共用体的概念,类型说明和变量定义 96
4.3.2 共用体变量的使用 99
4.4 枚举型 101
4.5 的用途 102
4.6 小结 103
习题 104
第五章 指针 112
5.1 指针与指针变量 112
5.1.1 指针的基本概念 112
5.1.2 指针变量的定义 113
5.1.3 指针变量的赋值 114
5.2 指针运算符 116
5.2.1 指针运算符号 116
5.2.2 无类型指针 117
5.3 指地与一维数组 118
5.3.1 指针与一维数组 118
5.3.2 移动指针及两指针相减运算 120
5.3.3 指针比较 121
5.3.4 字符串 123
5.3.5 指针与二维数组 127
5.4 指向指针的指针 135
5.4.1 指向指针的指针 135
5.4.2 定义指向指针的指针变量 136
5.4.3 指向指针的指针变量的应用 137
5.5 指针与结构 138
5.5.1 指向结构体变量的指针变量 138
5.5.2 指向结构体数组的指针变量 139
5.5.3 通过指针变量存取位段数据 141
5.6 指向共用体和枚举型的指针 141
5.6.1 指向共用体变量的指针变量 141
5.7.1 指针概念综述 143
5.6.2 指向枚举型的指针变量 143
5.7 指针小结 143
5.7.2 指针运算小结 144
5.7.3 等价表达式 145
习题 146
第六章 函数 154
6.1 常见的系统库函数 154
6.1.1 字符与字符串函数 155
6.1.2 简单数学函数 158
6.1.3 类型转换函数 160
6.2 用户自定义函数 161
6.2.1 函数定义,调用和说明 161
6.2.2 函数返回值 164
6.2.3 函数参数 165
6.3 函数的嵌套调用及递归调用 166
6.3.1 函数的嵌套调用 166
6.3.2 函数的递归调用 167
6.4 局部变更与全局变量 174
6.5 变量的存储类型与变量的初始化 176
6.6 外部函数与内部函数 180
6.7 编译预处理 185
6.7.1 文件包含 185
6.7.2 宏定义 185
6.7.3 条件编译 187
习题 188
第七章 数组,指针,函数的应用 191
7.1 概述 191
7.2.1 函数数据按数值传递 193
7.2 函数之间的数据传递 193
7.2.2 函数数据按地址传递 194
7.2.3 利用函数返回值和外部变量进行函数数据传递 203
7.2.4 结构作为函数参数传递 204
7.3 函数指针与指针函数 207
7.3.1 函数指针 207
7.3.2 指针函数 209
7.4 数组指针,指针数组与带参的main 函数 211
7.4.1 数组指针 211
7.4.2 指针数组 211
7.4.3 带参的main 函数 212
7.5.1 单向链表的概念 214
7.5.2 链表的建立 214
7.5 单向链表 214
7.5.4 链表结点的插入 218
7.6 小结 220
习题 221
第八章 文件 229
8.1 文件,流和文件系统 229
8.2 缓冲文件系统 230
8.2.1 文件的打开、关闭和文件结束测试 231
8.2.2 文件的读写 232
8.2.3 文件的定位 237
8.2.4 出错的处理 240
8.3 非缓冲文件系统 240
习题 243
9.1.1 图形模式的初始化 246
9.1 图形处理 246
第九章 实用程序设计初步 246
9.1.2 独立图形运行程序的建立 249
9.1.3 屏幕颜色的设置和清屏函数 249
9.1.4 基本图形函数 251
9.1.5 填充 254
9.1.6 图形窗口和图形屏幕操作函数 257
9.1.7 图形模式下的文本输出 259
9.2 中断处理 263
9.2.1 中断的允许和禁止 264
9.2.2 DOS与BIOS功能调用 264
9.2.3 中断服务程序 269
10.1 C++的新特征 271
10.1.1 C++的输入/输出 271
第十章 C++简介 271
10.1.3 C++的函数原型 273
10.1.3 C++函数的缺省参数 273
10.1.4 C++的new与delete 274
10.1.5 C++的内联函数 275
10.1.6 C++的引用 276
10.1.7 C++面向对象编程基础 277
10.2 编程的核心技术 279
10.2.1 类的定义与使用 279
10.2.2 数据的封装 281
10.2.3 函数的重载 283
10.2.4 对象的初始化 283
10.2.5 缺少构造函数,拷贝构造函数与析构函数 285
10.3 类成员与对象的构造 287
10.3.1 使用this指针 287
10.3.2 使用静态成员 289
10.3.3 使用友员 293
10.3.4 使用对象成员 294
10.3.5 使用对象数组 296
10.3.5 使用指向对象的指针 298
10.3.7 类型的转换 299
10.4 派生类的构造 300
10.4.1 派生类的定义 300
10.4.2 类的保护成员 302
10.4.3 访问权限的设置 303
10.4.4 派生类的构造函数与析构函数 305
10.4.5 多重继承 307
10.4.6 在派生类中改写基类的成员函数 308
10.4.7 虚拟函数 310
10.5.1 运算符重载的作用与形式 314
10.4.8 纯虚拟函数与抽象类 314
10.5 运算符重载 314
10.5.2 类运算符与友员运算符 315
10.5.3 ++与- -运算符的重载 317
10.5.4 重载new和delete 320
10.6 输入/输出流的使用 320
10.6.1 标准的屏幕输出 321
10.6.2 标准的键盘输入 327
10.6.3 用户自定义类的输入/输出 329
10.6.4 格式化字符串流类的使用 331
10.6.5 磁盘文件的输入/输出 333
10.6.6 打印机的使用 342
10.7 模板 343
10.7.1 模板的基本概念 343
10.7.2 函数模式的定义与使用 344
10.7.3 类模板的定义与使用 346
习题 348
第十一章 Turbo C集成开发环境中调试程序 353
11.1 Turbo C集成开发环境调试程序基本要领 353
11.1.1 纠正编译错误 353
11.1.2 纠正连接错误 357
11.1.3 纠正逻辑错误 358
11.2 调试程序实例 362
11.3 调试程序命令和热键小线 367
11.4 Turbo C程序的常见错误 368
11.4.1 使用变量容易出现的错误 368
11.4.2 编写表达式容易出现的错误 368
11.4.3 使用语句容易出现的错误 370
11.4.4 使用数组容易出现的错误 372
11.4.5 使用库函数容易出现的错误 373
11.4.6 使用自定义函数容易出现的错误 374
11.4.7 使用指针变量容易出现的错误 377
11.4.8 其他常见错误 378
11.5 小结 379
习题 379
附录A C语法摘要 380
附录B 数值系统 385
附录C Turbo C 2.0集成开发环境的使用 390
附录D ASCII字符集 402
附录E 运算符的优先级与结合性 404
附录F Turbo C的部分标准函数 405
附录G 编译错误信息 409
附录H 习题参考答案 417