《C语言通用范例开发金典》PDF下载

  • 购买积分:27 如何计算积分?
  • 作  者:柳盛,王国全,沈永林编著;飞思科技产品研发中心监制
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2008
  • ISBN:9787121064494
  • 页数:1098 页
图书介绍:本书以程序开发人员在编程中可能遇到的实际问题(案例)和开发中应该掌握的技术为主线,全面介绍了运用C语言进行程序开发各方面的应用案例和经验技巧。全书分为5章,内容包括数据结构、数值计算、图形图像处理、磁盘、目录和文件的操作、系统调用等,约500个实例。每个实例都突出实用性,其中大部分是程序开发人员梦寐以求的解决方案。本书范例选取精心、代码规范,具有典型的代表性,可移植性强。此外,所有范例的关键步骤讲解详细,“注意、提示,技巧”等特色段落丰富,便于读者轻松学会。

第1章 数据结构 1

1.1 数组和字符串 2

1.1.1 一维数组的倒置 2

范例1-1 一维数组的倒置 2

1.1.2 一维数组应用 3

范例1-2 一维数组应用 3

1.1.3 一维数组的高级应用 5

范例1-3 一维数组的高级应用 5

1.1.4 显示杨辉三角 7

范例1-4 显示杨辉三角 7

1.1.5 魔方阵 9

范例1-5 魔方阵 9

1.1.6 三维数组的表示 14

范例1-6 三维数组的表示 14

1.1.7 多项式的数组表示 17

范例1-7 多项式的数组表示 17

1.1.8 查找矩阵的马鞍点 19

范例1-8 查找矩阵的马鞍点 19

1.1.9 对角矩阵建立 21

范例1-9 对角矩阵建立 21

1.1.10 三对角矩阵的建立 22

范例1-10 三对角矩阵的建立 22

1.1.11 三角矩阵建立 24

范例1-11 三角矩阵建立 24

1.1.12 对称矩阵的建立 25

范例1-12 对称矩阵的建立 25

1.1.13 字符串长度的计算 28

范例1-13 字符串长度的计算 28

1.1.14 字符串的复制 29

范例1-14 字符串的制 29

1.1.15 字符串的替换 31

范例1-15 字符串的替换 31

1.1.16 字符串的删除 33

范例1-16 字符串的删除 33

1.1.17 字符串的比较 35

范例1-17 字符串的比较 35

1.1.18 字符串的抽取 36

范例1-18 字符串的抽取 36

1.1.19 字符串的分割 38

范例1-19 字符串的分割 38

1.1.20 字符串的插入 40

范例1-20 字符串的插入 40

1.1.21 字符串的匹配 42

范例1-21 字符串的匹配 42

1.1.22 字符串的合并 43

范例1-22 字符串的合并 43

1.1.23 文本编辑 45

范例1-23 文本编辑 45

1.2 栈和队列 54

1.2.1 用数组仿真堆栈 54

范例1-24 用数组仿真堆栈 54

1.2.2 用链表仿真堆栈 57

范例1-25 用链表仿真堆栈 57

1.2.3 顺序栈公用 59

范例1-26 顺序栈公用 59

1.2.4 进制转换问题 61

范例1-27 进制转换问题 61

1.2.5 顺序队列操作 64

范例1-28 顺序队列操作 64

1.2.6 循环队列 66

范例1-29 循环队列 66

1.2.7 链队列的入队、出队 69

范例1-30 链队列的入队、出队 69

1.2.8 舞伴问题 71

范例1-31 舞伴问题 71

1.3 链表 75

1.3.1 头插法建立单链表 75

范例1-32 头插法建立单链表 75

1.3.2 限制链表长度建立单链表 77

范例1-33 限制链表长度建立长单链表 77

1.3.3 尾插法建立单链表 79

范例1-34 尾插法建立单链表 79

1.3.4 按序号查找单链表 80

范例1-35 按序号查找单链表 80

1.3.5 按值查找单链表 82

范例1-36 按值查找单链表 82

1.3.6 链表的插入 84

范例1-37 链表的插入 84

1.3.7 链表的删除 86

范例1-38 链表的删除 86

1.3.8 归并两个单链表 88

范例1-39 归并两个单链表 88

1.3.9 动态堆栈 90

范例1-40 动态堆栈 90

1.3.10 动态队列 93

范例1-41 动态队列 93

1.3.11 初始化单循环链表 95

范例1-42 初始化单循环链表 95

1.3.12 查询元素的前驱和后继 98

范例1-43 查询元素的前驱和后继 98

1.3.13 单循环链表中元素的删除 101

范例1-44 单循环链表中元素的删除 101

1.3.14 单循环链表的清除和销毁 107

范例1-45 单循环链表的清除和销毁 107

1.3.15 仅设表尾指针循环链表的合并 110

范例1-46 仅设表尾指针循环链表的合并 110

1.3.16 正序输出双向链表 113

范例1-47 正序输出双向链表 113

1.3.17 逆向输出双向链表 116

范例1-48 逆向输出双向链表 116

1.3.18 删除双向链表中的节点 121

范例1-49 删除双向链表中的节点 121

1.3.19 双向链表的元素个数 124

范例1-50 双向链表的元素个数 124

1.3.20 判断双向链表是否为空 126

范例1-51 判断双向链表是否为空 126

1.3.21 双向链表元素值的查询 129

范例1-52 双向链表元素值的查询 129

1.3.22 稀疏矩阵的建立 136

