图书介绍

C语言程序设计进阶教程PDF|Epub|txt|kindle电子书版本网盘下载

C语言程序设计进阶教程
  • (美)陆永祥(Yung-Hsiang Lu)著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111568407
  • 出版时间:2017
  • 标注页数:390页
  • 文件大小:48MB
  • 文件页数:405页
  • 主题词:C语言-程序设计-高等学校-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

C语言程序设计进阶教程PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第一部分 计算机存储:内存和文件2

第1章 程序的执行2

1.1编译2

1.2重定向输出6

第2章 栈内存7

2.1值和地址7

2.2栈8

2.3调用栈9

2.3.1返回位置9

2.3.2函数实参12

2.3.3局部变量14

2.3.4值地址15

2.3.5数组16

2.3.6获取地址17

2.4可见度17

2.5习题20

2.5.1绘制调用栈Ⅰ20

2.5.2绘制调用栈Ⅱ20

2.5.3地址21

2.6习题解答21

2.6.1绘制调用栈Ⅰ21

2.6.2绘制调用栈Ⅱ22

2.6.3地址22

2.7在DDD(命令行调试程序)上检测调用栈22

第3章 预防、检测及消除bug26

3.1开发软件≠编码26

3.1.1编程前26

3.1.2编程中27

3.1.3编程后28

3.2常见错误28

3.2.1未初始化变量28

3.2.2错误数组下标28

3.2.3错误数据类型28

3.3后执行式和交互式调试28

3.4生产代码与测试代码分离29

第4章 指针30

4.1作用域30

4.2 swap函数31

4.3指针33

4.4再论swap函数37

4.5类型错误39

4.6数组和指针40

4.7类型规则43

4.8指针运算44

4.9习题47

4.9.1 swap函数147

4.9.2 swap函数248

4.9.3 swap函数348

4.9.4 swap函数448

4.9.5 swap函数549

4.9.6 15552种变化49

4.10习题解答50

4.10.1 swap函数150

4.10.2 swap函数250

4.10.3 swap函数351

4.10.4 swap函数451

4.10.5 swap函数551

第5章 编写和测试程序52

5.1不同的数组元素52

5.1.1 main函数52

5.1.2 areDistinct函数53

5.1.3编译和链接54

5.1.4 make工具55

5.2使用Makefile测试57

5.2.1生成测试用例58

5.2.2重定向输出58

5.2.3使用diff去比较输出58

5.2.4添加测试到Makefile59

5.3无效的内存访问60

5.4使用valgrind检查内存访问错误62

5.5测试覆盖64

5.6限制内核大小67

5.7带有死循环的程序67

第6章 字符串69

6.1字符数组69

6.2 C语言中的字符串函数72

6.2.1复制函数:strcpy72

6.2.2比较函数:strcmp73

6.2.3寻找子字符串函数:strstr73

6.2.4寻找字符函数:strchr74

6.3理解argv74

6.4对子字符串计数77

第7章 编程问题和调试80

7.1实现字符串函数80

7.1.1 C语言库80

7.1.2头文件80

7.1.3 mystring.h82

7.1.4创建输入和正确输出82

7.1.5 Makefile86

7.1.6 mystring.c86

7.1.7使用const88

7.2调试89

7.2.1找到死循环90

7.2.2找到无效内存访问91

7.2.3检测无效内存访问92

第8章 堆内存94

8.1用malloc函数创建数组94

8.2栈和堆96

8.3返回堆地址的函数98

8.4 C语言中的二维数组99

8.5指针和参数101

第9章 使用堆内存的编程问题104

9.1对数组排序104

9.1.1生成测试输入和期望输出104

9.1.2重定向输入105

9.1.3整数排序107

9.1.4使用valgrind检测内存泄漏110

9.2使用qsort进行排序111

9.2.1 qsort111

9.2.2比较函数112

9.2.3执行范例114

9.2.4对字符串排序115

第10章 读写文件118

10.1通过argv传递一个文件名118

10.2读取文件119

10.2.1读取字符型:fgetc119

10.2.2读取整型:fscanf(...1389896...)121

10.3写入文件123

10.4读写字符串125

第11章 编程解决使用文件的问题128

