当前位置:首页 > 工业技术
C语言程序设计实用教程
C语言程序设计实用教程

C语言程序设计实用教程PDF电子书下载

工业技术

  • 电子书积分:22 积分如何计算积分?
  • 作 者:(美)Alice E.Fischer,(美)David W.Eggert等著;裘岚,张晓芸等译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2001
  • ISBN:7505369318
  • 页数:808 页
图书介绍:本书通过大量与现实世界程序设计有关的实例全面而详尽地讲解了C语言及其程序设计思想和设计方法。
《C语言程序设计实用教程》目录

第一部分 入门 1

第1章 计算机和系统 1

1.1 物理计算机 1

1.1.1 处理器 2

1.1.2 存储器 2

1.1.3 输入和输出设备 4

1.1.4 总线 5

1.1.5 网络 6

1.2 操作系统 7

1.3 语言 8

1.3.1 机器语言 8

1.3.2 汇编语言 8

1.3.3 高级语言 9

1.4 谨记的要点 11

1.4.1 主要概念 11

1.4.2 词汇 11

习题 11

第2章 程序与编程 13

2.1 什么是程序 13

2.1.1 算法 14

2.2 问题说明和分析 14

2.2.1 问题说明 15

2.2.2 设计测试计划 16

2.2.3 设计方案 17

2.3 开发环境 17

2.3.1 文本编辑器 18

2.3.2 翻译程序 19

2.3.3 连接程序 19

2.4 构造程序 19

2.4.1 创建一个源文件 20

2.4.2 编译程序并改正错误 21

2.5 执行和测试程序 22

2.5.1 执行程序 22

2.5.2 测试和验证 23

2.6 谨记的要点 25

2.6.1 主要概念 25

2.6.2 词汇 25

习题 25

第3章 基本概念 29

3.1 程序的组成 29

3.2 最简单的程序 30

3.3 变量、输入、输出和顺序 31

3.3.1 变量 32

3.3.2 输入和输出 32

3.3.3 读取和回显:使用C语言中的stdio库 34

3.4 简单计算 36

3.4.1 数字 36

3.4.2 赋值 36

3.4.3 常量 36

3.4.4 算术和公式 37

3.4.5 程序原型 37

3.4.6 进行计算的程序 38

3.5 流程控制 40

3.6 询问问题:条件语句 41

3.6.1 简单的if语句 41

3.6.2 if…else语句 43

3.6.3 系统if…else语句 45

3.6.4 应当使用哪一种if语句? 48

3.6.5 语法和布局的选择(选修专题) 48

3.7 循环和重复 49

3.7.1 计数循环 49

3.7.2 输入校验循环 51

3.8 应用 53

3.9 谨记的要点 57

3.9.1 主要概念 57

3.9.2 编程风格 58

3.9.3 难点和常见错误 58

3.9.4 新词汇和再次出现的词汇 59

习题 60

第二部分 计算 67

第4章 对象、类型和表达式 67

4.1 变量、常量和文字 67

4.1.1 变量 67

4.1.2 常量和文字 69

4.1.3 名称和标识符 70

4.1.4 类型 71

4.2 表达式和解析树 72

4.2.1 操作符和算元 73

4.2.2 优先级和括号 73

4.2.3 解析和解析树 74

4.3 算术、赋值和合并操作符 76

4.4 递增和递减操作符 78

4.4.1 解析递增和递减操作符 78

4.4.2 前缀操作符和后缀操作符(高级专题) 80

4.5 关系操作符 81

4.6 逻辑操作符 82

4.6.1 True和False 82

4.6.2 逻辑操作符的解析树 83

4.6.3 惰性计算法(高级专题) 84

4.7 样例:电压斜线上升 86

4.8 案例分析:使用解析树进行调试 89

4.9 谨记的要点 92

4.9.1 主要概念 92

4.9.2 编程风格 93

4.9.3 难点和常见错误 93

4.9.4 新词汇和再次出现的词汇 94

习题 94

第5章 使用函数和库 99

5.1 库 99

5.1.1 标准库 99

5.1.2 本地库 100

5.2 使用库 101

5.2.1 原型 101

5.2.2 函数调用 102

5.3 函数类型 105

5.4 用户自定义函数 106

5.4.1 定义void:void函数 106

5.4.2 定义一个double:double函数 108

5.5 数学库应用:二次方程的根 111

