当前位置:首页 > 工业技术
C语言详解 第5版
C语言详解 第5版

C语言详解 第5版PDF电子书下载

工业技术

  • 电子书积分:16 积分如何计算积分?
  • 作 者:(美)汉利(Hanly,J.R.),(美)科夫曼(Koffman,E.B.)著;万波等译(西安电子科技大学)
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2007
  • ISBN:7115164274
  • 页数:539 页
图书介绍:本书是讲解C语言的理想教材,书中不但教授ANSI C,而且讲授程序开发的合理方法。书中广泛覆盖了C语言的基本结构,并且注重问题解决,强调编程实践。书中涵盖运算符、函数、控制结构、数组、字符串、递归、结构体和共用体、文本文件、二进制文件、动态数据结构、进程与线程、C++等内容,附录中还给出ANSI C结构的参照表、字符集表、ANSI C的标准库函数表(按字母排序)、C运算符的优先级和结合性表以及所有的C保留字。此外,本书有明显的教学特征,书中配有丰富的习题(自测题、复习题、程序设计题等)和示例,并为部分习题提供了对应的答案,而且每一章都包含了一个或多个有实际意义的实例研究,这些实例研究都遵循软件开发方法来解决。
《C语言详解 第5版》目录

第1章 计算机与程序设计概述 1

1.1 电子计算机的过去和现在 1

1.2 计算机硬件 2

1.2.1 存储器 3

1.2.2 中央处理器 6

1.2.3 输入/输出设备 6

1.2.4 计算机网络 7

1.3 计算机软件 9

1.3.1 操作系统 9

1.3.2 应用软件 10

1.3.3 计算机语言 10

1.3.4 执行程序 13

1.4 软件开发方法 14

1.4.1 软件开发方法 14

1.4.2 注意:失败是编程过程的一部分 16

1.5 应用软件开发方法 16

实例研究:英里到公里的转换 16

复习 18

快速测试 19

快速测试答案 19

复习题 19

第2章 C概述 20

2.1 C语言要素 20

2.1.1 预处理指令 20

2.1.2 预处理指令的语法展示 21

2.1.3 main函数 22

2.1.4 保留字 22

2.1.5 标准标识符 23

2.1.6 用户定义的标识符 23

2.1.7 大写和小写字母 24

2.1.8 程序风格:选择标识符名称 24

2.2 变量声明和数据类型 24

2.2.1 变量声明 24

2.2.2 数据类型 25

2.3 可执行语句 27

2.3.1 内存中的程序 27

2.3.2 赋值语句 27

2.3.3 输入/输出操作和函数 28

2.3.4 printf函数 29

2.3.5 scanf函数 31

2.3.6 return语句 32

2.4 C程序的一般形式 33

2.4.1 程序风格:程序中的空格 33

2.4.2 程序的注释 34

2.4.3 程序风格:使用注释 34

2.5 算术表达式 35

2.5.1 运算符/和% 36

2.5.2 表达式的数据类型 37

2.5.3 混合类型赋值语句 37

2.5.4 强制类型转换 38

2.5.5 具有多个运算符的表达式 38

2.5.6 用C语言编写数学公式 40

实例研究:对收集的硬币求值 41

2.6 在程序输出中格式化数值 44

2.6.1 格式化int型值 44

2.6.2 格式化double型值 45

2.6.3 程序风格:消除前导空白 46

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

2.7.1 输入重定向 46

2.7.2 程序风格:回显与提示符 47

2.7.3 输出重定向 47

2.7.4 程序控制的输入和输出文件 48

2.8 常见编程错误 49

2.8.1 语法错误 49

2.8.2 运行时错误 51

2.8.3 未检测到的错误 51

2.8.4 逻辑错误 53

复习 53

快速测试 54

快速测试答案 55

复习题 55

程序设计项目 56

第3章 函数的自顶向下设计 58

3.1 利用已有信息编程 58

实例研究:求圆的面积和周长 59

实例研究:计算一批平垫圈的重量 61

3.2 库函数 64

3.2.1 预定义函数和代码复用 64

3.2.2 使用灰色区分新结构 65

3.2.3 C库函数 65

3.2.4 本节目标 67

3.3 自顶向下设计和结构图 68

实例研究:画简单的图 68