11.1对文件中的整数进行排序128

11.2计算字符出现的次数130

11.3计算单词出现的次数132

11.4如何注释程序134

第二部分 递归138

第12章 递归138

12.1在限制条件下选取小球138

12.1.1双色球问题138

12.1.2三色球问题139

12.1.3附加限制条件140

12.2单行道142

12.3汉诺塔143

12.4计算整数分拆145

12.4.1计算“1”的个数147

12.4.2仅使用奇数进行分拆148

12.4.3使用递增数进行分拆148

12.4.4交替使用奇偶数进行分拆149

12.4.5整数分拆问题的推广151

12.4.6解决分拆问题的错误方法151

第13章 递归函数152

13.1在限制条件下选取小球152

13.2单行道155

13.3汉诺塔156

13.4整数分拆158

13.5阶乘159

13.6斐波那契数列161

13.7利用gprof进行性能分析165

第14章 整数分拆167

14.1堆内存和栈内存168

14.2追踪递归函数调用176

14.3约束条件下的分拆178

14.3.1仅使用奇数进行分拆179

14.3.2使用递增数进行分拆179

14.3.3交替使用奇偶数进行分拆180

14.3.4使用gprof和gcov查找性能瓶颈180

第15章 使用递归解决问题187

15.1二分搜索187

15.2快速排序189

15.3排列组合195

15.4栈排序198

15.4.1例子1199

15.4.2例子2199

15.4.3例子3199

15.4.4例子4199

15.4.5可排序栈200

15.5追踪递归函数203

15.6一个存在错误的递归函数205

第三部分 结构208

第16章 程序员可定义数据类型208

16.1结构体和对象208

16.2作为实参传递对象212

16.3对象和指针214

16.3.1返回一个对象216

16.3.2对象和malloc216

16.4构造函数和析构函数218

16.5结构中的结构224

16.6二进制文件和对象226

第17章 使用结构的编程问题230

17.1个人信息库排序230

17.2压缩十进制数位235

17.2.1数制235

17.2.2用1字节表达2个十进制数位236

17.2.3位运算236

17.2.4压缩和恢复十进制239

17.2.5十进制压缩编程239

17.3二进制文件和指针243

第18章 链表245

18.1可扩展类型245

18.2链表246

18.3链表的插入246

18.4链表的查找248

18.5从链表中删除249

18.6打印链表252

18.7链表的销毁253

第19章 使用链表的编程问题256

19.1队列256

19.2数字排序256

19.3稀疏数组257

19.4单链表反转262

第20章 二叉搜索树264

20.1二叉搜索树265

20.2二叉搜索树的插入266

20.3二叉搜索树的搜索269

20.4二叉搜索树的遍历269

20.5二叉搜索树的删除272

20.6二叉搜索树的销毁274

20.7主函数main274

20.8链接器Makefike275

20.9不同的二叉树结构275

第21章 线程并行编程278

21.1并行编程278

21.2多任务处理278

21.3 POSIX线程279

21.4子集和280

21.4.1生成测试实例281

21.4.2字典顺序处理283

21.4.3多线程处理287

21.5多线程处理过程的交叉运行289

21.6线程同步293

21.7阿姆达尔定律295

第四部分 应用298

第22章 寻找迷宫出口298

22.1迷宫的文件格式298

22.2读取迷宫文件299

22.3迷宫结构体303

22.4逃跑策略306

22.5策略的实现308

22.5.1 canMove函数308

22.5.2 getout函数309

22.5.3打印访问过的位置313

第23章 图像处理316

23.1图像结构体316

23.2图像处理321

23.2.1图像像素和颜色321

23.2.2处理函数322

23.2.3应用一个颜色滤波器322

23.2.4图像颜色反转324

23.2.5边缘检测324

23.2.6颜色均衡326

第24章 霍夫曼压缩329

24.1例程329

24.2编码330

24.2.1计算频率330

24.2.2按频率排序332

24.2.3构建编码树334

24.2.4创建编码本342

24.2.5压缩文件346

24.2.6位压缩349

24.3解码353

附录A Linux370

附录B版本控制373

附录C集成开发环境376

索引385

热门推荐