范例1-53 稀疏矩阵的建立 136

1.3.23 稀疏矩阵的删除 138

范例1-54 稀疏矩阵的删除 138

1.4 树和二叉树 141

1.4.1 获得二叉树的深度和根(顺页序结构) 141

范例1-55 获得二叉树的深度和根 141

1.4.2 获得二叉树的深度和根(链表结构) 144

范例1-56 获得二叉树的深度和根 144

1.4.3 树的插入(顺序结构) 147

范例1-57 树的插入 147

1.4.4 节点的修改(顺序结构) 150

范例1-58 节点的修改 150

1.4.5 节点的修改(链式结构) 154

范例1-59 节点的修改 154

14.6 双亲、孩子和兄弟节点的查询(顺序结构) 158

范例1-60 双亲、孩子和兄弟节点的查询 158

1.4.7 双亲、孩子和兄弟节点的查询(链式结构) 162

范例1-61 双亲、孩子和兄弟节点的查询 162

1.4.8 中序遍历二叉树(顺序结构) 169

范例1-62 中序遍历二叉树 169

1.4.9 中序遍历二叉树(链式结构) 171

范例1-63 中序遍历二叉树 171

1.4.10 中序非递归遍历二叉树(链式结构)(1) 174

范例1-64 中序非递归遍历二叉树 174

1.4.11 中序非递归遍历二叉树(链式结构)(2) 177

范例1-65 中序非递归遍历二叉树 177

1.4.12 后序遍历二叉树(顺序结构) 180

范例1-66 后序遍历二叉树 180

1.4.13 后序遍历二叉树(链式结构) 183

范例1-67 后序遍历二叉树 183

1.4.14 层次遍历二叉树(顺序结构) 186

范例1-68 层次遍历二叉树 186

1.4.15 层次遍历二叉树(链式结构) 188

范例1-69 层次遍历二叉树 188

1.4.16 树的合并 191

范例1-70 树的合并 191

1.4.17 树的二叉链表存储的基本操作 193

范例1-71 树的二叉链表存储的基本操作 193

1.4.18 二叉树的三叉链表存储的基本操作 201

范例1-72 二叉树的三叉链表存储的基本操作 201

1.4.19 二叉树的二叉线索存储的基本操作 212

范例1-73 二叉树的二叉线索存储 212

1.4.20 树的双亲表存储的基本操作 215

范例1-74 树的双亲表存储的基本操作 215

1.4.21 哈夫曼编码(1) 223

范例1-75 哈夫曼编码(1) 223

1.4.22 哈夫曼编码(2) 226

范例1-76 哈夫曼编码(2) 226

1.5 排序 229

1.5.1 直接插入排序 229

范例1-77 直接插入排序 229

1.5.2 折半插入排序(顺序结构) 231

范例1-78 折半插入排序(顺序结构) 231

1.5.32 一路插入排序(顺序结构) 233

范例1-792 一路插入排序(顺序结构) 233

1.5.4 折半插入排序(链式结构) 235

范例1-80 折半插入排序(链式结构) 235

1.5.52 一路插入排序(链式结构) 238

范例1-812 一路插入排序(链式结构) 238

1.5.6 希尔排序 241

范例1-82 希尔排序 241

1.5.7 冒泡排序 243

范例1-83 冒泡排序 243

1.5.8 一趟快速排序 246

范例1-84 一趟快速排序 246

1.5.9 一趟快速排序的改进算法 248

范例1-85 一趟快速排序的改进算法 248

1.5.10 简单选择排序 250

范例1-86 简单选择排序 250

1.5.11 箱子排序 252

范例1-87 箱子排序 252

1.5.12 树型选择排序 254

范例1-88 树型选择排序 254

1.5.13 堆排序 256

范例1-89 堆排序 256

1.5.14 归并排序 258

范例1-90 归并排序 258

1.5.15 多路平衡归并排序 260

范例1-91 多路平衡归并排序 260

1.5.16 置换—选择排序 265

范例1-92 置换—选择排序 265

1.5.17 文件的归并 269

范例1-93 文件的归并 269

1.6 查找 272

1.6.1 顺序表的查找 273

范例1-94 顺序表的查找 273

1.6.2 静态树表的查找 276

范例1-95 静态树表的查找 276

1.6.3 二叉排序树的基本操作 280

范例1-96 二叉排序树的基本操作 280

1.6.4 平衡二叉树的基本操作 285

范例1-97 平衡二叉树的基本操作 285

1.6.5 B树的基本操作 290

范例1-98 B树的基本操作 290

1.6.6 按关键字符串的遍历双链键树 295

范例1-99 按关键字符串遍历双链键树 295

1.6.7 按关键字符串的遍历Trie树 301

范例1-100 按关键字符串遍历Trie树 301

1.6.8 哈希表的基本操作 306

范例1-101 哈希表的基本操作 306

1.7 图 311

1.7.1 图的邻接矩阵存储表示 311

范例1-102 图的邻接矩阵存储表示 311

1.7.2 图的邻接表存储表示 324

范例1-103 图的邻接表存储表示 324

1.7.3 有向图的十字链表存储表示 335

范例1-104 有向图的十字链表存储表示 335

1.7.4 无向图的邻接多重表存储表示 344

范例1-105 无向图的邻接多重表存储表示 344

1.7.5 最小生成树 355

范例1-106 最小生成树 355

1.7.6 关节点和重连通分量 359

范例1-107关节点和重连通分量 359

1.7.7 拓扑排序 366

