图书介绍

计算机科学丛书 C语言程序设计与问题求解 原书第7版2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

计算机科学丛书 C语言程序设计与问题求解 原书第7版
  • (美)杰瑞R.汉丽,埃利奥特B.考夫曼著;赵涓涓,蔡星娟,纪国华等译 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111563846
  • 出版时间:2017
  • 标注页数:522页
  • 文件大小:68MB
  • 文件页数:541页
  • 主题词:C语言-程序设计

PDF下载


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

下载说明

计算机科学丛书 C语言程序设计与问题求解 原书第7版PDF格式电子书版下载

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

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

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

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

图书目录

第0章 职业成长道路之计算机科学1

0.1 为什么计算机科学可能是适合你的领域1

0.1.1 主修计算机的原因1

0.1.2 计算机科学家的特征2

0.2 大学经验:计算机学科和专业选择3

0.2.1 计算机科学4

0.2.2 计算机工程4

0.2.3 信息系统4

0.2.4 信息技术5

0.2.5 软件工程5

0.2.6 混合学科专业6

0.3 就业机会6

0.3.1 美国和世界的需求7

0.3.2 对弱势群体的需求7

0.3.3 新职业初见端倪8

第1章 计算机和程序设计概述9

1.1 电子计算机的发展史9

1.2 计算机硬件11

1.2.1 存储器12

1.2.2 中央处理单元14

1.2.3 输入/输出设备15

1.2.4 计算机网络15

1.3 计算机软件17

1.3.1 操作系统17

1.3.2 应用软件18

1.3.3 计算机语言19

1.3.4 程序执行22

1.4 软件开发方法23

1.4.1 软件开发过程23

1.4.2 注意:失败是软件开发过程的一部分24

1.5 软件开发方法的应用25

1.6 程序员的职业道德27

1.6.1 数据隐私和滥用27

1.6.2 计算机黑客27

1.6.3 剽窃和软件盗版28

1.6.4 计算机资源的滥用28

本章内容回顾29

快速练习29

复习题30

第2章 C语言概述31

2.1 C语言元素31

2.1.1 预处理指令31

2.1.2 预处理指令的语法33

2.1.3 主函数33

2.1.4 保留字34

2.1.5 标准标识符34

2.1.6 用户自定义标识符34

2.1.7 大写字母和小写字母35

2.1.8 程序风格——选择标识符名称35

2.2 变量声明和数据类型36

2.2.1 变量声明36

2.2.2 数据类型37

2.2.3 数值类型间的差异38

2.2.4 char数据类型39

2.2.5 ASCII码39

2.3 可执行语句41

2.3.1 存储器中的程序41

2.3.2 赋值语句41

2.3.3 给一个字符型变量赋值42

2.3.4 输入/输出操作和函数43

2.3.5 printf函数43

2.3.6 scanf函数45

2.3.7 return语句47

2.4 C程序的一般形式48

2.4.1 程序风格——程序中的空格48

2.4.2 程序中的注释48

2.4.3 程序风格——使用注释49

2.5 算术表达式50

2.5.1 运算符/和%50

2.5.2 表达式的数据类型51

2.5.3 混合型赋值语句52

2.5.4 强制类型转换52

2.5.5 整型字符53

2.5.6 多元运算符表达式53

2.5.7 C语言中数学公式的表达55

2.5.8 数值不精确56

2.6 程序输出中的格式化数字61

2.6.1 int类型的格式化值61

2.6.2 double类型的格式化值62

2.6.3 程序风格——消除首位空格62

2.7 交互模式、批处理模式和数据文件63

2.7.1 输入重定向63

2.7.2 程序风格——回显输出与提示63

2.7.3 输出重定向64

2.8 常见编程错误65

2.8.1 语法错误65

2.8.2 运行时错误67

2.8.3 未被发现的错误67

2.8.4 逻辑错误69

本章内容回顾69

快速练习70

复习题71

编程项目72

第3章 自顶向下的程序设计与函数74

3.1 使用现有信息构建项目74

3.2 库函数81

3.2.1 预定义函数和代码重用81

3.2.2 使用颜色突出显示新的结构82

3.2.3 C语言库函数83

3.2.4 知识扩展84

3.3 自顶向下的设计和结构图85

3.4 没有参数的函数86

3.4.1 函数原型87

3.4.2 函数定义88

3.4.3 程序中函数的位置89

3.4.4 程序风格——为程序中的函数添加注释91

3.4.5 子函数与主函数的执行顺序91

3.4.6 函数子程序的优点91

3.4.7 显示用户说明92

3.5 含输入参数的函数93

3.5.1 含输入参数的void类型的函数94

3.5.2 含输入参数与单一返回值的函数95

3.5.3 程序风格——函数接口注释97

3.5.4 带有多个参数的函数97