3.4 无参函数 69

3.4.1 函数原型 70

3.4.2 函数定义 70

3.4.3 程序中函数的位置 72

3.4.4 程序风格:在含有函数的程序中使用注释 73

3.4.5 子函数和主函数的执行顺序 73

3.4.6 使用子函数的优点 74

3.4.7 显示用户指令 74

3.5 带输入参数的函数 75

3.5.1 带输入参数的void函数 76

3.5.2 带输入参数和单一结果的函数 77

3.5.3 程序风格:函数接口注释 79

3.5.4 带多个参数的函数 79

3.5.5 参数表一致性 80

3.5.6 函数数据域 81

3.5.7 使用驱动测试函数 81

3.6 常见编程错误 82

复习 82

快速测试 83

快速测试答案 84

复习题 84

程序设计项目 84

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

4.1 控制结构 88

4.2 条件 88

4.2.1 关系运算符和判等运算符 89

4.2.2 逻辑运算符 89

4.2.3 运算符优先级 90

4.2.4 短路求值法 92

4.2.5 用C语言表示条件 92

4.2.6 比较字符 93

4.2.7 逻辑赋值 93

4.2.8 条件取反 94

4.2.9 德摩根定理 95

4.3 if语句 96

4.3.1 有两个选项的if语句 96

4.3.2 只有一个选项的if语句 96

4.3.3 比较一个选项的if语句和两个选项的if语句 97

4.3.4 程序风格:if语句格式 98

4.4 具有复合语句的if语句 98

4.4.1 程序风格:编写具有复合语句的if语句 99

4.4.2 跟踪if语句 99

4.5 算法中的决策步骤 101

实例研究:水费问题 101

4.5.1 程序风格:在函数中使用一致的名称 106

4.5.2 程序风格:内聚函数 106

4.5.3 程序风格:使用常量宏来增强可读性和易维护性 107

4.6 解决更多问题 107

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

4.6.2 使用子函数修改程序 108

实例研究:具有节约需求的水费问题 108

4.7 嵌套if语句和多选项决策 109

4.7.1 比较嵌套if和if序列 110

4.7.2 嵌套if的多选项决策形式 110

4.7.3 多选项决策中条件的顺序 111

4.7.4 程序风格:确认变量的值 113

4.7.5 具有多个变量的嵌套if语句 113

4.8 switch语句 116

4.9 常见编程错误 119

复习 120

快速测试 121

快速测试答案 123

复习题 123

程序设计项目 124

第5章 重复和循环语句 128

5.1 程序中的重复 128

5.2 计数循环和while语句 129

5.3 在循环中计算和或者乘积 131

5.3.1 程序风格:编写通用循环 133

5.3.2 计算一列数的乘积 133

5.3.3 复合赋值运算符 134

5.4 for语句 135

5.4.1 程序风格:格式化for语句 136

5.4.2 递增和递减运算符 136

5.4.3 1之外的递增和递减 138

5.4.4 显示值构成的表格 139

5.5 条件循环 140

程序风格:在子函数中执行循环处理 144

5.6 循环设计 144

5.6.1 标记控制循环 145

5.6.2 使用for语句实现标记循环 146

5.6.3 文件结束控制循环 147

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

5.7 嵌套循环 149

5.8 do-while语句和标志控制循环 152

5.9 问题求解示例 154

实例研究:太阳能加热房的采集面积 154

5.10 如何调试并测试程序 159

5.10.1 使用调试器程序 159

5.10.2 不使用调试器进行调试 159

5.10.3 循环次数差1的错误 160

5.10.4 测试 160

5.11 常见编程错误 161

复习 162

快速测试 164

快速测试答案 165

复习题 165

程序设计项目 166

第6章 模块化编程 171

6.1 带简单输出参数的函数 171

6.2 带输入输出参数函数的多次调用 176

程序风格:首选的函数类型 179

6.3 名字的作用域 180

6.4 输出形参作为实参变量 181

6.5 由多个函数构成的程序 184

实例研究:普通分数的算术运算 184

6.6 程序系统的调试与测试 190

6.7 常见编程错误 192

复习 192

快速测试 193

快速测试答案 194

复习题 194

程序设计项目 195

第7章 简单数据类型 201

