《计算机算法基础》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:宋晏,杨国兴,朱红著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2015
  • ISBN:9787302409250
  • 页数:264 页
图书介绍:以算法设计为主,C语言为辅的方式,详细讲述:顺序结构、分支结构、循环结构的算法设计方法,模块化的设计及实现方法,以及涉及数组、结构体等数据结构的算法设计方法。本书突出算法,弱化语法,强调规范,重视实践,培养能力;始终遵循易讲、易懂、易学的原则进行编写。教材中配有大量算法设计的实例和实践题目。

第1章 计算机基础知识 1

1.1认识计算机 1

1.1.1计算机硬件系统 1

1.1.2计算机软件系统 2

1.1.3计算机工作过程 3

1.1.4计算机工作的特点 4

1.2计算机语言 5

1.3计算机程序 7

1.4课外阅读 8

第2章 算法与C程序设计初步 10

2.1算法的含义 10

2.2算法的特性 13

2.3 C语言编程要点 14

2.3.1 C语言的特点 14

2.3.2 C程序的组成 15

2.3.3变量 17

2.3.4赋值语句 21

2.3.5基本输入输出函数 21

2.4 C程序示例 27

2.5扩展知识 28

2.5.1数据类型 28

2.5.2变量的初始化 30

2.5.3不同数据类型间的运算 30

2.5.4自增和自减运算符 32

2.6 C编程规范 33

2.6.1排版 33

2.6.2注释 33

2.6.3标识符命名 34

2.6.4变量 34

2.7动态调试程序的方法 34

2.7.1设置断点 35

2.7.2单步运行和观测窗口 36

2.8课后练习 38

2.9实验题目 38

2.9.1认识C程序 38

2.9.2比较两个交换变量取值的算法 40

2.10课外学习 41

第3章 初步认识结构化算法 42

3.1结构化算法的原则和特点 42

3.1.1结构化算法的主要原则 42

3.1.2结构化算法的主要特点 43

3.2 3种基本控制结构与流程图 43

3.2.1传统流程图与3种控制结构 43

3.2.2 N-S图与3种基本控制结构 44

3.3 N-S图描述算法 46

3.4顺序结构算法举例 47

3.5扩展知识 49

3.5.1认识编译预处理命令include和define 49

3.5.2编译预处理命令的使用 51

3.6 C编程规范 52

3.7课后练习 52

3.8顺序结构算法实验 52

3.9课外阅读 53

第4章 分支结构算法及其实现 54

4.1关系表达式和逻辑表达式 54

4.1.1关系运算和关系表达式 54

4.1.2逻辑运算和逻辑表达式 55

4.2二选一分支结构 58

4.3算法走读 61

4.3.1对算法的N-S图进行编号 61

4.3.2用测试数据检验算法 62

4.4实现二选一结构的if-else语句 64

4.4.1 if-else语句的基本形式 64

4.4.2 if-else语句的缩进、对齐 64

4.4.3复合语句 65

4.5含二选一分支结构的算法举例 67

4.6多分支结构及算法举例 70

4.6.1多分支选择结构 70

4.6.2实现多分支结构的C语句 73

4.7扩展知识 74

4.7.1 C数据与逻辑“真”与“假” 74

4.7.2条件运算符 74

4.8 C编程规范 75

4.8.1排版 75

4.8.2可读性 75

4.8.3质量保证 76

4.9课后练习 76

4.10实验题目 77

4.10.1二选一分支结构算法设计 77

4.10.2修改分支结构的C程序 78

4.10.3多分支结构算法设计 79

4.11课外阅读 80

第5章 循环结构算法及其实现 81

5.1先判断型循环结构 81

5.1.1定数循环 81

5.1.2 C语言中的while语句 83

5.1.3 for循环结构 85

5.1.4不定数循环 86

5.1.5先判断型循环结构的算法举例 89

5.2循环结构算法走读 94

5.2.1算法走读 94

5.2.2算法的健壮性 97

5.3后判断型循环结构 99

5.4循环的嵌套 102

5.4.1自顶向下、逐步求精的设计方法 102

5.4.2循环的嵌套 104

5.4.3 for循环结构与穷举法 105

5.5扩展知识 109

5.5.1复合赋值运算符 109

5.5.2 for循环的灵活使用 109

5.5.3 break语句 110

5.5.4枚举类型 112

