欢迎光临
免费的PDF电子书下载网站

至美——C程序设计 PDF下载

编辑推荐

●汇聚著名计算机教育专家杨克昌教授多年C语言教学经验

●以算法为核心,注重案例的趣味性、经典性、引申性

●精选国际国内信息学(计算机)奥林匹克竞赛及网上读者集中探讨的程序设计热点问题

●每一个程序都经过多次运行调试,附有完整代码,代码有详细注释

 ;


 ;

内容简介

  本书以各类中外趣题的C语言程序设计为主线,取材注重案例的趣味性与典型性,程序突出算法设计与技能运用,旨在培养与提高程序设计的兴趣,增强通过C程序设计解决实际问题的能力。

  书中所精选的案例包括整数搜索、数据处理、模拟探索、智能游戏与图表创建,部分趣题取自国际国内历届信息学(计算机)奥林匹克与各类程序设计竞赛,同时参考了网上读者集中探讨的程序设计热点问题,类型广泛、内容丰富、难度适宜、深入浅出。所有趣题设计求解都给出完整程序代码,可在VC 6.0环境下编译通过,有些趣题还采用多个算法、多种思路的程序实现。

  本书作为C程序设计的教学参考资料集,适合本专科在校学生与广大程序设计爱好者学习参考,可供计算机等级考试与程序员水平考试复习使用,也可供IOI、NOI与各级程序设计竞赛培训选用。

  本书提供案例程序源代码及部分程序示例彩图,读者可以从中国水利水电出版社网站以及万水书苑下载,网址为:http://www.waterpub.com.cn/softdown/http://www.wsbookshow.com

作者简介

暂无

至美——C程序设计 PDF下载

目录


目 ; 录

前言


第1章 ; 舍罕王失算—不可轻视和与积··· 1

1.1 ; 喝汽水··· 1

1.2 ; 求和··· 2

1.2.1 ; 奇因数代数和··· 2

1.2.2 ; 同码小数和··· 3

1.3 ; 舍罕王失算··· 5

1.4 ; 阶乘与阶乘和数··· 7

1.4.1 ; 阶乘计算··· 7

1.4.2 ; 阶乘和数··· 8

1.5 ; 分级计算··· 10

1.5.1 ; 阶梯电价··· 10

1.5.2 ; 个人所得税··· 12

1.6 ; 解不等式··· 13

1.6.1 ; 平方根不等式··· 13

1.6.2 ; 调和级数不等式··· 15

1.6.3 ; 代数和不等式··· 16

1.7 ; 大奖赛现场统分··· 18

1.8 ; 地图扫描··· 21

第2章 ; 勾股数—古老文明的见证··· 23

2.1 ; 最大公约数与最小公倍数··· 23

2.2  ;卡普雷卡数与巧妙平方数··· 26

2.2.1 ; 卡普雷卡数··· 26

2.2.2 ; 巧妙平方数··· 30

2.3 ; 勾股数与长方体数··· 32

2.3.1 ; 勾股数··· 32

2.3.2 ; 长方体数··· 35

2.4  ;完全数与p-完全数··· 38

2.4.1 ; 完全数··· 38

2.4.2 ; p-完全数··· 39

2.5 ; 水仙花数与兰德尔数··· 41

2.5.1 ; 水仙花数··· 41

2.5.2 ; n位兰德尔数··· 42

2.6 ; 守形数··· 43

2.6.1 ; 区间守形数··· 43

2.6.2 ; n位守形数··· 44

2.7 ; 逐位整除数··· 45

第3章 ; 素数—描写宇宙的文字··· 49

3.1 ; 素数搜索··· 49

3.1.1 ; 试商判别法··· 49

3.1.2 ; 厄拉多塞筛法··· 50

3.2 ; 梅森尼数··· 52

3.3 ; 对称素数··· 53

3.4 ; 超级素数··· 55

3.5 ; 素数对··· 58

3.5.1 ; 孪生素数对··· 58

3.5.2 ; 逆序素数对··· 60

3.6 ; 连续合数探求··· 61

3.6.1 ; 最多连续合数区间··· 62

3.6.2 ; 最小连续n个合数··· 64

3.7 ; 合数世纪··· 65

第4章 ; 泊松分酒—趣味分解的巧妙··· 67

4.1 ; 质因数分解··· 67

4.2 ; 因式分解··· 69