7.1 数值类型的表示与转换 201

7.1.1 数值类型的差异 201

7.1.2 数值的不精确性 203

7.1.3 数据类型的自动转换 203

7.1.4 数据类型的显式转换 204

7.2 字符类型的表示与转换 205

7.3 枚举类型 206

7.4 迭代近似 211

实例研究:求根的二分方法 212

7.5 常见编程错误 217

复习 217

快速测试 218

快速测试答案 219

复习题 219

程序设计项目 220

第8章 数组 225

8.1 声明和引用数组 225

8.2 数组下标 228

8.3 使用循环顺序存取 229

8.3.1 使用数组进行统计计算 230

8.3.2 程序风格:使用循环控制变量作为数组下标 232

8.4 将数组元素作为函数参数使用 232

8.5 数组参数 234

8.5.1 形参数组 234

8.5.2 和形参数组对应的实参 235

8.5.3 数组作为输入参数 236

8.5.4 返回数组结果 237

8.5.5 部分填充数组 239

8.5.6 栈 240

8.6 数组搜索和排序 243

8.6.1 数组搜索 243

8.6.2 数组排序 244

8.7 多维数组 246

8.7.1 多维数组的初始化 248

8.7.2 多维数组 248

8.8 数组处理示例 249

实例研究:销售数据分析 249

8.9 常见编程错误 255

复习 256

快速测试 257

快速测试答案 257

复习题 258

程序设计项目 258

第9章 字符串 264

9.1 字符串基础 264

9.1.1 声明并初始化字符串变量 264

9.1.2 字符串数组 265

9.1.3 使用printf和scanf进行输入/输出 265

9.2 字符串库函数:赋值和子串 268

9.2.1 字符串赋值 268

9.2.2 子串 270

9.3 较长的字符串:拼接和整行输入 274

9.3.1 拼接 274

9.3.2 字符和字符串的区别 275

9.3.3 输入一个完整的行 275

9.4 字符串比较 277

9.5 指针数组 279

9.6 字符操作 283

9.6.1 字符输入/输出 283

9.6.2 字符分析和转换 284

9.7 字符串到数值和数值到字符串的转换 286

9.8 字符串处理示例 290

实例研究:文本编辑器 291

9.9 常见编程错误 297

复习 298

快速测试 299

快速测试答案 300

复习题 301

程序设计项目 302

第10章 递归 305

10.1 递归的本质 305

10.2 跟踪递归函数 308

10.2.1 带返回值的递归函数的跟踪 308

10.2.2 void类型递归函数的跟踪 309

10.2.3 参数与局部变量栈 311

10.2.4 C中参数栈的实现 312

10.2.5 何时、如何跟踪递归函数 313

10.3 递归数学函数 314

10.4 带数组和字符串参数的递归函数 318

实例研究:找出字符串中的大写字母 318

实例研究:递归选择排序 320

10.5 用递归解决问题 322

实例研究:集合运算 322

10.6 递归的经典实例研究:汉诺塔 327

10.7 常见编程错误 331

复习 332

快速测试 332

快速测试答案 333

复习题 333

程序设计项目 334

第11章 结构体与共用体类型 337

11.1 用户自定义结构体类型 337

11.1.1 结构体类型定义 337

11.1.2 操作结构化数据对象的单个成员 339

11.1.3 运算符优先级回顾 339

11.1.4 操作结构体整体 340

11.1.5 程序风格:类型命名约定 340

11.2 结构体类型数据作为输入/输出参数 341

11.3 返回值为结构体类型的函数 345

11.4 用结构体类型解决问题 347

实例研究:用于复数的用户自定义类型 347

11.5 并行数组和结构体的数组 352

11.5.1 并行数组 352

11.5.2 结构体数组的声明 352

实例研究:通用计量转换 353

11.6 共用体类型(可选) 359

11.7 常见编程错误 363

复习 364

快速测试 365

快速测试答案 365

复习题 366

程序设计项目 367

第12章 文本文件和二进制文件的处理 372

12.1 输入/输出文件:回顾与进一步研究 372

12.1.1 键盘和屏幕作为文本流 372

12.1.2 换行与EOF 373

12.1.3 转义序列 373

12.1.4 printf的格式输出 373

