当前位置首页 > 百科资料> 正文

组合数学(第4版)习题解答

2022-06-26 11:50:54 百科资料

《组合数学(第4版)习题解答》是2011年清华大学出版社出版的图书,作者是卢华明。本书适合作为高等院校计算机及相关专业本科生的辅助教材,也可作为研究生的辅助教材,也可供广大科学工作者、工程技术人员参考。

  • 书名 组合数学(第4版)习题解答
  • 作者 卢华明
  • ISBN 9787302237433
  • 定价 33元
  • 出版社 清华大学出版社

图书简介

  组合数学是既古老而又年轻的一门数学分支,它的基本原理非常直观易懂。本书收集了1200多道组合数学题,涉及4部分内容: 一是加法法则、乘法法则与排列组合;二是序列、递推关系与母函数、Fibonacci数等;三是容斥原理、鸽巢原理、Ramsey数等;四是Polya定理。

  最后说明一下本书只涉及组合数学的部分核心内容,比如图论部分暂时放弃了。图论无疑属于组合数学,但因为它成长壮大,本身内容丰富,所以独立出去了,以后争取继续完成。

编辑推荐

  语言程序设计(第2版)人类已经步入信息化的21世纪,信息时代的到来,使社会经济向知识经济发展。为了推进21世纪计算机基础教育改革,推进精品课程建设以及与之配套的精品教材建设,从素质教育的理念出发,结合信息化社会对高素质、复合型人才的需求,特出版此教材。此教材力求较为全面地介绍C语言的基本内容与程序设计思想。

  言是目前国内外广泛使用的程序设计语言之一 是国内外大学都在开设的重要的基础课之一。C语言功能丰富、表达能力强、使用方便灵活、程序执行效率高并且可移植性好;既具有高级语言的特点,又具有汇编语言的特点,具有较强的系统处理能力。它支持自顶向下逐步求精的程序设计技术,其函数式结构为实现程序的模块化设计提供了强有力的保障。因此,它被广泛应用于系统软件和应用软件的开发。

  本教材从C语言程序设计的基本原理及程序设计的基本思想出发,贯穿"基础-应用-专题"这一主线,紧扣基础,面向应用,循序渐进地引导读者学习程序设计的思想和方法。基础部分的主要内容包括程序设计中的基本概念与应用,如变量、数组、控制结构及判断结构等,并在掌握了这些基本概念与应用的基础上适时引入函数的结构与应用、指针的概念及其应用、算法设计与实现、结构型数据的应用及文件的操作等面向应用的知识点介绍,然后在上述知识点的基础上进一步介绍数据结构专题,包括链表、栈、队列和二叉树的概念与应用。为方便授课和学习,本教材还配套有电子教案和习题解析。

  本书的特点之一是通俗易懂,突出"三基"(基本概念、基本原理与基本应用)的介绍与应用。

  本书的特点之二是在介绍"算法设计与实现"这部分内容时,重点介绍经典的排序与查找的算法及其实现,同时通过几种不同算法的比较,讨论算法的效率及代码实现的效率。计算机程序设计,很大一部分工作是为了实现某一特定的模型或算法。本书通过介绍算法设计并通过计算机程序加以实现,可以使读者更好地学习程序设计的思想、体系结构和方法,尤其是优化的程序设计方法。

  本书的特点之三是介绍了数据结构的基本内容,如链表、栈、队列和二叉树的"三基",将这些内容作为综合应用的专题,使读者从实际应用中对C语言程序设计的基本知识得以融会贯通和进一步提高。

  本书的特点之四是教材中有代码的详细注释。为了用最简洁的语言讲解代码结构及功能,本教材在例题代码中给出了详细的代码注释,以利于读者更好地理解代码,同时,教材中的所有代码均在TC 3.0下面完全通过调试。

  本书的特点之五是重点突出、难点分散。这样从学习者对知识的掌握角度来说是有利的,而且这样也有利于自学。本教材标有"?"的内容为选学内容,各学校可以根据自己的实际情况决定教材的学习内容。如果这些内容不作为教学内容学习的话,也不影响其他内容在知识点上的承接关系。

  本教材中将"编译预处理"内容放到附录中去,由于此部分的内容跨越了很多知识点,如果单独作为一章内容,那么只能将这部分内容放到较靠后的位置。但基础知识的学习中也牵涉编译预处理的内容,因此,将这部分内容放到附录中,可以根据需要及时查询。读者可以根据实际情况安排学习编译预处理内容的进度。

  本书可供高等院校、计算机水平考试培训、各类成人教育学校作为开设程序设计课程的教材,也可供计算机爱好者自学。

图书目录

  第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

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net