4.3 ; 积最大的整数分解··· 72

4.4 ; 整数拆分··· 73

4.4.1 ; 零数为连续整数··· 74

4.4.2 ; 零数取自指定集合··· 76

4.5 ; 整币兑零··· 77

4.5.1 ; 特定整币兑零··· 77

4.5.2 ; 一般整币兑零··· 80

4.6 ; 拔河分组··· 81

4.7 ; 泊松分酒··· 85

第5章 ; 六六大顺—智能整合的神奇··· 89

5.1 ; 相亲数环··· 89

5.1.1 ; 4位以内相亲数对··· 89

5.1.2 ; n节相亲数环··· 90

5.2 ; 整数分解与重组··· 92

5.2.1 ; 双和3元2组··· 92

5.2.2 ; 和积3元3组··· 93

5.3 ; 等幂和数组··· 95

5.3.1 ; 等幂和3元组··· 95

5.3.2 ; 等幂和n元组··· 97

5.4 ; 古尺神奇··· 99

5.5 ; 数码串珠··· 103

5.6 ; 六六大顺··· 107

5.7 ; 子集和问题··· 109

第6章 ; 加密与解密—数据转换的技巧··· 112

6.1 ; 分数化小数··· 112

6.2 ; 数制转换··· 113

6.2.1 ; 十进制转换p进制··· 113

6.2.2 ; q进制转换p进制··· 115

6.3 ; 金额大写··· 116

6.4 ; 加密与解密··· 119

6.5 ; 序号与代码··· 123

6.6 ; 抽牌概率··· 124

6.6.1 ; 抽数字牌··· 125

6.6.2 ; 抽扑克牌··· 126

第7章 ; 优美综合式—数式构建的美妙··· 131

7.1 ; 奇数序列运算式··· 131

7.2 ; 埃及分数式··· 133

7.3  ;桥本分数式··· 136

7.4 ; 优美数式··· 139

7.4.1 ; 优美和式··· 139

7.4.2 ; 优美综合式··· 142

7.5 ; 对称运算式··· 145

7.5.1 ; 对称单运算式··· 145

7.5.2 ; 对称双运算式··· 150

7.6  同基因和式··· 152

7.7  同基因积式··· 156

7.7.1  同基因倍积式··· 156

7.7.2  同基因乘积式··· 158

第8章  裴波那契数列—递推迭代的典范··· 160

8.1  猴子爬山··· 160

8.2  真分数序列··· 163

8.3  裴波那契数列与应用··· 164

8.3.1  裴波那契数列··· 164

8.3.2  条件素数序列··· 166

8.4  双关系递推数列··· 167

8.5  等差素数列··· 169

8.6  指数序列··· 171

8.6.1  2-3指数序列··· 171

8.6.2  指数积序列··· 175

8.7  P数序列··· 179

8.8  双码二部数序列··· 182

第9章  佩尔方程—分类求解的精准··· 185

9.1  韩信点兵··· 185

9.2  古代趣算··· 187

9.2.1  百鸡问题··· 187

9.2.2  羊犬鸡兔问题··· 189

9.3  涉及商与余数的不定方程··· 190

9.4  佩尔方程··· 192

9.4.1  枚举测试求解··· 192

9.4.2  应用连分数高精度求解··· 193

9.5  水手分椰子··· 196

9.5.1  5个水手分椰子··· 196

9.5.2  n个水手分椰子··· 199

9.6  超越方程··· 201

第10章  最大r乘积—最优探索的奥秘··· 204

10.1  删数字问题··· 204

10.2  分数式最值··· 207

10.2.1  分数和最接近整数··· 207

10.2.2  分式和中的最值··· 208

10.3  最大子段和··· 209

10.3.1  序列最大子段··· 209

10.3.2  环最大子段··· 211

10.4  淘汰概率··· 212

10.5  子数对··· 214

10.5.1  去数字子数对··· 215

10.5.2  偶数子素对··· 217

10.6  背包效益··· 219

10.6.1  可拆背包··· 219

10.6.2  0−1背包··· 220

10.6.3  二维0−1背包··· 224

10.7  插入符号的最值··· 226

10.7.1  最大r乘积··· 226

10.7.2  最小r加综合和··· 230

10.8  最长子序列··· 233

10.8.1  最长非降子序列··· 233

10.8.2  最长公共子序列··· 234