5.6 一个用户自定义函数:通过计算矩形总和实现的数值积分 114

5.7 谨记的要点 116

5.7.1 主要概念 116

5.7.2 编程风格 117

5.7.3 难点和常见错误 117

5.7.4 新词汇和再次出现的词汇 118

习题 118

第6章 进一步了解循环和判定 123

6.1 新的循环 123

6.1.1 for循环 123

6.1.2 do…while循环 126

6.1.3 循环中的break 126

6.1.4 循环continue(选修专题) 128

6.1.5 不完全循环 128

6.2 应用循环 129

6.2.1 计数循环 129

6.2.2 查询循环 131

6.2.3 输入验证循环 135

6.2.4 哨兵循环 136

6.2.5 计数哨兵循环 137

6.2.6 查找循环(选修专题) 140

6.2.7 延时循环(选修专题) 140

6.3 switch语句 142

6.3.1 语法和语义 142

6.3.2 一个应用程序 144

6.4 计数循环应用:用辛普森法则积分 147

6.5 应用哨兵循环:插值(选修专题) 152

6.5.1 程序设计 152

6.5.2 程序测试 156

6.6 谨记的要点 158

6.6.1 主要概念 158

6.6.2 编程风格 158

6.6.3 难点和常见错误 159

6.6.4 新词汇和再次出现的词汇 159

习题 160

第三部分 基本数据类型 167

第7章 使用数值类型 167

7.1 整型 167

7.2 C中的浮点类型 169

7.3 读写数值 170

7.3.1 整型输入 171

7.3.2 整型输出 171

7.3.3 浮点数输入 172

7.3.4 浮点数输出 172

7.4 操作整型数 175

7.4.1 整数除法和求模 175

7.4.2 应用整数除法和求模 177

7.5 计算中的混合类型(高级专题) 179

7.5.1 基本类型转换 179

7.5.2 类型转换运算和强制类型转换 181

7.5.3 类型转换图示 184

7.5.4 使用类型转换避免整数除法中的问题 185

7.5.5 混合类型算术运算应用程序:射弹问题 187

7.6 伪随机数 189

7.6.1 生成随机数 189

7.6.2 标准随机数生成器的优点 190

7.7 应用程序:猜数游戏 193

7.7.1 策略 193

7.7.2 玩游戏 193

7.8 谨记的要点 196

7.8.1 主要概念 196

7.8.2 编程风格 198

7.8.3 难点和常见错误 198

7.8.4 新词汇和再次出现的词汇 199

习题 200

第8章 数值问题及其解决 207

8.1 浮点数比较 207

8.1.1 可表示误差 207

8.1.2 有意义的比较 208

8.1.3 应用程序:巡航控制 209

8.2 计算误差(高级专题) 211

8.2.1 上溢 211

8.2.2 下溢 214

8.2.3 量级的阶和其他问题 215

8.3 可选应用程序:求方程的实数根 215

8.3.1 牛顿法 216

8.4 谨记的要点 221

8.4.1 主要概念 221

8.4.2 难点和常见错误 222

8.4.3 新词汇和再次出现的词汇 222

习题 223

第9章 程序设计 229

9.1 模块化程序 229

9.1.1 模块组织 229

9.2 函数间通信 232

9.2.1 函数界面 232

9.2.2 实参和形参 233

9.2.3 函数的返回结果 234

9.3 声明与调用的相似之处 235

9.3.1 检查原型和形参类型 235

9.3.2 回顾常见原型 236

9.3.3 格式形参名 236

9.3.4 函数语法:通用情况 238

9.3.5 形参次序 240

9.4 数据模块化 241

9.4.1 作用域和可视性 242

9.4.2 全局和局部名称 243

9.4.3 消除全局变量 245

9.5 函数调用图表 247

9.6 程序设计和结构 249

9.6.1 步骤 249

9.6.2 程序的层次开发 251

9.7 谨记的要点 258

9.7.1 主要概念 258

9.7.2 编程风格 258

9.7.3 难点及常见错误 259

9.7.4 新词汇和再次出现的词汇 260

习题 260

第10章 数组 267

10.1 数组 267

10.1.1 数组声明和初始化 267

10.1.2 数组尺寸(高级专题) 269

10.1.3 访问数组 270

10.1.4 下标越界错误(高级专题) 272

10.2 使用数组 272

10.2.1 数组输入 273