范例1-108 拓扑排序 366

1.7.8 关键路径 374

范例1-109 关键路径 374

1.7.9 最短路径 383

范例1-110 最短路径 383

1.7.10 每一对顶点之间的最短路径 387

范例1-111 每一对顶点之间的最短路径 387

1.8 本章小结 395

第2章 数值计算 397

2.1 常见的数学函数 398

2.1.1 求整数的绝对值 398

范例2-1 求整数的绝对值 398

2.1.2 求长整型整数的绝对值 399

范例2-2 求长整型整数的绝对值 399

2.1.2 求浮点数的绝对值 400

范例2-2 求浮点数的绝对值 400

2.1.4 求反余弦 400

范例2-4 求反余弦 400

2.1.5 求反正弦 401

范例2-5 求反正弦 401

2.1.6 求反正切 402

范例2-6 求反正切 402

2.1.7 对浮点数进行舍入 403

范例2-7 对浮点数进行舍入 403

2.1.8 求余弦 404

范例2-8 求余弦 404

2.1.9 求双曲余弦 405

范例2-9 求双曲余弦 405

2.1.10 求正弦 406

范例2-10 求正弦 406

2.1.11 求双曲正弦 406

范例2-11 求双曲正弦 406

2.1.12 求正切 407

范例2-12 求正切 407

2.1.13 求双曲正切 408

范例2-13 求双曲正切 408

2.1.14 获得整数相除的商和余数 409

范例2-14 获得整数相除的商和余数 409

2.1.15 求ex 410

范例2-15 求ex 410

2.1.16 获取浮点相除的余数 411

范例2-16 获取浮点数相除的余数 411

2.1.17 获取浮点数的尾数和指数 412

范例2-17 获取浮点数的尾数和指数 412

2.1.18 求x2exponent 413

范例2-18求x2exponent 413

2.1.19 求自然对数 413

范例2-19 求自然对数 413

2.1.20 求lgx 414

范例2-20 求lgx 414

2.1.21 获取浮点数的整数部分和小数部分 415

范例2-21 获取浮点数的整数部分和小数部分 415

2.1.22 求xy 416

范例2-22 求xy 416

2.1.23 求10x 417

范例2-23 求10 417

2.1.24 获取随机数 418

范例2-24 获取随机数 418

2.1.25 设置随机数生成器初值 418

范例2-25 设置随机数生成器初值 418

2.1.26 获取最大值和最小值 419

范例2-26 获取最大值和最小值 419

2.1.27 求直角三角形的斜边长 421

范例2-27 求直角三角形的斜边长 421

2.1.28 获取多项式的值 421

范例2-28 获取多项式的值 421

2.2 多项式的计算 422

2.2.1 一维多项式求值 422

范例2-29 一维多项式求值 422

2.2.2 二维多项式求值 424

范例2-30 二维多项式求值 424

2.2.3 复系数一维多项式求值 425

范例2-31 复系数一维多项式求值 425

2.2.4 多项式相乘 427

范例2-32 多项式相乘 427

2.2.5 复系数多项式相乘 428

范例2-33 复系数多项式相乘 428

2.2.6 多项式除法 430

范例2-34 多项式除法 430

2.2.7 复数多项式相除 432

范例2-35 复数多项式相除 432

2.3 复数运算 435

2.3.1 复数乘法 435

范例2-36 复数乘法 435

2.3.2 复数除法 436

范例2-37 复数除法 436

2.3.3 复数乘幂 437

范例2-38 复数乘幂 437

2.3.4 复数的n次方根 439

范例2-39 复数的n次方根 439

2.3.5 复数指数 441

范例2-40 复数指数 441

2.3.6 复数对数 442

范例2-41 复数对数 442

2.3.7 复数正弦 443

范例2-42 复数正弦 443

2.3.8 复数余弦 444

范例2-43 复数余弦 444

2.4 随机数的产生 445

2.4.1 产生0~1之间均匀分布的随机数 446

范例2-44 0~1之间均匀分布的随机数 446

2.4.2 产生0~1之间均匀分布的随机数序列 447

范例2-45 0~1之间均匀分布的随机数序列 447

2.4.3 产生任意区间内均匀分布的随机数 448

范例2-46 产生任意区间内均匀分布的随机数 448

2.4.4 产生任意区间内均匀分布的随机数序列 450

范例2-47 产生任意区间内均匀分布的随机数序列 450

2.4.5 产生任意均值与方差的正态分布的随机数 451

范例2-48 任意均值与方差的正态分布的随机数 451

2.4.6 产生任意均值与方差的正态分布的随机数序列 453

范例2-49 产生任意均值与方差的正态分布随机数序列 453

2.5 矩阵运算 454

2.5.1 实矩阵相乘 454

范例2-50 实矩阵相乘 454

2.5.2 复矩阵相乘 456

范例2-51 复矩阵相乘 456

2.5.3 一般实矩阵求逆 458

范例2-52 一般实矩阵求逆 458

2.5.4 一般复矩阵求逆 462

范例2-53 一般复矩阵求逆 462

2.5.5 对称正定矩阵的求逆 465

范例2-54 对称正定矩阵的求逆 465

2.5.6 托伯利兹矩阵求逆的特兰持方法 467

范例2-55 托伯利兹矩阵求逆的特兰持方法 467

2.5.7 求一般行列式的值 470

范例2-56 求一般行列式的值 470

2.5.8 求矩阵的秩 472

范例2-57 求矩阵的秩 472