3.5.5 对应参数列表99

3.5.6 函数数据区99

3.5.7 使用驱动程序测试函数100

3.6 计算机图形学介绍(可选)100

3.6.1 窗口的组成100

3.6.2 常见的图形功能101

3.6.3 程序风格——驼峰规则102

3.6.4 背景色和前景色102

3.6.5 绘制矩形103

3.6.6 绘制圆、椭圆和弧线104

3.6.7 程序风格——编写常见的图形程序106

3.6.8 程序缺陷——不正确的函数调用顺序108

3.6.9 扇形区域和实心椭圆109

3.6.10 将文本信息添加到图形中110

3.7 常见编程错误112

本章内容回顾112

快速练习113

复习题114

编程项目114

图形项目117

第4章 选择结构:if语句和switch语句118

4.1 控制结构118

4.2 条件表达式119

4.2.1 关系运算符和等式运算符119

4.2.2 逻辑运算符120

4.2.3 运算符优先级121

4.2.4 短路求值122

4.2.5 用C语言实现对自然语言条件的编写123

4.2.6 字符比较123

4.2.7 逻辑赋值124

4.2.8 补集125

4.3 if语句126

4.3.1 if双重选择语句127

4.3.2 if单选择语句128

4.3.3 if单选择语句与if双重选择语句的比较128

4.3.4 程序风格——if语句的格式129

4.4 含有复合语句的if语句130

4.4.1 程序风格——使用复合语句编写if语句131

4.4.2 if语句的调试131

4.5 算法的决策过程133

4.5.1 程序风格——函数名的一致性139

4.5.2 程序风格——内聚函数139

4.5.3 程序风格——使用常量宏定义来提高可读性和易维护性139

4.6 更多待解决的问题140

4.6.1 结构图中的数据流信息140

4.6.2 函数子程序的修改140

4.7 if嵌套语句和多重选择决策142

4.7.1 if嵌套和if序列的比较142

4.7.2 if嵌套语句的多重选择决策形式143

4.7.3 多重选择决策条件的顺序144

4.7.4 程序风格——验证变量的值146

4.7.5 含有多个变量的if嵌套语句146

4.8 switch语句149

4.9 常见编程错误153

本章内容回顾154

快速练习156

复习题157

编程项目158

第5章 重复和循环语句162

5.1 重复162

5.2 计数循环和while语句163

5.3 使用循环计算累加和与乘积166

5.3.1 程序风格——编写通用的循环168

5.3.2 数字列表乘积运算168

5.3.3 复合赋值运算符169

5.4 for语句170

5.4.1 程序风格——for语句的格式171

5.4.2 自增和自减运算符172

5.4.3 除1以外的增加量和减少量173

5.4.4 显示数值表175

5.5 条件循环176

5.6 循环设计180

5.6.1 标记控制循环181

5.6.2 for语句实现标记循环182

5.6.3 文件结束控制循环183

5.6.4 错误数据上的无限循环183

5.7 嵌套循环185

5.8 do-while语句与标志控制循环188

5.9 迭代近似191

5.10 如何调试和测试程序198

5.10.1 使用调试程序198

5.10.2 不使用调试器调试198

5.10.3 循环差一错误199

5.10.4 测试200

5.11 循环在图形程序中的应用(可选)200

5.12 常见编程错误205

本章内容回顾207

快速练习208

复习题210

编程项目211

图形项目216

第6章 指针和模块化编程217

6.1 指针和间接寻址运算符217

6.1.1 间接引用218

6.1.2 指向文件的指针218

6.2 含有输出参数的函数220

6.3 对包含输入/输出参数的函数的多重调用226

6.4 名字作用域230

6.5 形式输出参数作为实参231

6.6 问题解决说明234

6.7 程序系统的调试和测试246

6.8 常见编程错误248

本章内容回顾248

快速练习249

复习题251

编程项目252

第7章 数组259

7.1 数组的声明和引用259

7.1.1 数组的初始化260

7.1.2 在字符数组中存储字符串261

7.2 数组下标261

7.3 使用for循环语句进行顺序访问263

7.3.1 使用数组进行统计计算263

7.3.2 程序风格——使用循环控制变量作为数组下标266

7.4 使用数组元素作为函数参数266

7.5 数组参数267

7.5.1 形式数组参数268

7.5.2 与数组参数有关的参数268

7.5.3 数组作为输入参数269

7.5.4 返回数组的结果271

7.5.5 部分填充数组272

7.5.6 栈274

7.6 数组的查找与排序276

7.6.1 数组查找276

7.6.2 数组排序278

7.7 并行数组和枚举类型280

7.7.1 枚举类型280

7.7.2 带有枚举类型下标的数组284

7.8 多维数组285

7.8.1 多维数组的初始化287

7.8.2 具有多个维度的数组287

7.9 数组处理说明289