10.2.2 越界使用存储单元 274

10.3 平行数组 276

10.4 数组实参和形参 279

10.4.1 数组应用:测量统计 280

10.4.2 线性回归(选修专题) 285

10.5 谨记的要点 290

10.5.1 主要概念 290

10.5.2 编程风格 291

10.5.3 难点和常见错误 291

10.5.4 新词汇和再次出现的词汇 291

习题 292

第11章 字符数据和枚举类型 299

11.1 字符的表示方法 299

11.1.1 C语言中的字符类型 299

11.1.2 不同的解释 299

11.1.3 字符文字 300

11.2 字符的输入和输出 301

11.2.1 字符输入 301

11.2.2 字符输出 302

11.2.3 使用I/O函数 303

11.3 字符操作(高级专题) 305

11.3.1 字符就是极短的整数 305

11.3.2 赋值 306

11.3.3 比较字符 306

11.3.4 字符算术 307

11.3.5 其他字符函数 307

11.4 字符应用程序:改进后的处理循环 308

11.5 枚举类型 309

11.5.1 类型定义 310

11.5.2 枚举 310

11.6 谨记的要点 315

11.6.1 主要概念 315

11.6.2 编程风格 315

11.6.3 难点和常见错误 316

11.6.4 新词汇和再次出现的词汇 316

习题 317

第12章 指针介绍 323

12.1 指针概述 323

12.1.1 指针就是地址 323

12.1.2 指针操作 325

12.2 地址调用 327

12.2.1 地址参数 328

12.2.2 指针参数 328

12.2.3 更复杂的样例 330

12.2.4 函数返回多个结果 331

12.2.5 小结:从函数返回结果 335

12.3 应用:对分方法(高级专题) 335

12.4 谨记的要点 344

12.4.1 主要概念 344

12.4.2 编程风格 344

12.4.3 难点和常见错误 345

12.4.4 新词汇和再次出现的词汇 346

习题 346

第四部分 结构化数据类型 355

第13章 字符串 355

13.1 字符串的表达形式 355

13.1.1 字符串文字 355

13.1.2 字符串就是指向一个数组的指针 356

13.1.3 声明一个数组来得到字符串 358

13.1.4 数组与字符串 358

13.2 字符串I/O 360

13.2.1 字符串输出 360

13.2.2 字符串输入 362

13.2.3 其他字符串函数 365

13.2.4 字符串作为参数使用 365

13.3 String库 366

13.3.1 3个字符串工具(高级专题) 370

13.4 字符串数组 371

13.4.1 打印枚举代码 372

13.4.2 菜单数据结构 373

13.4.3 样例:售卖冰激凌 374

13.4.4 下标校验 377

13.4.5 menu_i()和menu_c()函数 377

13.5 字符串处理应用(选修专题) 378

13.5.1 口令校验和构建消息 378

13.5.2 菜单处理和字符串解析 383

13.6 应用程序:气压表 388

13.6.1 第1步:测试计划 388

13.6.2 第2步:主程序 389

13.6.3 第3步:气压表 389

13.6.4 第4步:work()函数 390

13.6.5 第5步:测试程序 391

13.7 谨记的要点 392

13.7.1 主要概念 392

13.7.2 编程风格 393

13.7.3 难点和常见错误 393

13.7.4 新词汇和再次出现的词汇 394

习题 395

第14章 结构化类型 405

14.1 声明 405

14.2 结构体的操作 407

14.2.1 结构体操作 407

14.2.2 在函数中使用结构体 409

14.2.3 结构体数组 411

14.2.4 比较两个结构体 413

14.2.5 合并各个部分 414

14.3 应用程序:矩形中的点 415

14.4 应用:Monte Carlo方法(选修专题) 424

14.4.1 问题描述、说明和测试 424

14.4.2 开发主程序 426

14.4.3 开发函数 427

14.4.4 测试、输出和估算 429

14.5 谨记的要点 430

14.5.1 主要概念 430

14.5.2 编程风格 430

14.5.3 难点和常见错误 431

14.5.4 新词汇和再次出现的词汇 431

习题 432

第15章 流和文件 441

15.1 流和缓冲区 441

15.1.1 I/O流 441

15.1.2 缓冲区 444

15.2 程序员自定义的流 445

15.2.1 定义和使用流 445

15.2.2 文件管理错误 447

15.3 输出流 447