第11章  铁人三项—几何智能的学问··· 238

11.1  交通方格网··· 238

11.2  矩形剪切构建容器··· 240

11.3  智能“铁人三项” 242

11.3.1  静水“三项”··· 242

11.3.2  流水“三项”··· 243

11.4  木排漂流··· 245

11.5  智能甲虫··· 248

11.6  点的覆盖圆··· 251

11.7  凸n边形的三角形划分··· 253

11.8  三角函数最值··· 256

11.8.1  三角函数加权和最小值··· 256

11.8.2  三角形正弦加权和最大值··· 257

第12章  尾数前移—运算模拟的典范··· 259

12.1  乘数探求··· 259

12.1.1  积为若干个1· 259

12.1.2  积为若干个2017· 260

12.1.3  积为指定构成··· 261

12.2  尾数前移··· 263

12.2.1  限1位尾数··· 263

12.2.2  多位尾数··· 265

12.3  01串积与2码串积··· 266

12.3.1  01串积··· 266

12.3.2  指定2码串积··· 268

12.4  二部数积··· 270

12.5  连写数积··· 273

12.6  圆周率π指定精度计算··· 275

12.7  高精度开方··· 277

12.7.1  开平方··· 277

12.7.2  开立方··· 278

第13章  万年历—数表图案的精彩··· 280

13.1  乘法表··· 280

13.1.1  九九乘法表··· 280

13.1.2  p进制乘法表··· 282

13.2  万年历··· 283

13.3  循环赛贝格尔表··· 285

13.4  金字塔图案··· 286

13.4.1  基本塔··· 286

13.4.2  套含空心塔··· 289

13.5  菱形与灯笼图案··· 290

13.5.1  菱形··· 290

13.5.2  灯笼··· 293

13.6  对称方阵··· 295

13.6.1  横竖折对称··· 295

13.6.2  斜折对称··· 296

13.7  圈号数阵··· 297

13.7.1  圈号方阵··· 297

13.7.2  层码菱阵··· 298

13.8  旋转数阵与转换··· 300

13.8.1  双转向旋转方阵··· 300

13.8.2  方阵与菱阵转换··· 302

第14章  高斯八后—排列组合的经典··· 305

14.1  排列计算与实现··· 305

14.1.1  计算A(n,m) 305

14.1.2  实现A(n,m) 307

14.1.3  实现复杂排列··· 308

14.2  组合计算与实现··· 311

14.2.1  计算C(n,m) 311

14.2.2  实现C(n,m) 313

14.2.3  实现允许重复组合··· 315

14.3  伯努利装错信封问题··· 316

14.4  分段幂··· 319

14.4.1  分段和幂··· 319

14.4.2  分段积和幂··· 322

14.4.3  分段和积幂··· 324

14.5  德布鲁金环序列··· 326

14.5.1  4阶环序列··· 327

14.5.2  n阶环序列··· 328

14.6  高斯八皇后问题··· 330

14.6.1  高斯八皇后··· 330

14.6.2  拓广n皇后··· 332

14.7  情侣拍照··· 336

第15章  杨辉三角—古典数阵的启迪··· 341

15.1  杨辉三角··· 341

15.2  三角数阵子形··· 343

15.2.1  最大子形··· 343

15.2.2  最小空心子形··· 347

15.3  三角数阵最优路径··· 350

15.3.1  最大简单路径··· 350

15.3.2  最小复杂路径··· 352

15.4  矩阵最大子圈··· 355

15.5  硬币矩阵翻转··· 357

15.5.1  翻转m×9矩阵··· 357

15.5.2  翻转m×n矩阵··· 360

15.5.3  较大矩阵翻转··· 364

15.6  矩阵最优路径··· 367

15.6.1  矩阵最小路径··· 367

15.6.2  方阵对称路径··· 369

15.7  矩阵迷宫最短通道··· 372

第16章  幻方—古今中外的奇葩··· 376

16.1  构建n阶幻方··· 377

16.2  对角正交拉丁方··· 380

16.3  积幻方··· 383

16.3.1  3阶积幻方··· 384

16.3.2  4阶积幻方··· 385

16.3.3  一组奇数阶积幻方··· 387

16.4  素数幻方··· 388

16.4.1  3阶素数幻方··· 388

16.4.2  4阶素数幻方··· 390

16.4.3  一组素数幻方··· 393