2.5.9 对称正定矩阵的乔里斯基分解与行列式求值 474

范例2-58 对称正定矩阵的乔里斯基分解与行列式求值 474

2.5.10 矩阵的三角分解 476

范例2-59 矩阵的三角分解 476

2.5.11 一般实-矩阵的QR分解 478

范例2-60 一般实矩阵的QR分解 478

2.5.12 求广义逆的奇异值分解法 480

范例2-61 求广义逆的奇异值分解法 480

2.6 矩阵特征值与特征向量的计算 489

2.6.1 约化对称矩阵为对称三对角阵的豪斯荷尔德变换法 489

范例2-62 约化对称矩阵为对称三对角阵的豪斯荷尔德变换法 489

2.6.2 求对称三对角阵的全部特征值与特征向量 492

范例2-63 求对称三对角阵的全部特征值与特征向量 492

2.6.3 约化一般实矩阵为赫申伯格矩阵的初等相似变换法 496

范例2-64 约化实矩阵为赫申伯格矩阵的初等相似变换法 496

2.6.4 求赫申伯格矩阵全部特征值的QR方法 498

范例2-65 求赫申伯格矩阵全部特征值的QR方法 498

2.6.5 求实对称矩阵特征值与特征向量的雅可比法 502

范例2-66 求实对称矩阵特征值与特征向量的雅可比法 502

2.6.6 求实对称矩阵特征值与特征向量的雅可比过关法 505

范例2-67 求实对称矩阵特征值与特征向量的雅可比过关法 505

2.7 线性代数方程组的求解 507

2.7.1 求解实系数方程组的全选主元高斯消去法 508

范例2-68 求解实系数方程组的全选主元高斯消去法 508

2.7.2 求解实系数方程组的全选主元高斯—约当消去法 510

范例2-69 求解实系数方程组的全选主元高斯—约当消去法 510

2.7.3 求解复系数方程组的全选主元高斯消去法 513

范例2-70 求解复系数方程组(方法一) 513

2.7.4 求解复系数方程组的全选主元高斯—约当消去法 516

范例2-71 求解复系数方程组(方法二) 516

2.7.5 求解三对角线方程组的追赶法 519

范例2-72 求解三对角线方程组的追赶法 519

2.7.6 求解一般带型方程组 521

范例2-73 求解一般带型方程组 521

2.7.7 求解对称方程组的分解法 523

范例2-74 求解对称方程组的分解法 523

2.7.8 求解对称正定方程组的平方根法 526

范例2-75 求解对称正定方程组的平方根法 526

2.7.9 求解大型稀疏方程组 528

范例2-76 求解大型稀疏方程组 528

2.7.10 求解托伯利兹方程组的列文逊方法 531

范例2-77 求解托伯利兹方程组列文逊方法 531

2.7.11 高斯—赛德尔迭代法 533

范例2-78 高斯—赛德尔迭代法 533

2.7.12 求解对称正定方程组的共轭梯度法 535

范例2-79 求解对称正定方程组的共轭梯度法 535

2.7.13 求解线性最小二乘问题的豪斯荷尔德变换法 537

范例2-80 求解线性最小二乘问题豪斯荷尔德变换法 537

2.7.14 求解线性最小二乘问题的广义逆法 540

范例2-81 求解线性最小二乘问题的广义逆法 540

2.7.15 求解病态方程组 549

范例2-82 求解病态方程组 549

2.8 非线性方程与方程组的求解 553

2.8.1 求非线性方程一个实根的对分法 553

范例2-83 对分法 553

2.8.2 求非线性方程一个实根的牛顿法 555

范例2-84 牛顿法 555

2.8.3 求非线性方程一个实根的埃特金迭代法 557

范例2-85 埃特金迭代法 557

2.8.4 求非线性方程一个实根的连分式法 558

范例2-86 连分式法 558

2.8.5 求实系数代数方程全部根的QR方法 560

范例2-87 QR方法 560

2.8.6 求实系数代数方程全部根的牛顿下山法 563

范例2-88 求实系数代数方程全部根的牛顿下山法 563

2.8.7 求复系数代数方程全部根的牛顿下山法 568

范例2-89 求复系数代数方程全部根的牛顿下山法 568

2.8.8 求非线性方程组一组实根的梯度法 572

范例2-90 求非线性方程组一组实根的梯度法 572

2.8.9 求非线性方程组一组实根的拟牛顿法 574

范例2-91 求非线性方程组一组实根的拟牛顿法 574

2.8.10 求非线性方程一个实根的蒙特卡洛法 577

范例2-92 求非线性方程的蒙特卡洛法 577

2.8.11 求实函数或复函数方程一个复根的蒙特卡洛法 579

范例2-93 求实函数或复函数方程一个复根的蒙特卡洛法 579

2.8.12 求非线性方程组一组实根的蒙特卡洛法 581

范例2-94 求非线性方程组一组实根的蒙特卡洛法 581

2.9 插值与逼近 583

2.9.1 一元全区间插值 583

范例2-95 一元全区间插值 583

2.9.2 一元三点插值 585

范例2-96 一元三点插值 585

2.9.3 连分式插值 586

范例2-97 连分式插值 586

2.9.4 埃尔米特插值 588

范例2-98 埃尔米特插值 588

2.9.5 埃特金逐步插值 590

范例2-99 埃特金逐步插值 590

2.9.6 光滑插值 592

范例2-100 光滑插值 592

2.9.7 第一种边界条件的三次样条函数插值、微商与积分 595