12.1.5 文件指针变量 374

12.1.6 获取文件指针参数的函数 375

12.1.7 关闭文件 376

12.2 二进制文件 378

12.3 数据库查询 382

实例研究:数据库查询 382

12.4 常见编程错误 389

复习 390

快速测试 391

快速测试答案 391

复习题 392

程序设计项目 392

第13章 大型程序设计 395

13.1 使用抽象处理复杂问题 395

13.1.1 过程抽象 395

13.1.2 数据抽象 396

13.1.3 信息隐藏 396

13.1.4 可重用代码 396

13.2 个人库:头文件 397

13.2.1 头文件 398

13.2.2 头文件设计的忠告 399

13.3 个人库:实现文件 400

13.4 存储类 402

13.4.1 全局变量 403

13.4.2 static和register存储类 404

13.5 库中包含函数的修改 405

13.6 条件编译 407

13.7 函数main的参数 410

13.8 定义带参数的宏 411

13.8.1 在宏体中使用括号 413

13.8.2 在两行以上扩展宏 414

13.9 常见编程错误 415

复习 415

快速测试 417

快速测试答案 417

复习题 418

程序设计项目 418

第14章 动态数据结构 421

14.1 指针 421

14.1.1 作为函数参数的指针 422

14.1.2 表示数组和字符串的指针 422

14.1.3 指向结构体的指针 423

14.1.4 指针使用的小结 423

14.2 动态内存分配 424

14.2.1 访问动态分配的结构体成员 425

14.2.2 使用calloc动态分配数组 426

14.2.3 返回堆单元 426

14.3 链表 428

14.3.1 带指针成员的结构体 428

14.3.2 连接结点 429

14.3.3 链表的优点 431

14.4 链表运算符 432

14.4.1 遍历链表 432

14.4.2 获得输入表 434

14.4.3 在表中查询目标 435

14.4.4 避免跟踪NULL指针 435

14.5 用链表表示栈 436

14.6 用链表表示队列 438

14.7 有序表 443

实例研究:维护一个整数有序表 443

14.8 二叉树 451

14.8.1 二叉查找树 452

14.8.2 搜索二叉查找树 452

14.8.3 建立二叉查找树 454

14.8.4 显示二叉查找树 456

14.9 常见编程错误 458

复习 459

快速测试 460

快速测试答案 461

复习题 461

程序设计项目 462

第15章 使用进程和线程的多进程 464

15.1 多任务 464

15.1.1 串行程序设计和并行程序设计 464

15.1.2 分时多任务 465

15.1.3 抢占式多任务 465

15.1.4 时间片和并行 466

15.1.5 并发程序设计 467

15.2 进程 467

15.2.1 进程创建 467

15.2.2 进程等待 469

15.2.3 从进程中执行另一个程序 470

15.3 进程间通信和管道 471

15.3.1 管道 471

15.3.2 管道的用法 472

15.3.3 使用标准输入的进程间通信 473

15.3.4 父进程和子进程间通信举例 474

15.4 线程 476

15.4.1 线程的创建 477

15.4.2 线程的同步 478

15.4.3 互斥锁 479

15.4.4 死锁 481

15.5 线程举例 484

实例研究:生产者/消费者模型 484

15.6 常见编程错误 493

复习 493

C语言结构的复习 493

快速测试 494

快速测试答案 495

复习题 495

程序设计项目 496

第16章 关于C++ 497

16.1 C++控制结构、输入/输出以及函数 497

16.1.1 使用名字空间std 497

16.1.2 C++标准输入/输出 500

16.1.3 引用参数 500

16.1.4 输出格式化 502

16.2 C++对面向对象编程的支持 503

16.2.1 头文件complex.h 504

16.2.2 类名和构造函数 505

16.2.3 成员函数和运算符 506

16.2.4 实现文件complex.cpp 506

16.2.5 数据成员 509

16.2.6 输入/输出运算符重载 510

复习 512

快速测试 513

快速测试答案 514

复习题 514

程序设计项目 515

附录A 字符集 516

附录B ANSI C标准库 518

附录C C运算符 529

附录D 关于指针的更多信息 533

附录E ANSI C保留字 537

附录F ANSI C结构的参照指南 538

相关图书
作者其它书籍
返回顶部