首页 > 图书中心 > 组合数学(第4版)习题解答

目录

第1章 C语言的基本概念1

  1.1 程序设计语言的历史和发展1

  1.2 程序设计过程中的几个基本概念2

1.2.1 程序2

1.2.2 程序设计2

1.2.3 算法3

1.2.4 数据结构3

  1.3 软件工程的概念4

  1.4 C语言的发展与特点4

1.4.1 C语言的发展和ANSI C标准4

1.4.2 C语言的特点5

  1.5 C语言程序的基本标识符6

  1.6 C程序的几个简单实例7

  1.7 C程序的结构特点10

  1.8 C语言程序的编译和执行11

  1.9 习题12

第2章 C语言程序的基本数据类型及其运算13

  2.1 C语言的数据类型13

2.1.1 数据类型的一般概念13

2.1.2 常量14

  2.2 数据类型及变量17

2.2.1 基本数据类型17

2.2.2 变量及变量的定义17

2.2.3 变量的初始化18

2.2.4 数据类型转换19

  2.3 运算符和表达式21

2.3.1 运算符和表达式概述21

2.3.2 赋值运算符和赋值表达式22

2.3.3 算术运算符和算术表达式23

2.3.4 关系运算符和关系表达式24

2.3.5 逻辑运算符和逻辑表达式25

2.3.6 条件运算符26

2.3.7 其他运算符27

  2.4 位运算符28

2.4.1 按位取反运算符28

2.4.2 移位运算符28

2.4.3 按位“与”、按位“或”、按位“异或”29

  2.5 C语言基本输入输出函数30

2.5.1 字符输入输出函数31

2.5.2 格式化输入输出函数32

  2.6 习题37

第3章 基本控制结构及其应用39

  3.1 算法及结构化程序设计39

3.1.1 算法及其特征39

3.1.2 算法的类型与结构41

  3.2 顺序结构程序设计42

  3.3 分支结构程序设计43

3.3.1 if 分支43

3.3.2 if-else分支43

3.3.3 多分支if-else if-else形式44

3.3.4 条件分支的嵌套45

3.3.5 开关分支46

  3.4 循环结构程序设计50

3.4.1 while语句50

3.4.2 do-while语句50

3.4.3 for语句51

3.4.4 三种循环的比较52

3.4.5 多重循环52

3.4.6 循环和开关分支的中途退出53

3.4.7 goto语句54

3.4.8 结构化程序设计的注意事项55

  3.5 结构化程序设计及应用举例57

  3.6 习题58

第4章 数组及其应用62

  4.1 一维数组62

4.1.1 一维数组的定义62

4.1.2 一维数组的初始化63

4.1.3 一维数组的引用64

4.1.4 一维数组的应用举例65

  4.2 多维数组67

4.2.1 多维数组的定义67

4.2.2 多维数组的存储形式67

4.2.3 多维数组的引用68

4.2.4 多维数组的初始化68

4.2.5 数组应用举例70

  4.3 字符型数组与字符串71

4.3.1 字符型数组的概念71

4.3.2 字符型数组的初始化72

4.3.3 字符型数组的输入输出73

4.3.4 字符型数组的应用举例74

  4.4 综合应用举例75

  4.5 习题77

第5章 函数及其应用79

  5.1 函数的定义与调用79

5.1.1 C源程序的结构79

5.1.2 函数的定义80

5.1.3 函数的调用82

  5.2 函数间的信息传递方式85

5.2.1 实参-形参之间的信息传递86

5.2.2 函数调用结果的返回89

  5.3 函数与数组92

5.3.1 数组元素做实参92

5.3.2 一维数组名做实参92

5.3.3 多维数组名做参数94

5.3.4 字符数组做函数的参数95

  5.4 递归函数与递归调用96

5.4.1 递归的概念96

5.4.2 递归程序的设计97

  5.5 变量的存储类型及作用域98

5.5.1 auto型变量99

5.5.2 extern型变量99

5.5.3 静态变量102

  5.6 习题104

第6章 指针107

  6.1 指针的基本概念及定义方式107

6.1.1 指针的基本概念107

6.1.2 指针的定义107

6.1.3 指针的初始化108

6.1.4 指针运算符110

  6.2 指针的运算110

6.2.1 指针的算术运算110

6.2.2 关系运算112

6.2.3 指针的赋值运算112

  6.3 指针与数组112

6.3.1 指向一维数组的指针113

6.3.2 指向多维数组的指针115

  6.4 字符指针和字符串116

  6.5 指针数组118

6.5.1 指针数组的概念118

6.5.2 指针数组的应用119

6.5.3 指针数组在带形参的main函数中的应用120

  6.6 指针在函数参数传递中的应用122

  6.7 指针型函数122

6.7.1 指针型函数的定义和引用123

6.7.2 指针型函数的应用举例123

  6.8 多级指针124

6.8.1 多级指针的概念及定义124

6.8.2 多级指针应用举例125

  6.9 指向函数的指针126

6.9.1 指向函数的指针的概念126

6.9.2 指向函数的指针的应用127

  6.10 动态指针129

6.10.1 动态内存分配的概念129

6.10.2 动态内存分配的应用130

  6.11 习题132

第7章 排序及查找算法及其实现134

  7.1 排序概述134

7.1.1 排序的概念134

7.1.2 排序的定义134

7.1.3 排序的方法135

7.1.4 排序效率135

  7.2 冒泡排序法的设计及其实现137

7.2.1 冒泡算法设计思想137

7.2.2 冒泡算法的实现138

  7.3 选择排序法的设计及其实现139

7.3.1 选择排序法设计思想139

7.3.2 选择排序法的实现140

  7.4 插入排序法的设计及其实现141

7.4.1 插入排序法设计思想141

