《C语言实用之道》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:(美)Giulio Zambon著;潘爱民译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2018
  • ISBN:9787302499046
  • 页数:510 页
图书介绍:本书展示了如何使用可重用函数实现常用算法,除了能立即使用的模块外,读者还能学到其他书籍里无法实现的编程任务。如何避免会引起难以解决问题的陷阱,如何处理搜索和排序,如何使用递归,如果使用数值计算计算整数,如何实现统计分析,如何使用字符串,如何构建游戏应用等。

第1章 引言 1

1.1 编码风格 1

1.1.1 缩进 2

1.1.2 命名和其他规范 4

1.1.3 goto的使用 5

1.2 如何阅读本书 7

第2章 微妙之C 9

2.1 变量的作用域和生命周期 9

2.1.1 局部变量 9

2.1.2 全局变量 13

2.1.3 函数 14

2.2 按值调用 15

2.3 预处理器宏 18

2.4 布尔值 19

2.5 结构打包 22

2.6 字符和区域 24

2.7 普通字符和宽字符 27

2.8 处理数值 32

2.8.1 整数 32

2.8.2 浮点数 34

2.9 本章小结 54

第3章 迭代、递归和二叉树 55

3.1 迭代 55

3.2 递归 57

3.3 二叉树 59

3.3.1 图形化显示一棵树 65

3.3.2 生成一棵随机树 83

3.3.3 遍历一棵树 88

3.3.4 更多关于二叉树的内容 93

3.4 本章小结 95

第4章 列表、栈和队列 97

4.1 列表 98

4.2 栈 99

4.2.1 基于数组的栈 99

4.2.2 基于链表的栈 109

4.3 队列 113

4.3.1 基于数组的队列 114

4.3.2 基于数组的队列的更多内容 120

4.3.3 基于链表的队列 126

4.4 本章小结 130

第5章 异常处理 133

5.1 长跳转 134

5.2 THROW 135

5.3 TRY和CATCH 136

5.4 多个CATCH 144

5.5 多个TRY 145

5.6 异常用法样例 149

5.7 本章小结 152

第6章 字符串辅助功能 153

6.1 字符串的分配和释放 154

6.1.1 str_new() 155

6.1.2 str_release() 159

6.1.3 str_release_all() 161

6.1.4 str_list() 162

6.1.5 一些例子 163

6.1.6 多个栈 166

6.2 字符串格式化 169

6.3 字符串信息 171

6.4 字符串更新 173

6.4.1 字符串拷贝 173

6.4.2 字符串转换 176

6.4.3 字符串整理 177

6.4.4 字符串移除 179

6.5 搜索 181

6.5.1 找到一个字符 181

6.5.2 找到一个子串 186

6.6 替换 189

6.6.1 替换一个字符 189

6.6.2 替换一个子串 191

6.7 提取一个子串 193

6.8 拼接字符串 196

6.9 更多功能 200

6.10 本章小结 201

第7章 动态数组 205

7.1 数组的分配与释放 205

7.1.1 分配一个数组 206

7.1.2 释放一个数组 208

7.1.3 多个栈 212

7.2 改变一个数组的大小 215

7.3 数组的拷贝和复制 219

7.4 选择数组元素 222

7.5 本章小结 225

第8章 搜索 227

8.1 比较 227

8.1.1 C语言的标准比较函数 227

8.1.2 比较结构 230

8.1.3 比较数组 232

8.1.4 模糊化 232

8.2 搜索 238

8.2.1 未排序的整数数组 238

8.2.2 未排序的指针数组 246

8.2.3 排序的数组 251

8.2.4 链表与二叉搜索树 257

8.3 本章小结 277

第9章 排序 279

9.1 插入排序 279

9.2 希尔排序 280

9.3 冒泡排序 285

9.4 Quicksort(快排) 286

9.5 整数数组 296

9.6 标准C函数 298

9.7 本章小结 301

第10章 数值积分 303

10.1 从单变量函数开始 303

10.2 梯形规则 306

10.3 Simpson规则 310

10.4 Newton-Cotes公式 313

10.5 决定何时停止 317

10.6 奇点 321

10.7 蒙特卡洛 324

10.8 3D积分 329

10.8.1 积分域 330

10.8.2 从2D的梯形到3D的棱柱 331

10.8.3 改进棱柱规则 336

10.8.4 将矩形规则转换成3D 340

10.9 多重积分的最后一些考虑 342

10.10 本章小结 343

第11章 嵌入式软件 345

11.1 位操作 346

11.2 端 349

11.3 嵌入式环境 351

11.3.1 裸主板 351

11.3.2 实时OS(RTOS) 352

11.3.3 高级OS 353

11.4 信号和中断 353

11.5 并发性 365

11.6 本章小结 371

第12章 数据库 373

12.1 MySQL 374

12.1.1 使用CLI创建和填充一个数据库 374

12.1.2 MySQL Workbench 380

12.1.3 在C程序中使用MySQL 382

12.2 SQLite 395

12.2.1 在CLI中使用SQLite 398

12.2.2 在C程序中使用SQLite 399

12.2.3 使用动态字符串和数组 404

12.3 本章小结 408

第13章 使用Mongoose开发Web服务器 409

13.1 Web页面和协议 409

13.2 动态Web页面 413

13.3 最简单的支持Web服务器的应用程序 413

13.3.1 事件处理器函数 415

13.3.2 主程序 416

13.4 支持Web服务器的应用程序 416

13.4.1 静态变量 419

13.4.2 main() 420

13.4.3 e_handler()、get_x()和send_response() 420

13.4.4 index.html 423

13.5 定制Mongoose 428

13.6 本章小结 431

第14章 游戏应用:MathSearch 433

14.1 MathSearch规范和设计 434

14.1.1 MathSearch规范 434

14.1.2 MathSearch设计 435

14.2 实现MathSearch 437

14.3 模块:count 456

14.4 模块:display 457

14.5 模块:save_html 464

14.6 模块:save_images 470

14.7 本章小结 475

附录A缩写词 477

附录B SQL介绍 483