15.3.1 输出函数 447

15.3.2 有文件中写入数据 448

15.4 输入流 451

15.4.1 输入函数 451

15.4.2 检测文件结尾 452

15.4.3 从文件读取数据 452

15.5 错误和异常 454

15.5.1 格式错误 455

15.5.2 文件处理错误 457

15.5.3 错误恢复 458

15.5.4 错误恢复的工具:cleanline() 458

15.5.5 使用scanf()的返回值 459

15.5.6 错误恢复的联合技术 460

15.6 文件应用程序:不做替换的随机选择 462

15.7 应用:测量扭矩(选修专题) 469

15.8 谨记的要点 473

15.8.1 主要概念 473

15.8.2 编程风格 474

15.8.3 难点和常见错误 475

15.8.4 新词汇和再次出现的词汇 476

习题 476

第16章 简单数组算法 483

16.1 查找数组数据结构 483

16.1.1 在表中查找 483

16.1.2 屏蔽 484

16.2 应用程序:筛选掉不合适的数据(选修专题) 488

16.2.1 Chauvenet算法 488

16.2.2 Chauvenet程序 491

16.2.3 I/O工具函数 494

16.2.4 识别“坏”数据 496

16.2.5 消除“坏”数据 497

16.3 选择排序 499

16.3.1 选择排序算法 499

16.3.2 主程序 500

16.3.3 开发write_file()函数 502

16.3.4 开发sort_data()函数 503

16.4 谨记的要点 507

16.4.1 主要概念 507

16.4.2 编程风格 507

16.4.3 难点和常见错误 508

16.4.4 新词汇和再次出现的词汇 509

习题 509

第17章 二维数组 515

17.1 嵌套循环:打印表 515

17.2 二维数组介绍 517

17.2.1 声明和内存分布 517

17.2.2 对二维数组使用typedef 518

17.2.3 矩阵 518

17.2.4 数组的数组 520

17.2.5 读写二进制矩阵数据 523

17.2.6 多维数组 524

17.3 应用:二维点坐标的变换 524

17.4 应用程序:图像处理 530

17.5 谨记的要点 536

17.5.1 主要概念 536

17.5.2 编程风格 536

17.5.3 难点和常见错误 537

17.5.4 新词汇和再次出现的词汇 537

习题 538

第18章 位运算 547

18.1 无符号整数和十六进制 547

18.1.1 无符号数和十六进制I/O 548

18.2 位操作符 551

18.2.1 掩码和屏蔽 552

18.2.2 移位操作符 554

18.2.3 例子:移位和屏蔽互联网址 555

18.3 应用程序:简单加密和解密 557

18.4 位段类型 560

18.4.1 位段应用:设备控制(高级专题) 563

18.5 谨记的要点 569

18.5.1 主要概念 569

18.5.2 编程风格 570

18.5.3 难点和常见错误 570

18.5.4 新词汇和再次出现的词汇 570

习题 571

第五部分 高级技术 579

第19章 动态数组 579

19.1 动态内存分配 579

19.1.1 整块存储空间分配 579

19.1.2 可清除的内存分配 581

19.1.3 动态释放内存 582

19.1.4 调整数组的大小 582

19.1.5 使用动态数组 584

19.1.6 动态字符串数组 585

19.2 使用动态数组:仿真 588

19.2.1 半无限平台上的瞬时热传导 588

19.2.2 仿真冷却过程 590

19.3 动态矩阵:指针数组(高级专题) 596

19.3.1 应用:高斯消元 596

19.3.2 高斯消元算法的实现 597

19.4 谨记的要点 607

19.4.1 主要概念 607

19.4.2 编程风格 608

19.4.3 难点和常见错误 609

19.4.4 新词汇和再次出现的词汇 609

习题 610

第20章 使用指针 615

20.1 指针--新老方法 615

20.1.1 指针声明和初始化 615

20.1.2 使用指针 617

20.1.3 指针的算术和逻辑运算 619

20.2 应用:指向函数指针的菜单(高级专题) 621

20.3 在数组中使用指针 623

20.3.1 扫描和哨兵 624

20.3.2 使用指针的输入输出函数 626

20.4 插入排序 628

20.5 谨记的要点 634

20.5.1 主要概念 634

20.5.2 编程风格 635

20.5.3 难点与常见错误 636

20.5.4 新词汇和再次出现的词汇 637