范例2-101 第一种边界条件的三次样条函数插值、微商与积分 595

2.9.8 第二种边界条件的三次样条函数插值、微商与积分 598

范例2-102 第二种边界条件的三次样条函数插值、微商与积分 598

2.9.9 第三种边界条件的三次样条函数插值、微商与积分 600

范例2-103 第三种边界条件的三次样条函数插值、微商与积分 600

2.9.10 二元三点插值 604

范例2-104 二元三点插值 604

2.9.11 二元全区间插值 606

范例2-105 二元全区间插值 606

2.9.12 最小二乘曲线拟合 608

范例2-106 最小二乘曲线拟合 608

2.9.13 切比雪夫曲线拟合 611

范例2-107 切比雪夫曲线拟合 611

2.9.14 最佳—致逼近的里米兹方法 614

范例2-108 最佳一致逼近的里米兹方法 614

2.9.15 矩形域的最小二乘曲面拟合 616

范例2-109 矩形域的最小二乘曲面拟合 616

2.10 数值积分 621

2.10.1 变步长梯形求积法 621

范例2-110 变步长梯形求积法 621

2.10.2 变步长辛卜生求积法 623

范例2-111 变步长辛卜生求积法 623

2.10.3 自适应梯形求积法 624

范例2-112 自适应梯形求积法 624

2.10.4 龙贝格求积法 626

范例2-113 龙贝格求积法 626

2.10.5 计算一维积分的连分式法 627

范例2-114 计算一维积分的连分式法 627

2.10.6 高振荡函数求积法 629

范例2-115 高振荡函数求积法 629

2.10.7 勒让德—高斯求积法 631

范例2-116 勒让德—高斯求积法 631

2.10.8 拉盖尔—高斯求积法 633

范例2-117 拉盖尔—高斯求积法 633

2.10.9 埃尔米特—高斯求积法 634

范例2-118 埃尔米特—高斯求积法 634

2.10.10 切比雪夫求积法 635

范例2-119 切比雪夫求积法 635

2.10.11 计算一维积分的蒙特卡洛法 637

范例2-120 计算一维积分的蒙特卡洛法 637

2.10.12 变步长辛卜生二重积分法 638

范例2-121 变步长辛卜生二重积分法 638

2.10.13 计算多重积分的高斯方法 640

范例2-122 计算多重积分的高斯方法 640

2.10.14 计算二重积分的连分式法 643

范例2-123 计算二重积分的连分式法 643

2.10.15 计算多重积分的蒙特卡洛法 645

范例2-124 计算多重积分的蒙特卡洛法 645

2.11 常微分方程组的求解 647

2.11.1 全区间积分的定步长欧拉方法 647

范例2-125 全区间积分的定步长欧拉方法 647

2.11.2 积分一步的变步长欧拉方法 649

范例2-126 积分一步的变步长欧拉方法 649

2.11.3 全区间积分的维梯方法 651

范例2-127 全区间积分的维梯方法 651

2.11.4 全区间积分的定步长龙格—库塔方法 653

范例2-128 全区间积分的定步长龙格—库塔方法实例位置 653

2.11.5 积分一步的变步长龙格—库塔方法 655

范例2-129 积分—步的变步长龙格—库塔方法实例位置 655

2.11.6 积分一步的变步长基尔方法 657

范例2-130 积分一步的变步长基尔方法 657

2.11.7 全区间积分的变步长默森方法 659

范例2-131 全区间积分的变步长默森方法 659

2.11.8 积分一步的连分式法 662

范例2-132 积分一步的连分式法 662

2.11.9 全区间积分的双边法 665

范例2-133 全区间积分的双边法 665

2.11.10 全区间积分的阿当姆斯预报校正法 668

范例2-134 全区间积分的阿当姆斯预报校正法 668

2.11.11 全区间积分的哈明方法 671

范例2-135 全区间积分的哈明方法 671

2.11.12 积分一步的特雷纳方法 675

范例2-136 积分一步的特雷纳方法 675

2.11.13 二阶微分方程边值问题的数值解法 678

范例2-137 二阶微分方程边值问题的数值解法 678

2.12 数据处理与回归分析 680

2.12.1 随机样本分析 680

范例2-138 随机样本分析 680

2.12.2 一元线性回归分析 683

范例2-139 一元线性回归分析 683

2.12.3 多元线性回归分析 685

范例2-140 多元线性回归分析 685

2.12.4 半对数数据相关 688

范例2-141 半对数数据相关 688

2.12.5 对数数据相关 690

范例2-142 对数数据相关 690

2.13 极值问题的求解 691

2.13.1 一维极值连分式法 691

范例2-143 一维极值连分式法 691

2.13.2 n维极值连分式法 693

范例2-144 n维极值连分式法 693

2.13.3 不等式约束线性规划问题 696

范例2-145 不等式约束线性规划问题 696

2.14 数学变换与滤波 700

2.14.1 傅里叶级数逼近 700

范例2-146 傅里叶级数逼近 700

2.14.2 快速傅里叶变换 702

范例2-147 快速傅里叶变换 702

2.14.3 快速沃什变换 705

范例2-148 快速沃什变换 705

2.14.4 五点三次平滑 706

范例2-149 五点三次平滑 706

2.14.5 卡尔曼滤波 708

范例2-150 卡尔曼滤波 708

2.14.6 α-β-γ滤波 713

范例2-151 α-β-γ滤波 713

2.15 特殊函函数 714