7.10 数组表示图形程序(可选)295

7.10.1 绘制多边形295

7.10.2 程序风格——使用字符数组存储提示信息297

7.10.3 生成随机数297

7.10.4 为随机数生成器设置随机数种子297

7.10.5 绘制网格298

7.11 常见编程错误302

本章内容回顾303

快速练习304

复习题305

编程项目306

第8章 字符串312

8.1 字符串基础知识312

8.1.1 声明和初始化字符串变量313

8.1.2 字符串数组313

8.1.3 scan和printf的输入/输出313

8.2 字符串库函数:赋值和子字符串316

8.2.1 字符串赋值318

8.2.2 子串318

8.3 长字符串:串连和整行输入323

8.3.1 串连323

8.3.2 字符和字符串的区别324

8.3.3 整行输入324

8.4 字符串的比较326

8.5 指针数组328

8.6 字符操作332

8.6.1 字符输入/输出332

8.6.2 字符的分析与转换334

8.7 字符串和数值之间的相互转换336

8.8 字符串处理说明340

8.9 常见编程错误346

本章内容回顾348

快速练习349

复习题351

编程项目352

第9章 递归355

9.1 递归的性质355

9.2 跟踪递归函数359

9.2.1 跟踪一个有返回值的递归函数359

9.2.2 跟踪递归函数void360

9.2.3 参数和局部变量堆栈361

9.2.4 在C语言中实现参数栈363

9.2.5 跟踪循环函数的时机和方法363

9.3 递归的数学函数364

9.4 带有数组和字符串参数的递归函数368

9.5 递归问题的解决373

9.6 递归的经典案例研究:汉诺塔379

9.7 常见编程错误383

本章内容回顾384

快速练习384

复习题385

编程项目386

第10章 结构体与联合体类型388

10.1 用户定义的结构体类型388

10.1.1 结构体类型定义388

10.1.2 操作结构体数据对象的单个组件390

10.1.3 运算符优先级回顾391

10.1.4 操作整个结构体391

10.1.5 程序风格——类型命名约定391

10.2 作为输入和输出参数的结构体类型数据392

10.3 结果值是结构体的函数396

10.4 结构体类型的问题解决398

10.5 平行数组和结构体数组404

10.5.1 平行数组404

10.5.2 声明一个结构体数组404

10.6 联合体类型(可选)412

10.7 常见编程错误416

本章内容回顾416

快速练习417

复习题419

编程项目420

第11章 文本和二进制文件的处理424

11.1 输入/输出文件:回顾和进一步研究424

11.1.1 键盘和屏幕作为文本流424

11.1.2 换行符和EOF425

11.1.3 转义字符425

11.1.4 printf的格式化输出425

11.1.5 文件指针变量427

11.1.6 获取文件指针参数的函数428

11.1.7 关闭文件428

11.2 二进制文件431

11.3 数据库查询435

11.4 常见编程错误442

本章内容回顾442

快速练习443

复习题444

编程项目445

第12章 大规模编程447

12.1 使用抽象来管理复杂度447

12.1.1 过程抽象447

12.1.2 数据抽象448

12.1.3 信息隐藏448

12.1.4 可重用代码449

12.2 个人库:头文件449

12.2.1 头文件449

12.2.2 设计头文件的注意事项452

12.3 个人库:实现文件452

12.4 存储类455

12.4.1 全局变量455

12.4.2 存储类static和regi ster457

12.5 在库中修改函数458

12.6 条件编译460

12.7 主函数的参数463

12.8 定义宏参数465

12.8.1 在宏体中使用括号466

12.8.2 将宏扩展到两行或多行467

12.9 常见编程错误468

本章内容回顾468

快速练习470

复习题471

编程项目471

第13章 动态数据结构474

13.1 指针474

13.1.1 作为函数参数的指针475

13.1.2 表示数组和字符串的指针475

13.1.3 指向结构体的指针476

13.1.4 总结指针的使用476

13.2 动态存储分配477

13.2.1 访问动态分配结构体的组件478

13.2.2 用calloc分配动态数组479

13.2.3 返回堆的单元格480

13.3 链表480

13.3.1 带有指针组件的结构体481

13.3.2 连接结点482

13.3.3 链表的优点483

13.4 链表运算符484

13.4.1 遍历列表484

13.4.2 获取输入列表486

13.4.3 搜索目标链表487

13.4.4 避免跟随空指针488

13.5 用链表表示栈488

13.6 用链表表示队列491

13.7 有序表496

13.8 二叉树504

13.8.1 二叉搜索树505

13.8.2 搜索二叉搜索树505

13.8.3 创建二叉搜索树506

13.8.4 显示二叉搜索树509

13.9 常见编程错误511

本章内容回顾511

快速练习512

复习题513

编程项目514

术语表517

热门推荐