习题 637

第21章 递归 645

21.1 存储类别 645

21.1.1 自动存储类别 645

21.1.2 静态存储类别 645

21.1.3 外部存储类别(高级专题) 646

21.2 运行栈(高级专题) 647

21.2.1 栈帧 647

21.2.2 栈图表和程序追踪 648

21.3 迭代和递归 649

21.3.1 迭代的本质 649

21.3.2 递归的本质 650

21.3.3 尾部递归 650

21.4 一个简单的递归倒子 651

21.5 较复杂的例子:折半查找 653

21.6 快速排序 660

21.6.1 分割步骤:分部处理 665

21.6.2 可能的改进 669

21.7 谨记的内容 669

21.7.1 主要概念 669

21.7.2 编程风格 670

21.7.3 难点和常见错误 671

21.7.4 新词汇和再次出现的词汇 671

习题 671

第22章 编写通用程序 677

22.1 命令行实参 677

22.1.1 实参向量 677

22.1.2 实参解码 677

22.2 函数作形参 683

22.2.1 使用系统的qsort()函数 684

22.2.2 使用系统的bsearch()函数 686

22.3 谨记的要点 689

22.3.1 主要概念 689

22.3.2 编程风格 689

22.3.3 难点和常见错误 690

22.3.4 新词汇和再次出现的词汇 690

习题 691

第23章 模块化组织 695

23.1 建立模块化程序 695

23.1.1 模块化结构的文件管理 695

23.1.2 建立多模块程序 697

23.2 模块化应用程序:求方程的根 702

23.2.1 多模块应用程序的结构 702

23.2.2 待求解函数:热传导方程 703

23.2.3 roots程序包的主函数 705

23.2.4 Roots头文件 709

23.2.5 修改对分法 710

23.2.6 使用割线法 713

23.2.7 定义求根应用程序 718

23.3 谨记的要点 719

23.3.1 主要概念 719

23.3.2 编程风格 720

23.3.3 难点和常见错误 720

23.3.4 新词汇和再次出现的词汇 720

习题 721

附录A ASCII代码 725

附录B C操作符的优先级 727

附录C 关键字 729

C.1 预处理命令 729

C.2 控制字 729

C.3 类型和声明 729

C.4 C?保留字 729

C.5 按字母表顺序排序的C和C?保留字 730

附录D C操作符的高级特征 731

D.1 组合赋值操作符 731

D.2 对简便计算和忽略的深入了解 732

D.2.1 运算顺序和操作符的副作用 734

D.3 条件操作符 734

D.4 逗号操作符 736

D.5 总结 736

附录E 数值表示法和转换 739

E.1 数值系统和数值表示法 739

E.2 带符号和无符号整数 739

E.3 实数的表示法 740

E.4 数值转换 741

E.5 自测练习 743

附录F tools库 745

F.1 在程序中使用tools库 746

F.1.1 组织工程 746

F.1.2 在Visual c?环境下使用tools 747

F.1.3 在UNIX环境下使用tools 747

F.2 可移植性指令 748

F.3 在tools.h中声明并在tools.c中定义的函数 749

F.4 过程和流管理 749

F.4.1 错误处理函数 752

F.5 时间和日期函数 753

F.6 数值函数 754

F.7 字符串和菜单 755

附录G 标准C环境 757

G.1 嵌入工具 757

G.2 标准常量文件 757

G.3 标准库和main() 758

G.3.1 main()函数 758

G.3.2 字符和转换 758

G.3.3 数学 759

G.3.4 输入和输出 760

G.3.5 标准库 762

G.3.6 字符串 764

G.3.7 时间和日期 765

G.3.8 变长参数列表 766

G.4 未介绍的库 767

附录H 术语表 769

附录I 自测练习答案 779

1.1 第1章 779

1.2 第2章 779

1.3 第3章 779

1.4 第4章 780

1.5 第5章 781

1.6 第6章 781

1.7 第7章 783

1.8 第8章 784

1.9 第9章 785

1.10 第10章 787

1.11 第11章 788

1.12 第12章 789

1.13 第13章 792

1.14 第14章 794

1.15 第15章 795

1.16 第16章 796

1.17 第17章 797

1.18 第18章 799

1.19 第19章 800

1.20 第20章 802

1.21 第21章 803

1.22 第22章 805

1.23 第23章 806

1.24 附录E 808

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