1.2计算机历史的简要回顾 1
16.4编程练习:复数 55 1
目 录 1
1.1导言 1
第1章 计算机和编程语言回顾 1
1.3计算机系统的组成 2
1.4计算机语言 3
1.5编程语言的发展 4
1.6处理高级语言程序 5
1.7分析问题-编码-执行 6
1.8面向对象的编程 9
1.9 ANSI/ISO标准C++ 10
1.10小结 10
1.11练习 11
第2章 C++的基本要素 13
2.1 C++程序的基础知识 14
2.2数据类型 16
2.3算术运算符和运算符优先级 20
2.4表达式 22
2.5输入 25
2.6自增和自减运算符 32
2.7输出 34
2.8预处理器指令 39
2.9编程风格和形式 41
2.10赋值语句的更多知识 45
2.11编程实例:长度转换 46
2.12编程实例:找零钱 48
2.13小结 51
2.14练习 52
2.15编程练习 58
3.1 I/O数据流和标准I/O设备 60
第3章 输入/输出 60
3.2在程序中使用预定义函数 64
3.3输入失败 69
3.4输出和格式化输出 72
3.5其他输出格式化工具 77
3.6文件输入/输出 82
3.7编程实例:电影票销售和对慈善机构的捐助 84
3.8编程实例:学生分数 88
3.9小结 91
3.10练习 92
3.11编程练习 93
第4章 控制结构Ⅰ(选择结构) 95
4.1控制结构 95
4.2关系运算符 96
4.3逻辑(布尔)运算符和逻辑表达式 98
4.4选择:if和if…else 104
4.5 switch结构 117
4.6用assert()函数来终止一个程序 122
4.7编程实例:有线电视公司账单 123
4.8小结 127
4.9练习 128
4.10编程练习 132
第5章 控制结构Ⅱ(重复) 134
5.1为什么需要重复结构 134
5.2 while循环(重复)结构 135
5.3编程实例:检查账户余额 143
5.4编程实例:斐波那契数列 150
5.5 for循环(重复)结构 153
5.6编程实例:数字分类 157
5.7 do…while循环(重复)结构 159
5.8 break和continue语句 161
5.9嵌套控制结构 163
5.10小结 164
5.11练习 165
5.12编程练习 172
第6章 用户自定义函数Ⅰ 174
6.1标准(预定义)函数 174
6.3具有返回值的函数 176
6.2用户定义函数 176
6.4编程实例:最大数 184
6.5编程实例:有线电视公司账单问题 185
6.6小结 190
6.7练习 191
6.8编程练习 194
第7章 用户自定义函数Ⅱ 196
7.1 void函数 196
7.2值参数、引用参数和内存分配 204
7.4变量的范围 213
7.3引用参数和返回值函数 213
7.5全局变量的副作用 216
7.6静态和自动变量 216
7.7函数重载:介绍 218
7.8有默认参数的函数 218
7.9编程实例:对数字分类 220
7.10编程实例:数据比较 224
7.11小结 231
7.12练习 232
7.13编程练习 237
8.1枚举类型 240
第8章 用户定义的简单数据类型、命名空间和string类型 240
8.2编程实例:石头、剪子和布的游戏 247
8.3命名空间 255
8.4 string类型 259
8.5编程实例:Pig Latin字符串 266
8.6小结 270
8.7练习 271
8.8编程练习 274
第9章 数组和字符串 276
9.1数组 277
9.2 C字符串(字符数组) 288
9.3关联数组 292
9.4编程实例:代码检测 293
9.5编程实例:文本处理 298
9.6小结 302
9.7练习 303
9.8编程练习 306
10.1顺序表处理 308
第10章 数组的应用和扩展 308
10.2二维和多维数组 320
10.3多维数组 330
10.4编程实例:选举结果 331
10.5小结 344
10.6练习 344
10.7编程练习 346
第11章 递归 349
11.1递归的定义 349
11.2利用递归解决问题 351
11.3递归还是迭代 359
11.4编程实例:将一个数字从二进制表示转换为十进制表示 360
11.5编程实例:将一个数字从十进制转换为二进制 363
11.6小结 365
11.7练习 365
11.8编程练习 367
第12章 记录(结构体) 369
12.1记录(结构体) 369
12.2编程实例:销售数据分析 379
12.3小结 391
12.4练习 391
12.5编程练习 393
13.1类 395
第13章 类和数据抽象 395
13.2数据抽象、类和抽象数据类型 414
13.3结构体与类 415
13.4信息隐藏 416
13.5可执行代码 418
13.6编程实例:糖果机 421
13.7小结 431
13.8练习 432
13.9编程练习 434
第14章 继承和组合 437
14.1继承 437
14.2组合 452
14.3面向对象设计(OOD)和面向对象编程(OOP) 456
14.4编程实例:分数报告 457
14.5小结 473
14.6练习 474
14.7编程练习 479
第15章 指针、类和虚函数 482
15.1指针数据类型和指针变量 482
15.2取址运算符(&) 483
15.3取值运算符(*) 483
15.4类、结构和指针变量 487
15.5初始化指针变量 489
15.6动态变量 490
15.7指针变量的运算 491
15.8动态数组 492
15.9指针的浅(shallow)复制与深(deep)复制 494
15.10类和指针:一些特性 496
15.11继承、指针和虚函数 504
15.12取址运算符和类 508
15.13小结 511
15.14练习 512
15.15编程练习 517
第16章 重载和模板 518
16.1为什么需要运算符重载 518
16.2运算符重载 519
16.3编程练习:clockType 546
16.5重载数组索引(下标)运算符([]) 554
16.6编程练习:newString 556
16.7函数重载 560
16.8模板 561
16.9小结 568
16.10练习 570
16.11编程练习 573
第17章 链表 578
17.1链表 578
17.2作为ADT的链表 587
17.3有序链表 597
17.4双向链表 606
17.5编程实例:音像商店 612
17.6小结 627
17.7练习 627
17.8编程练习 630
第18章 栈和队列 632
18.1栈 632
18.2栈的数组实现 635
18.3程序实例:最大GPA 645
18.4栈的链表实现 648
18.5栈的应用:后缀表达式计算器 658
18.6消除递归:非递归逆序打印链表的算法 664
18.7队列 668
18.8队列的应用:仿真 680
18.9小结 697
18.10练习 697
18.11编程练习 700
附录A保留字 703
附录B运算符的优先级 704
附录C字符集 705
附录D运算符重载 707
附录E在ANSI/ISO标准C++和标准C++中头文件的名称约定 708
附录F头文件 709
附录G系统中数据类型的内存尺寸 714
附录H部分练习答案 715