2.15.1 Gamma函数 715

范例2-152 Gamma函数 715

2.15.2 不完全Gamma函数 716

范例2-153 不完全Gamma函数 716

2.15.3 误差函数 719

范例2-154 误差函数 719

2.15.4 第一类整数Bessel函数 721

范例2-155 第一类整数Bessel函数 721

2.15.5 第二类整数Bessel函数 724

范例2-156 第二类整数Bessel函数 724

2.15.6 变形第一类整数Bessel函数 727

范例2-157 变形第二类整数Bessel函数 727

2.15.7 变形第二类整数Bessel函数 729

范例2-158 变形第二类整数Bessel函数 729

2.15.8 不完全Beta函数 734

范例2-159 不完全Beta函数 734

2.15.9 正态分布函数 736

范例2-160 正态分布函数 736

2.15.10 t-分布函数 739

范例2-161 t-分布函数 739

2.15.11 2-分布函数 742

范例2-162 2-分布函数 742

2.15.12 F-分布函数 744

范例2-163 F-分布函数 744

2.15.13 正弦积分 747

范例2-164 正弦积分 747

2.15.14 余弦积分 749

范例2-16 5余弦积分 749

2.15.15 指数积分 750

范例2-166 指数积分 750

2.15.16 第一类椭圆积分 752

范例2-167 第一类椭圆积分 752

2.15.17 第二类椭圆积分 754

范例2-168 第二类椭圆积分 754

2.16 本章小结 756

第3章 图形图像处理 757

3.1 字符屏幕 758

3.1.1 文本的输入与输出 758

范例3-1 文本的输入与输出 758

3.1.2 outtext、outtextxy函数输出 759

范例3-2 outtex、outtextxy函数输出 759

3.1.3 设置文本格式 761

范例3-3 设置文本格式 761

3.1.4 设置图形文本排列方式 763

范例3-4 设置图形文本排列方式 763

3.1.5 设置用户字符比例 765

范例3-5 设置用户字符比例 765

3.1.6 控制文本的明暗度 766

范例3-6 控制文本的明暗度 766

3.1.7 设置文本的前景色和背景色 767

范例3-7 设置文本的前景色和背景色 767

3.1.8 字符窗口 770

范例3-8 字符窗口 770

3.1.9 清除光标行尾字符 772

范例3-9 清除光标行尾字符 772

3.1.10 插入与删除行 773

范例3-10 插入与删除行 773

3.1.11 屏幕参数检测 774

范例3-11 屏幕参数检测 774

3.2 图形图像处理基础 777

3.2.1 绘制像素点 777

范例3-12 绘制像素点 777

3.2.2 绘制直线 778

范例3-13 绘制直线 778

3.2.3 绘制矩形 780

范例3-14 绘制矩形 780

3.2.4 绘制多边形 781

范例3-15 绘制多边形 781

3.2.5 绘制圆 783

范例3-16 绘制圆 783

3.2.6 绘制椭圆 784

范例3-17 绘制椭圆 784

3.2.7 绘制圆弧 786

范例3-18 绘制圆弧 786

3.2.8 绘制扇区 787

范例3-19 绘制扇区 787

3.2.9 绘制条块 788

范例3-20 绘制条块 788

3.2.10 设置线型 790

范例3-21 设置线型 790

3.2.11 绘制填充矩形 792

范例3-22 绘制填充矩形 792

3.2.12 填充多边形 795

范例3-23 填充多边形 795

3.2.13 设置用户图样 796

范例3-24 设置用户图样 796

3.3 图形图像处理进阶 798

3.3.1 绘制彩色点云 798

范例3-25 绘制彩色点云 798

3.3.2 绘制正多边形 799

范例3-26 绘制正多边形 799

3.3.3 图形法绘制圆 801

范例3-27 图形法绘制圆 801

3.3.4 图形法绘制椭圆 803

范例3-28 图形法绘制椭圆 803

3.3.5 绘制正弦曲线 805

范例3-29 绘制正弦曲线 805

3.3.6 绘制抛物样条曲线 806

范例3-30 绘制抛物样条曲线 806

3.3.7 绘制布朗曲线 809

范例3-31 绘制布朗曲线 809

3.3.8 动态绘制256色线条 811

范例3-32 动态绘制256色线条 811

3.3.9 三原色亮度渐变 813

范例3-33 三原色亮度渐变 813

3.3.10 三视图模拟 815

范例3-34 三视图模拟 815

3.3.11 空间椭球模拟 817

范例3-35 空间椭球模拟 817

3.3.12 百叶窗效果 820

范例3-36 百叶窗效果 820

3.3.13 视觉欺骗 822

范例3-37 视觉欺骗 822

3.3.14 三维建筑物 824

范例3-38 三维建筑物 824

3.4 组合图案绘制 830

3.4.1 一箭穿心图案 830

范例3-39 一箭穿心图案 830

3.4.2 六叶图案 832

范例3-40 六叶图案 832

3.4.3 花瓣形图案 833

范例3-41 花瓣形图案 833

3.4.4 雪花图案 835

范例3-42 雪花图案 835

3.4.5 布艺图案 837

范例3-43 布艺图案 837

3.4.6 飘带图案 838

范例3-44 飘带图案 838

3.4.7 金刚石图案 840

范例3-45 金刚石图案 840

3.4.8 圆环图案 841

范例3-46 圆环图案 841

3.4.9 肾形图案 843

范例3-47 肾形图案 843

3.4.10 心脏形图案 844

