第1章 计算机与编程概述 1
1.1 电子计算机的昨日今朝 2
1.2 计算机硬件 4
1.3 计算机软件 10
1.4 软件开发方法 15
1.5 软件开发方法的应用 18
案例研究:将英里转换为公里 18
本章小结 21
第2章 C语言概述 23
2.1 C语言的元素 24
2.2 变量声明和数据类型 29
2.3 可执行语句 32
2.4 C程序的一般格式 39
2.5 算术表达式 41
案例研究:硬币集合求值 48
2.6 程序输出中数字的格式 52
2.7 交互模式,批处理模式和数据文件 54
2.8 常见编程错误 58
本章小结 63
第3章 自顶向下的函数设计 69
3.1 从现有信息中构建程序 70
案例研究:求圆的面积与圆周 71
案例研究:计算一批平垫圈的重量 73
3.2 库函数 77
3.3 自顶向下的设计与结构图 82
案例研究:绘制简单图 82
3.4 无参量函数 83
3.5 带有输入参量的函数 90
3.6 常见编程错误 98
本章小结 98
第4章 选择结构:If语句和Switch语句 105
4.1 控制结构 106
4.2 条件 106
4.3 if语句 114
4.4 使用复合语句的if语句 118
4.5 算法中的决策步骤 121
案例研究:水费问题 121
4.6 更多问题解决方案 129
案例研究:有节约要求的水费问题 130
4.7 嵌套的if语句和多选决策 132
4.8 switch语句 139
4.9 常见编程错误 143
本章小结 144
第5章 循环与循环语句 153
5.1 程序中的循环 154
5.2 计数循环和while语句 155
5.3 在循环中求和或求积 158
5.4 for语句 162
5.5 条件循环 169
5.6 循环设计 173
5.7 嵌套循环 179
5.8 do-while语句和标志控制的循环 182
5.9 问题求解示例 185
案例研究:太阳能式房屋的采光面积 186
5.10 如何调试和测试程序 191
5.11 常见编程错误 193
本章小结 195
第6章 模块化编程 205
6.1 包含简单输出参数的函数 206
6.2 用输入/输出参数多次调用一个函数 212
6.3 名称的作用域 216
6.4 作为实参的输出形参 218
6.5 包含多个函数的程序 221
案例研究:简分数运算 221
6.6 程序的调试与测试 229
6.7 常见编程错误 231
本章小结 231
第7章 简单数据类型 241
7.1 数字类型的表示与转换 242
7.2 字符类型的表示与转换 247
7.3 枚举类型 249
7.4 迭代近似法 253
案例研究:求根的二分法 255
7.5 常见编程错误 261
本章小结 261
第8章 数组 270
8.1 数组的声明与引用 271
8.2 数组下标 274
8.3 使用for循环顺序访问 275
8.4 使用数组元素作为函数参量 279
8.5 数组参量 281
8.6 数组的搜索与排序 291
8.7 多维数组 295
8.8 数组处理 299
案例研究:销售数据分析 299
8.9 常见编程错误 306
本章小结 307
第9章 字符串 317
9.1 字符串基础 318
9.2 字符串库函数:赋值与子串 322
9.3 更长的字符串:串联和整行输入 329
9.4 字符串比较 333
9.5 指针数组 336
9.6 字符操作 341
9.7 字符串与数字的相互转换 344
9.8 字符串处理示例 350
案例研究:文本编辑器 350
9.9 常见编程错误 357
本章小结 358
第10章 递归 367
10.1 递归的特性 368
10.2 跟踪递归函数 371
10.3 递归数学函数 378
10.4 使用数组和字符串参数的递归函数 382
案例研究:找出字符串中的大写字母 382
案例研究:递归选择排序 385
10.5 用递归解决问题 388
案例研究:集合操作 388
10.6 递归的经典案例:汉诺塔 395
10.7 常见编程错误 399
本章小结 400
第11章 结构与联合类型 405
11.1 用户定义的结构类型 406
11.2 结构类型数据作为输入和输出参数 410
11.3 结果值为结构的函数 414
11.4 结构类型问题求解 417
案例研究:用于处理复数的用户定义类型 417
11.5 平行数组和结构的数组 423
案例研究:通用度量转换 425
11.6 联合类型(选修) 432
11.7 常见编程错误 436
本章小结 437
第12章 文本与二进制文件处理 446
12.1 输入/输出文件:过去与未来 447
12.2 二进制文件 454
12.3 搜索数据库 459
案例研究:数据库查询 459
12.4 常见编程错误 467
本章小结 468
第13章 编写大型程序 474
13.1 使用抽象管理复杂性 475
13.2 个人库:头文件 477
13.3 个人库:实现文件 480
13.4 存储类别 483
13.5 为包含进库中修改函数 487
13.6 条件编译 489
13.7 main函数的参量 492
13.8 定义包含参数的宏 494
13.9 常见编程错误 498
本章小结 498
第14章 动态数据结构 505
14.1 指针 506
14.2 动态内存分配 509
14.3 链表 513
14.4 链表运算符 518
14.5 用链表表示堆栈 522
14.6 用链表表示队列 525
14.7 有序列表 531
案例研究:维护整数有序列表 531
14.8 二叉树 540
14.9 常见编程错误 548
本章小结 548
第15章 C++入门 555
15.1 C++控制结构、输入/输出和函数 556
15.2 C++面向对象编程 560
本章小结 570
附录A 575
附录B ANSI C标准库 577
附录C C的运算符 590
附录D 指针进阶 595
附录E ANSI C保留字 599
附录F 使用C++BUILDER和BORLAND C++编译器 600
本书练习答案 606
词汇表 629