5.6 C编程规范 115

5.6.1排版 115

5.6.2可读性 115

5.6.3提高效率 115

5.7课后练习 115

5.8实验题目 117

5.8.1先判断型循环结构算法设计(一) 117

5.8.2先判断型循环结构算法设计(二) 118

5.8.3后判断型循环结构算法设计 119

5.8.4循环嵌套算法的设计 120

5.8.5利用for循环穷举法解题 122

5.9课外实践 123

第6章 模块化和C语言的函数 124

6.1“模块化”程序设计思想 124

6.2函数 126

6.2.1标准函数 126

6.2.2自定义函数 127

6.3参数 130

6.3.1形参和实参 130

6.3.2参数的值传递和地址传递 130

6.3.3如何设计函数中的参数 132

6.4返回值 137

6.5函数举例 138

6.6调用过程分析 143

6.6.1函数调用的一般形式 143

6.6.2函数调用的方式 143

6.6.3函数调用的过程 144

6.7扩展知识 146

6.7.1全局变量和局部变量 146

6.7.2函数的递归调用 149

6.7.3带参数的宏定义 151

6.7.4利用#include实现代码的重用 153

6.8 C编程规范 154

6.8.1函数设计 154

6.8.2全局变量 155

6.8.3指针 155

6.9课后练习 155

6.10实验题目 157

6.10.1打印月历 157

6.10.2函数的嵌套调用 157

6.10.3掷骰子游戏 158

6.10.4函数的递归 160

6.11课外实践 161

第7章 数组 162

7.1一维数组及其使用 162

7.1.1数组的引出 162

7.1.2一维数组的定义和引用 163

7.1.3一维数组使用举例 165

7.1.4数组名做函数的参数 172

7.1.5排序和查找算法 178

7.2二维数组及其使用 187

7.2.1二维数组的定义和引用 187

7.2.2二维数组使用的一般形式 188

7.2.3二维数组使用举例 189

7.2.4二维数组名做函数的参数 191

7.3扩展知识 195

7.3.1数组的初始化 195

7.3.2一维数组的指针变量 196

7.3.3一维数组指针做函数的参数 198

7.4 C编程规范 199

7.4.1数组定义规范 199

7.4.2数组使用规范 200

7.5课后练习 200

7.6实验题目 201

7.6.1数组元素计数器和做标记 201

7.6.2数组名作为函数参数 202

7.6.3改进冒泡法排序算法 203

7.6.4二维数组的使用 205

7.7课外实践 206

第8章 字符和字符串处理的算法 208

8.1字符类型数据处理的算法 208

8.1.1字符常量与字符变量 208

8.1.2字符数据在内存中的存储 209

8.1.3字符类型数据处理算法举例 210

8.2一个字符串的存储和处理 214

8.2.1一维字符数组与字符串 214

8.2.2 C语言中字符串的输入输出 215

8.2.3字符串处理函数 217

8.2.4字符串处理算法举例 219

8.3多个字符串的存储和处理 225

8.3.1二维字符数组 225

8.3.2多个字符串处理算法举例 226

8.4扩展知识 229

8.4.1字符串的指针变量 229

8.4.2指针数组 231

8.5课后练习 233

8.6实验目的 233

8.6.1字符及字符串处理 233

8.6.2字符串处理 234

8.6.3综合练习多个字符串的存储和处理 235

第9章 结构体 237

9.1结构体的引出 237

9.2结构体类型和结构体变量 238

9.2.1结构体类型 238

9.2.2结构体变量 239

9.2.3结构体变量的引用 241

9.3结构体数组 243

9.3.1结构体数组 243

9.3.2结构体数组的引用 244

9.4指向结构体的指针变量 246

9.4.1结构体变量的指针变量 246

9.4.2结构体和结构体指针做参数 246

9.5扩展知识 248

9.6 C编程规范 249

9.6.1结构体设计 249

9.6.2可读性 250

9.7课后练习 250

9.8实验题目 251

9.8.1结构体变量的定义和使用 251

9.8.2结构体数组的使用 252

9.8.3结构体做函数的参数——结构体指针的使用 253

9.9课外实践 254

附录A C语言常用格式说明符 256

附录B 本书各章C语言运算符的优先级和结合性 258

附录C 常用字符ASCⅡ码表 260

C语言语法索引 261

算法索引 263

参考文献 264