范例3-48 心脏形图案 844

3.4.11 鱼网图案 846

范例3-49 鱼网图案 846

3.4.12 沙丘图案 848

范例3-50 沙丘图案 848

3.4.13 正六边形螺旋图案 849

范例3-51 正六边形螺旋图案 849

3.4.14 正方形螺旋拼块图案 851

范例3-52 正方形螺旋拼块图案 851

3.4.15 递归法绘制三角形图案 853

范例3-53 递归法绘制三角形图案 853

3.4.16 玫瑰图案 855

范例3-54 玫瑰图案 855

3.4.17 天空图案 859

范例3-55 天空图案 859

3.4.18 Mandelbrot分形图案 864

范例3-56 Mandelbrot分形图案 864

3.5 窗体界面与报表设计 866

3.5.1 窗体设计 866

范例3-57 窗体设计 866

3.5.2 简单菜单设计 871

范例3-58 简单菜单设计 871

3.5.3 制作表格 877

范例3-59 制作表格 877

3.5.4 折线图 878

范例3-60 折线图 878

3.5.5 饼状图 880

范例3-61 饼状图 880

3.5.6 柱状图 881

范例3-62 柱状图 881

3.6 动画制作 884

3.6.1 旋转的立体椭球 884

范例3-63 旋转的立体椭球 884

3.6.2 小球碰撞演示 887

范例3-64 小球碰撞演示 887

3.6.3 飘动的旗帜 889

范例3-65 飘动的旗帜 889

3.6.4 行驶中的小车 891

范例3-66 行驶中的小车 891

3.6.5 不停动嘴巴的头 893

范例3-67 不停动嘴巴的头 893

3.6.6 旋转的太极图 898

范例3-68 旋转的太极图 898

3.6.7 螺旋运动的圆斑 901

范例3-69 螺旋运动的圆斑 901

3.6.8 闪动的彩色圆斑 903

范例3-70 闪动的彩色圆斑 903

3.6.9 奔跑的小人 904

范例3-71 奔跑的小人 904

3.6.10 发射火箭 907

范例3-72 发射火箭 907

3.6.11 擦玻璃 911

范例3-73 擦玻璃 911

3.6.12 流星球 914

范例3-74 流星球 914

3.6.13 简单时钟 916

范例3-75 简单时钟 916

3.6.14 立体时钟 918

范例3-76 立体时钟 918

3.6.15 飘雪 920

范例3-77 飘雪 920

3.6.16 制作火焰 923

范例3-78 制作火焰 923

3.6.17 天体系统 926

范例3-79 天体系统 926

3.6.18 扇动翅膀的蝴蝶 935

范例3-80 扇动翅膀的蝴蝶 935

3.6.19 米奇 936

范例3-81 米奇 936

3.7 本章小结 940

第4章 磁盘、目录和文件的操作 941

4.1 磁盘的操作 942

4.1.1 获取当前盘驱动器 942

范例4-1 获取当前盘驱动器 942

4.1.2 设置当前驱动器 943

范例4-2 设置当前驱动器 943

4.1.3 获取磁盘的可用空间 945

范例4-3 获取磁盘的可用空间 945

4.1.4 测试软驱是否可用 946

范例4-4 测试软驱是否可用 946

4.2 目录的操作 948

4.2.1 创建目录 948

范例4-5 创建目录 948

4.2.2 改变当前目录 950

范例4-6 改变当前目录 950

4.2.3 删除目录 952

范例4-7 删除目录 952

4.3 文件的操作 953

4.3.1 用fopen函数打开文件 953

范例4-8 用fopen函数打开文件 953

4.3.2 打开系统temp目录中的文件 955

范例4-9 打开系统temp目录中的文件 955

4.3.3 使用低级函数打开和关闭文件 957

范例4-10 使用低级函数打开和关闭文件 957

4.3.4 用fclose函数关闭文件 959

范例4-11 用fclose函数关闭文件 959

4.3.5 一次性关闭所有被打开的文件 961

范例4-12 一次性关闭所有被打开的文件 961

4.3.6 以字符为单位读写文件 963

范例4-13 以字符为单位读写文件 963

4.3.7 以字为单位读写文件 965

范例4-14 以字为单位读写文件 965

4.3.8 以低级的方式读写文件 967

范例4-15 以低级的方式读写文件 967

4.3.9 按结构读写文件 969

范例4-16 按结构读写文件 969

4.3.10 格式化写文件 971

范例4-17 格式化写文件 971

4.3.11 格式化读文件 972

范例4-18 格式化读文件 972

4.3.12 以行为单位写文件 974

范例4-19 以行为单位写文件 974

4.3.13 以行为单位读文件 975

范例4-20 以行为单位读文件 975

4.3.14 将缓冲区内容写入文件 977

范例4-21 将缓冲区内容写入文件 977

4.3.15 用lseek函数定位文件指针 978

范例4-22 用Iseek函数定位文件指针 978

4.3.16 获取文件流的文件句柄 980

范例4-23 获取文件流的文件句柄 980

4.3.17 从文件流指针中导出文件句柄 982

范例4-24 从文件流指针中导出文件句柄 982

4.3.18 利用eof函数判断文件是否结束 984

范例4-25 利用eof函数判断文件是否结束 984

4.3.19 利用feof函数判断文件结尾 986

范例4-26 利用feof函数判断文件结尾 986

4.3.20 刷新I/O流 988

范例4-27 刷新I/O流 988