7.4.2 插入排序法的实现142

  7.5 SHELL排序法的设计及其实现143

7.5.1 SHELL排序法设计思想143

7.5.2 SHELL排序法的实现144

  7.6 字符串数组的排序设计及其实现146

7.6.1 字符串数组的排序算法设计思想146

7.6.2 字符串数组排序算法的实现147

  7.7 查找概述148

  7.8 顺序查找及其应用148

7.8.1 顺序查找算法的设计思想148

7.8.2 顺序查找算法的实现149

  7.9 折半查找及其应用150

7.9.1 折半查找算法的设计思想150

7.9.2 折半查找算法的实现151

  7.10 习题152

第8章 结构体、联合体和枚举153

  8.1 结构体的说明和定义153

8.1.1 结构体的概念153

8.1.2 结构体的说明及结构体变量的定义154

  8.2 结构体成员的引用与结构体变量的初始化157

8.2.1 结构体成员的引用157

8.2.2 结构体变量的初始化158

  8.3 结构体数组159

8.3.1 结构体数组的定义及初始化159

8.3.2 结构体数组的应用举例159

  8.4 结构体指针161

8.4.1 结构体指针及其定义161

8.4.2 通过指针引用结构体成员162

8.4.3 结构体指针的应用举例163

  8.5 结构体在函数间的传递166

8.5.1 结构体变量的传递166

8.5.2 结构体数组在函数间的传递169

  8.6 结构体指针型和结构体型函数170

8.6.1 结构体指针型函数170

8.6.2 结构体型函数172

  8.7 结构体嵌套174

8.7.1 结构体嵌套的概念174

8.7.2 嵌套结构体类型变量的引用175

8.7.3 结构体嵌套应用举例176

  8.8 联合体177

8.8.1 联合体的说明及联合体变量的定义177

8.8.2 使用联合体变量应注意的问题182

  8.9 枚举类型184

8.9.1 枚举类型数据的概念及其定义184

8.9.2 枚举型变量的使用184

  8.10 自定义类型186

 8.10.1 自定义类型及其表示形式186

 8.10.2 自定义类型的优点187

  8.11 位字段结构体188

  8.12 习题189

第9章 文件操作193

  9.1 文件概述193

  9.2 文件的基本操作197

9.2.1 文件的打开197

9.2.2 文件的关闭198

9.2.3 文件的删除198

9.2.4 文件的重命名199

9.2.5 临时文件的创建199

  9.3 文件的读写操作200

9.3.1 文件的非格式化读写200

9.3.2 文件的格式化写操作206

9.3.3 文件的格式化读操作208

  9.4 文件的定位209

9.4.1 fgetpos函数209

9.4.2 fsetpos函数209

9.4.3 ftell函数209

9.4.4 fseek函数210

9.4.5 feof函数211

  9.5 错误处理211

9.5.1 ferror函数211

9.5.2 perror函数211

  9.6 习题212

第10章 线性表及其应用218

  10.1 线性表的基本概念218

  10.2 结构简介219

10.2.1 单链表220

10.2.2 循环链表228

10.2.3 双向链表229

  10.3 线性表的应用229

10.3.1 单链表的应用: 单链表归并问题229

10.3.2 循环链表的应用: 求解约瑟夫问题231

  10.4 习题232

第11章 栈及其应用233

  11.1 栈的定义及其基本操作233

  11.2 栈的实现234

11.2.1 栈的数组实现234

11.2.2 栈的链式存储实现236

  11.3 栈的应用238

11.3.1 栈在进制转换中的应用238

11.3.2 栈在递归中的应用241

  11.4 习题243

第12章 队列及其应用244

  12.1 队列的定义及基本操作244

  12.2 队列的实现245

12.2.1 用循环数组实现队列245

12.2.2 用链表实现队列248

  12.3 队列的应用251

12.3.1 打印杨辉三角形251

12.3.2 舞伴问题254

  12.4 习题258

第13章 二叉树及其应用259

  13.1 树的定义和基本术语259

13.1.1 树的定义259

13.1.2 树的基本术语260

  13.2 二叉树的特点及其数学性质261

13.2.1 二叉树的特点261

13.2.2 二叉树的数学性质261

  13.3 二叉树的基本操作及其实现263

13.3.1 二叉树的基本操作263

13.3.2 二叉树基本操作的实现263

  13.4 二叉树的应用268

13.4.1 二叉树的遍历268

13.4.2 利用二叉树的遍历建立、打印二叉树270

13.4.3 利用二叉树的遍历按树状打印二叉树273

  13.5 习题275

附录A 预处理命令的应用276

  A.1 预处理概述276

  A.2 宏定义276

A.2.1 无参宏定义276

A.2.2 带参宏定义280

  A.3 文件包含284

  A.4 条件编译284

A.4.1 第一种条件编译形式284

A.4.2 第二种条件编译形式285

A.4.3 第三种条件编译形式286

附录B Turbo C 3.0的上机过程288

  B.1 文件的建立与保存288

  B.2 文件的编辑289

  B.3 编译连接290

  B.4 程序的运行291

附录C Turbo C 3.0程序的调试292

  C.1 程序的调试292

C.1.1 有关调试的设置292

C.1.2 设置断点及动态调试的基本操作293

  C.2 程序调试实例295

C.2.1 添加断点295

C.2.2 观察变量296

C.2.3 单步执行296

C.2.4 观察调用关系297

C.2.5 终止调试297

C.2.6 条件断点297

C.2.7 动态修改变量值298

附录D Turbo C 3.0部分库函数表299

附录E ASCII码表311

参考文献312

版权所有(C)2022 清华大学出版社有限公司 京ICP备10035462号 京公网安备11010802013248号

联系我们 | 网站地图 | 法律声明 | 友情链接 | 盗版举报 | 人才招聘