第1章 C语言简单程序的编写和调试 1
1.1 C语言的特点 1
1.2 C程序的基本结构 2
1.2.1 C语言的基本词法 2
1.2.2 C程序的构成 3
1.2.3 头文件和函数 4
1.3 TC环境中调试程序 5
1.3.1 编辑 5
1.3.2 编译 8
1.3.3 连接 9
1.3.4 运行 9
1.3.5 程序的跟踪调试 10
1.4 Visual C++环境中调试程序 11
1.4.1 C++源程序的建立与编辑 11
1.4.2 单文件程序的编译和运行 12
1.4.3 多文件程序的编译和运行 13
1.5 综合实例 15
本章小结 15
习题一 16
第2章 算法与结构化程序设计基础 17
2.1 算法基础 17
2.1.1 算法的特性与要求 17
2.1.2 算法的种类 18
2.1.3 算法描述 18
2.2 结构化程序设计 21
2.2.1 结构化程序设计的原则 21
2.2.2 结构化程序设计的基本结构 21
2.2.3 程序设计基本过程 22
2.3 C语言的语句 24
本章小结 25
习题二 25
第3章 C语言程序设计基础 27
3.1 基本数据类型 27
3.1.1 整型 27
3.1.2 实型 29
3.1.3 字符型 30
3.2 运算符和表达式 32
3.2.1 运算符和表达式概述 32
3.2.2 算术运算符和算术表达式 33
3.2.3 赋值运算符和赋值表达式 35
3.2.4 关系运算符和关系表达式 36
3.2.5 逻辑运算符和逻辑表达式 37
3.2.6 逗号运算符和逗号表达式 38
3.2.7 位运算符 39
3.2.8 其他运算符 41
3.3 C程序结构 42
3.3.1 C语句分类 43
3.3.2 C程序的3种基本结构 44
3.4 资料的输入与输出 45
3.4.1 格式化输出函数printf() 45
3.4.2 格式化输入函数scanf() 50
3.4.3 字符输出函数putchar() 52
3.4.4 字符输入函数getchar() 52
3.5 综合实例 53
本章小结 54
习题三 55
第4章 选择结构程序设计 59
4.1 if语句 59
4.1.1 if语句的3种形式 59
4.1.2 if语句的嵌套 63
4.1.3 使用if语句时应注意的问题 65
4.2 switch语句 66
4.3 综合实例 67
本章小结 71
习题四 71
第5章 循环结构程序设计 79
5.1 while语句 79
5.2 do...while语句 80
5.3 for语句 81
5.4 循环嵌套 83
5.5 控制转移语句 84
5.5.1 break语句 84
5.5.2 continue语句 85
5.5.3 goto语句 86
5.6 综合实例 86
本章小结 89
习题五 90
第6章 数组 101
6.1 一维数组 101
6.1.1 一维数组的定义 101
6.1.2 一维数组的初始化 102
6.1.3 一维数组元素的引用 102
6.1.4 一维数组的程序举例 103
6.2 二维数组 104
6.2.1 二维数组的定义 105
6.2.2 二维数组的初始化 105
6.2.3 二维数组元素的引用 106
6.3 字符数组 108
6.3.1 字符串与一维字符数组 108
6.3.2 二维字符数组 109
6.3.3 字符数组的输入/输出 109
6.3.4 字符串处理函数 112
6.3.5 字符数组程序举例 115
6.4 综合实例 116
本章小结 122
习题六 122
第7章 指针 131
7.1 指针和地址 131
7.2 指针变量的定义和引用 132
7.2.1 指针变量的定义 132
7.2.2 指针的引用 133
7.3 指针运算 134
7.3.1 指针的移动 134
7.3.2 指针相减 135
7.3.3 指针比较 135
7.4 指针与数组 136
7.4.1 指向一维数组的指针 136
7.4.2 通过地址引用二维数组元素 137
7.4.3 通过指针数组引用二维数组元素 139
7.4.4 通过行指针引用二维数组元素 140
7.5 指针与字符串 140
7.5.1 用字符数组处理字符串 141
7.5.2 用指针处理一维字符数组 142
7.5.3 用指针处理字符串数组 145
7.5.4 字符指针与字符数组的比较 145
7.6 指向指针的指针 147
7.7 用于动态内存分配的函数 148
7.8 综合实例 150
本章小结 155
习题七 155
第8章 函数 164
8.1 函数的定义和返回值 164
8.1.1 函数的定义 164
8.1.2 函数的返回值 165
8.2 函数的调用 166
8.3 函数的说明 167
8.4 调用函数和被调用函数之间的参数传递 168
8.4.1 传值调用 168
8.4.2 指针变量作为形参的函数调用 169
8.4.3 一维数组作为函数的实参 170
8.4.4 二维数组名作为函数的实参 171
8.5 函数的递归调用 172
8.6 传给main()函数的参数 175
8.7 综合实例 178
本章小结 181
习题八 181
第9章 编译预处理与变量的存储类型 194
9.1 宏定义 194
9.1.1 不带参数宏的定义 194
9.1.2 带参数宏的定义 196
9.2 文件包含 198
9.3 局部变量和全局变量 199
9.3.1 局部变量 199
9.3.2 全局变量 200
9.4 变量的存储类型 202
9.4.1 自动变量 202
9.4.2 静态变量 203
9.4.3 寄存器变量 204
9.4.4 外部变量 205
9.5 综合实例 207
本章小结 208
习题九 209
第10章 结构体与共用体 218
10.1 结构体类型 218
10.1.1 结构体类型和结构体变量 219
10.1.2 结构数组 224
10.1.3 结构指针 225
10.1.4 结构指针的典型应用——链表 225
10.1.5 结构与函数 232
10.2 共用体类型 236
10.3 枚举类型 239
10.4 用typedef说明一种新类型名 241
10.5 综合实例 242
本章小结 246
习题十 247
第11章 文件 255
11.1 文件的基本概念 255
11.1.1 缓冲文件系统和非缓冲文件系统 257
11.1.2 文件指针与文件位置指针 258
11.2 文件的打开与关闭 259
11.2.1 打开文件的函数fopen() 259
11.2.2 文件关闭函数fclose() 260
11.3 文件输入/输出函数 260
11.3.1 按字符方式读/写文件的函数fgetc()和fputc() 261
11.3.2 按行方式读/写文件的函数fgets()和fputs() 265
11.3.3 按格式读/写文件的函数fprintf()和fscanf() 266
11.3.4 按块读/写文件的函数fread()和fwrite() 267
11.3.5 文件定位函数 269
11.4 文件的顺序存取和随机存取 270
11.5 综合实例 272
本章小结 277
习题十一 278
第12章 C++程序设计基础 289
12.1 C++语言概述 289
12.2 C++的输入/输出流 290
12.2.1 输出流(cout) 290
12.2.2 输入流(cin) 291
12.3 变量的引用 292
12.3.1 引用的声明 292
12.3.2 将引用作为函数参数 292
12.4 函数的重载 293
12.5 带缺省参数的函数 294
12.6 C++新增运算符 295
12.6.1 作用域运算符 295
12.6.2 动态内存分配与撤销运算符 295
12.7 const修饰符 296
12.8 类和对象 297
12.8.1 类和对象的定义 298
12.8.2 构造函数和析构函数 299
12.8.3 this指针 301
12.8.4 类的友元 302
12.9 重载 303
12.9.1 类成员函数重载 303
12.9.2 类构造函数重载 304
12.9.3 运算符重载 306
12.10 继承 309
12.10.1 基类与派生类 309
12.10.2 public继承 310
12.10.3 private继承 312
12.10.4 protected继承 313
12.10.5 多继承 314
12.10.6 派生类的构造函数与析构函数 315
12.11 多态性和虚函数 318
12.11.1 类型兼容规则 318
12.11.2 多态性 319
12.11.3 虚函数 319
12.11.4 虚析构函数 321
本章小结 321
习题十二 321
附录A 常用字符与代码对照表 331
附录B 运算符的优先级与结合性 333
附录C 常用的Turbo C库函数 335
附录D Turbo C的常用热键和编辑键 341
附录E Turbo C编译错误信息 343
参考文献 356