4.3.21 利用trnpnam函数创建临时文件名 990

范例4-28 利用tmpnam函数创建临时文件名 990

4.3.22 创建真正的临时文件 992

范例4-29 创建真正的临时文件 992

4.3.2 创建文件 993

范例4-30 创建文件 993

4.3.24 在指定目录中创建唯一文件 995

范例4-31 在指定目录中创建唯一文件 995

4.3.25 利用creatnew函数创建新文件 996

范例4-32 利用creatnew函数创建新文件 996

4.3.26 删除文件 998

范例4-33 删除文件 998

4.3.27 查找文件获取文件的路径 1000

范例4-34 查找文件获取文件的路径 1000

4.3.28 分解文件路径 1001

范例4-35 分解文件路径 1001

4.3.29 建立文件完全路径名 1003

范例4-36 建立文件完全路径名 1003

4.3.30 读取文件分配表信息 1005

范例4-37 读取文件分配表信息 1005

4.3.31 判断读写所在的文件的位置 1007

范例4-38 判断读写所在的文件的位置 1007

4.3.32 重命名文件 1009

范例4-39 重命名文件 1009

4.3.33 判断访问文件的模式 1011

范例4-40 判断访问文件的模式 1011

4.3.34 设置文件访问模式 1013

范例4-41 设置文件访问模式 1013

4.3.35 显示文件的属性 1015

范例4-42 显示文件的属性 1015

4.3.36 检测文件流的错误 1017

范例4-43 检测文件流的错误 1017

4.3.37 判断文件的长度 1019

范例4-44 判断文件的长度 1019

4.3.38 通过句柄设置打开文件的方式 1022

范例4-45 通过句柄设置打开文件的方式 1022

4.3.39 读取文件的时间和日期标记 1023

范例4-46 读取文件的时间和日期标记 1023

4.3.40 设置文件的时间和日期标记 1026

范例4-47 设置文件的时间和日期标记 1026

4.3.41 改变文件的长度 1028

范例4-48 改变文件的长度 1028

4.3.42 控制文件打开操作的读写模式 1029

范例4-49 控制文件打开操作的i读写模式 1029

4.3.43 复制文件句柄 1032

范例4-50 复制文件句柄 1032

4.3.44 强制复制文件句柄 1033

范例4-51 强制复制文件句柄 1033

4.3.45 用句柄判断读写所在的文件的位置 1036

范例4-52 用句柄判断当前文件指针的位置 1036

4.3.46 根据当前位置定位文件指针 1038

范例4-53 根据当前位置定位文件指针 1038

4.3.47 获取文件句柄的信息 1039

范例4-54 获取文件句柄的信息 1039

4.3.48 重新打开文件流 1041

范例4-55 重新打开文件流 1041

4.4 本章小结 1043

第5章 系统调用 1045

5.1 时间和日期的操作 1046

5.1.1 获取当前的时间和日期 1046

范例5-1 获取当前时间和日期 1046

5.1.2 让程序延时指定的时间段 1047

范例5-2 让程序延时指定的时间段 1047

5.1.3 比较两个时间 1048

范例5-3 比较两个时间 1048

5.1.4 读BIOS计时器 1050

范例5-4 读BIOS计时器 1050

5.1.5 获取当地时间 1051

范例5-5 获取当地时间 1051

5.1.6 获取格林威治平时 1052

范例5-6 获取格林威治平时 1052

5.1.7 获取DOS系统时间 1054

范例5-7 获取DOS系统时间 1054

51.8 获取DOS系统日期 1055

范例5-8 获取DOS系统日期 1055

5.1.9 设置DOS系统时间 1057

范例5-9 设置DOS系统时间 1057

5.1.10 设置DOS系统日期 1059

范例5-10 设置DOS系统日期 1059

5.1.11 获取时区信息 1061

范例5-11 获取时区信息 1061

5.2 BIOS的操作 1062

5.2.1 利用BIOS获取打印机的状态 1062

范例5-12 利用BIOS获取打印机的状态 1062

5.2.2 获取Ctrl+Break信息 1064

范例5-13 获取Ctrl+Break信息 1064

5.2.3 暂时挂起程序 1066

范例5-14 暂时挂起程序 1066

5.2.4 控制声音 1067

范例5-15 控制声音 1067

5.2.5 利用bdos函数访问DOS服务 1068

范例5-16 利用bdos函数访问DOS服务 1068

5.2.6 获取BIOS常规内存数量 1071

范例5-17 获取BIOS常规内存数量 1071

5.2.7 获取寄存器设置信息 1072

范例5-18 获取寄存器设置信息 1072

5.3 内存的操作 1074

5.3.1 给内存区域赋值 1074

范例5-19 给内存区域赋值 1074

5.3.2 复制内存区域 1076

范例5-20 复制内存区域 1076

5.3.3 复制内存区域指定的字节 1078

范例5-21 复制内存区域指定的字节 1078

5.3.4 比较两个无符号字符数组 1080

范例5-22 比较两个无符号字符数组 1080

5.3.5 交换字符串的两个相邻字节内容 1082

范例5-23 交换字符串的两个相邻字节内容 1082

5.3.6 利用brk函数改变堆的大小 1084

范例5-24 利用brk函数改变堆的大小 1084

5.3.7 获取指定内存单元内容 1086

范例5-25 获取指定内存单元内容 1086

5.3.8 设置指定内存单元内容 1088

范例5-26 设置指定内存单元内容 1088

5.4 本章小结 1090

索引 1091