《程序设计基础 第2版》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:吴文虎编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2004
  • ISBN:730209411X
  • 页数:332 页
图书介绍:本书重点讲授在C/C++语言环境下,编写程序的思路和方法,涉及计算机语言、数据结构和常有算法等内容。全书内容丰富,强调动手实践,深入浅出地引导读者理性思维和理性实践。教学方法引人入胜,以任务驱动方式,通过实例讲授程序设计的基本概念和方法;以解题思路为重点,针对问题进行分析,构建数学模型,理出算法并编程实现,便于自学。

1 绪论 1

2 编程准备 5

2.1 程序编写 6

2.2 程序代码及说明 9

2.3 输出流对象cout 11

2.4 输入流对象cin 11

2.5 程序注释 12

2.6 算术运算符 12

2.7 数学函数 13

2.8 小结 14

习题 15

3 变量、代数与计算机解题 16

3.1 程序的基本结构 16

3.2 变量与数据类型 18

3.2.1 变量的基本概念 18

3.2.2 数据类型 19

3.3 定义变量和赋初值 19

3.4 变量赋值 20

3.4.1 赋值符号与赋值表达式 20

3.4.2 变量赋值的5要素 20

3.5 小结 21

习题 22

4 逻辑思维与计算机解题 23

4.1 关系运算和关系表达式 24

4.1.1 关系运算符 24

4.1.2 关系表达式的一般格式 25

4.1.3 将“是”“否”写成关系表达式 25

4.2 枚举法的思路 26

4.3 循环结构 28

4.3.1 使用循环结构的部分程序 28

4.3.2 for语句的格式和执行过程 28

4.3.3 使用for循环解题实例 29

4.3.4 for循环的程序框图 32

4.4 分支结构 32

4.4.1 if语句的格式 33

4.4.2 分支结构的实例 34

4.5 任务4.1的程序框图 35

4.6 任务4.1的参考程序 36

4.7 逻辑问题及其解法 39

4.7.1 逻辑运算符与逻辑表达式 39

4.7.2 逻辑问题的解题思路 40

4.7.3 任务4.2的参考程序 46

4.8 小结 50

习题 50

5 数据组织、筛选与排序问题的解题思路 52

5.1 数组 53

5.1.1 一维数组的定义 54

5.1.2 数组初始化 55

5.2 筛法 56

5.3 冒泡排序法 61

5.4 结构与结构数组 63

5.4.1 结构体类型的定义 64

5.4.2 结构体变量的定义和引用 64

5.4.3 结构体变量的初始化 66

5.4.4 结构数组 67

5.5 二维数组 69

5.5.2 二维数组的初始化 71

5.5.1 二维数组的定义 71

5.5.3 二维数组中的元素存放顺序 72

5.6 小结 74

习题 75

6 函数、递推与递归 77

6.1 函数 78

6.1.1 函数的说明 79

6.1.2 函数的定义 79

6.1.3 函数的返回值 79

6.1.4 函数的调用 80

6.1.5 形式参数和实在参数 80

6.1.6 调用和返回 81

6.1.7 带自定义函数的程序设计 82

6.1.8 编程实例 84

6.1.9 break和continue语句 85

6.2 递推 87

6.2.1 递推数列的定义 90

6.2.2 递推算法的程序实现 90

6.3 递归及其实现 92

6.4 递归算法举例 101

6.4.1 计算组合数 101

6.4.2 青蛙过河 102

6.4.3 快速排序 108

6.4.4 分书问题 114

6.4.5 下楼问题 117

6.4.6 八皇后问题 120

6.4.7 跳马问题 124

6.4.8 数字旋转方阵 127

6.5 小结 132

习题 133

7 指针 139

7.1 指针的概念 140

7.1.1 指针定义与初始化 140

7.1.2 指针赋值 141

7.1.3 在赋值语句中使用间接访问运算符 143

7.2.1 用数组名给指针赋值 144

7.2 指针与数组 144

7.2.2 数组名是一个常量指针 146

7.2.3 编程实例 147

7.2.4 指针数组 150

7.3 字符串及其处理 153

7.3.1 字符数组的定义和初始化 153

7.3.2 字符数组元素的赋值 155

7.3.3 字符判断函数 156

7.3.4 字符串相关函数 157

7.3.5 字符串应用举例 157

7.3.6 字符串匹配 159

7.3.7 字符串的3种操作 161

7.4 指针与函数 166

7.4.1 函数返回指针 166

7.4.2 指向函数的指针 168

7.5 指针和结构 172

7.6 指针与结构数组 174

7.7 引用的概念及应用 178

7.8 利用引用来传递参数 179

7.9 几种参数传递方式的比较 181

7.10 小结 186

习题 187

8.1 流 192

8 流与文件 192

8.1.1 流的概念与输入输出格式 193

8.1.2 改变整数的进制 193

8.1.3 设置浮点数的精度 194

8.1.4 设置输入输出宽度 195

8.1.5 设置对齐方式和填充字符 197

8.1.6 其他设置 198

8.2 文件 199

8.2.1 将数据保存到文件 200

8.2.2 从文件中读取数据 202

8.2.3 利用输入输出文件解交互类型的题 206

8.3 小结 218

9 贪心法 220

9.1 贪心法解题的一般步骤 220

9.1.1 事件序列问题 220

9.1.2 区间覆盖问题 223

9.1.3 贪心法解题的一般步骤 227

9.2 贪心法相关理论 228

9.2.1 多阶段决策问题、无后向性与最优化原理 228

9.2.2 有向图最短路径的Dijkstra算法 229

9.2.3 贪心法解题的注意事项 234

9.3 小结 235

习题 235

10.1.1 问题描述 236

10 动态规划 236

10.1 最短路径问题 236

10.1.2 分析与题解 237

10.2 动态规划的基本概念 241

10.3 动态规划思想 243

10.4 举例说明动态规划思路 244

10.5 小结 253

习题 254

11 链表 256

11.1 举例说明链表的概念 256

11.2 建立链表的过程 257

11.3 链表结点的插入与删除 262

11.3.1 链表结点的插入 262

11.3.2 链表结点的删除 269

11.4 循环链表 272

11.5 小结 277

习题 278

12 二叉树 280

12.1 基本概念 280

12.2 二叉树的遍历 281

12.3 二叉树的建立 283

习题 286

12.4 小结 286

13 蒙特卡罗法 287

13.1 伪随机数的产生 287

13.1.1 产生随机整数 287

13.1.2 产生随机小数 288

13.2 伪随机数的应用 289

13.2.1 求π的近似值 289

13.2.2 计算图形面积 291

13.3 小结 293

习题 293

14 综合练习 294

A.1 计分程序的调试 296

附录A 程序调试 296

A.1.1 编译时的调试 298

A.1.2 运行时的调试 300

A.1.3 其他调试相关知识 306

A.2 跳马程序的调试 308

附录B 库函数 316

B.1 数学函数 316

B.2 字符判断函数 318

B.3 字符串相关函数 322

附录C ASCII码表 331

参考文献 332