16.5  反幻方··· 396

16.5.1  3阶反幻方··· 397

16.5.2  n阶反幻方··· 398

第17章  哈密顿圈—人类智慧的瑰宝··· 401

17.1  马步遍历··· 401

17.1.1  回溯探求··· 401

17.1.2  递归探求··· 404

17.1.3  贪心无回溯探求··· 406

17.2  带障碍的马步遍历··· 409

17.3  马步型哈密顿圈··· 411

17.4  组合型哈密顿圈··· 414

17.4.1  双拼组合··· 415

17.4.2  环绕组合··· 417

17.5  带空洞的哈密顿圈··· 419

第18章  哥德巴赫猜想—不可或缺的验证··· 423

18.1  均位奇观··· 423

18.2  角谷猜想··· 425

18.3  黑洞数猜想··· 426

18.3.1  验证3位黑洞数··· 427

18.3.2  探索4位黑洞数··· 428

18.4  顺逆求和转换对称数··· 429

18.5  特定洗牌··· 433

18.6  欧拉素数多项式··· 435

18.7  哥德巴赫猜想··· 437

第19章  约瑟夫出圈—智力游戏的尝试··· 440

19.1  速算竞猜··· 440

19.1.1  数字魔术··· 440

19.1.2  加减得1· 441

19.1.3  极差过关··· 444

19.2  行操作游戏··· 447

19.2.1  黑白棋子移动··· 447

19.2.2  硬币正反倒面··· 449

19.2.3  左右报数出列··· 451

19.3  图形填数··· 452

19.3.1  等和三角形··· 452

19.3.2  和积三角形··· 454

19.4  数字牌游戏··· 457

19.4.1  按顺序排列翻一移一··· 457

19.4.2  翻一移一按顺序翻出··· 460

19.5  约瑟夫出圈··· 464

19.5.1  顺序围圈报数出圈··· 464

19.5.2  围圈报数顺序出圈··· 465

19.6  汉诺塔游戏··· 467

19.6.1  计算移动次数··· 467

19.6.2  展示移动过程··· 468

19.7  数独游戏··· 470

19.8  取石子游戏··· 473

19.8.1  巴什游戏··· 473

19.8.2  外索夫游戏··· 475

第20章  奥运五环—图形动画的展现··· 478

20.1  乌兰现象··· 478

20.1.1  乌兰方螺线··· 479

20.1.2  机器人漫步··· 480

20.2  函数y=sin(x)/x曲线··· 485

20.3  奥运五环··· 487

20.4  小球滚动与弹跳··· 489

20.5  小孔流水演示··· 491

20.6  皇后全控棋盘··· 494

20.6.1  全控n×n棋盘··· 494

20.6.2  全控n×m棋盘··· 499

20.7  矩形优化剪切··· 502

附录A  程序设计雅趣轮塔··· 507

附录B  在VC 6.0环境下运行C程序
        方法简介··· 508

附录C  语言常用语法提要··· 514

附录D  C常用库函数··· 517

参考文献··· 521


 

目  录

前言

前沿

前  言

 

 

兴趣是最好的老师,它可激发人的创造热情、好奇心和求知欲。

—爱因斯坦

 

  面对信息技术迅猛发展的潮流,对于各大专院校在校学生与广大青少年来说,熟练掌握计算机程序设计、自觉应用程序设计解决各类实际问题、全面提高程序设计素养,已经成为一项必须具备的基本技能。

  当前,各大专院校理工科专业一般学习C(C )语言程序设计,配合程序设计教学的参考书虽然为数不少,却多枯燥乏味、千篇一律,真正生动、有趣、实用的学习资料却是凤毛麟角。为此,笔者新推《至美—C程序设计》,以推动广大在校本专科学生深入学好程序设计,促进程序设计水平与应用技能的快速提高。

  学习计算机语言的目的是什么?当然是程序设计!那么,程序设计的目的又是什么?毫无疑义,程序设计的目的是解决实际问题,求解靠人工计算或推理难以解决的各类实际应用问题。而应用程序设计求解各类实际问题恰恰是现有众多程序设计教材所忽视与缺失的,这也是直接造成广大在校学生学习程序设计感到枯燥乏味的主要原因。

  爱因斯坦曾经说过:“兴趣是最好的老师,它可激发人的创造热情、好奇心和求知欲。”培养与提高学生学习程序设计的兴趣,激发他们应用程序设计解决实际问题的热情,不是一两句空洞说教所能奏效的,需要通过有启发性的生动有趣的实际案例来引导。为此,本书以各类中外趣题的程序设计求解为主线,从案例提出到算法要点,从程序设计到运行示例,环环相扣、融为一体,学生看得见、摸得着、学得会、用得上,容易收到立杆见影、举一反三的效果。

  本书力求突出以下四个特色:

1)注重精选问题生动有趣。

  程序设计案例取材注重趣味性与典型性。所精选的案例不仅仅局限于数,更多地涉及数对、数式、数列、数阵(方阵、矩阵)、数表、游戏以至图形与动画等诸多方面,内容包括各类整数搜索、数据处理、智能游戏、模拟探索、数表创建、图形展示,既有引导入门的基础题,也有难度较大的综合题;既有名扬中外的经典名题,也有尝试创新的新颖趣题,类型广泛、内容丰富、难度适宜、深入浅出。

  书中部分选题取自国际国内历届信息学(计算机)奥林匹克与各类程序设计竞赛,同时参考了网上读者集中探讨的程序设计热点问题,有利于高校学生与程序设计爱好者在计算机实例求解上开阔视野,在程序设计思路开拓与技巧应用上有一个深层次的练习与提高。部分难度较大、要求较高的综合案例可供在校学生进行相关课程设计选用。

2)注重突出算法核心地位。

  算法是程序的灵魂,没有算法就不可能进行程序设计。本书注重突出算法在程序设计中的核心地位。

  非计算机专业的学生没有专门学习过“算法设计与分析”课程,要求基本掌握枚举(穷举)与递推(迭代)即可解决本书中所列的大多数趣味程序设计问题。

  求解一些难度较大的深层次案例,例如本书中的“最优路径”“马步遍历”等,简单枚举无济于事,必须掌握与应用递归、回溯与动态规划等常用算法。

  在每一案例的“设计要点”中,重点阐述所用的算法设计与实施规范。同时,对有些趣题应用了不同的算法设计求解,以适应不同基础的读者学习,以便读者比较其中的差异与优劣。

  此外,如果有兴趣进行“高精度计算”,则掌握“竖式乘除模拟”(见第12章)是必要的,也是可行的;如果有意“构建图形”(见第20章),则必须了解相关图形设计语句。

3)注重设计技能灵活应用。

  注重程序结构的设置与各类参数的选择,注重诸如分解、整合、比较、转换、求精等设计技能的灵活应用,可以分散设计难点,提高程序效率。

  本书采用功能丰富、应用面广、高校学生使用率最高的C语言编写程序,并在方便快捷的VC 6.0环境下编译通过。

  本书在每一案例设计求解的完整代码中进行详细注释,并在给出程序运行示例的基础上进行必要的说明与分析。这样做的目的在于帮助读者对所求解问题的清晰理解利于读者对程序结构与语句功能的掌握,满足读者对问题答案的期盼、引导读者发掘程序设计的神奇与美。

4)注重程序变通问题引申。

  本书对一些典型案例应用多种不同算法,以不同实现形式与表现风格设计程序,充分体现程序设计的灵活性和多样性。

  程序设计并不是一成不变的,可以实施全方位多层次的改进与变通,变通出成果,变通长能力。程序设计不断改进与优化的过程,既是提高案例求解效率的过程,也是设计能力培养与提高的过程,更是优化意识与创新能力增强的过程。

  同时,对有些案例与设计作适当的引申与拓广,旨在引导读者培养自己提出问题并自觉应用程序设计解决问题的兴趣,引导他们对相关问题或相近案例作类比的设计探索。

  作为C程序设计的资料集,本书把相关或相近的案例整合为一章,每一章围绕一个中心主题,各节又具有相对独立性。

  在书稿的编写过程中,湖南理工学院计算机学院院长王岳斌教授、周持中教授、严权峰副教授与郭华、范波等老师以及刘志辉硕士提出了很好的修改意见,笔者一并在此深表感谢。

  尽管每一案例设计求解都经过反复检查,每一个程序都经过多次运行调试,但因涉及内容较广,难免存在差错,恳请读者指正。

 

 

杨克昌

2015年10月于岳阳南湖

 

 

 


至美——C程序设计 pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:至美——C程序设计