《ANSI C应用程序设计》PDF下载

  • 购买积分:19 如何计算积分?
  • 作  者:(美)Richard Johnsonbaugh,(美)Martin Kalin著;杨季文,吕强译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2006
  • ISBN:7302121508
  • 页数:677 页
图书介绍:C语言具有高效、灵活和优雅等特点,至今仍是各类软件设计开发人员必修的基础。本书以循序渐进的方式全面详细地介绍了C语言,更以大量有趣生动的应用实例讲解了应用程序的设计,还以丰富多彩的例题和习题说明了学习使用C语言是件快乐的事。本书可作为高等学校理工科类专业C语言程序设计课程的教材或教学参考书,也可作为广大群众计算机爱好者学习应用C语言的自学参考书。

第1章 C语言导论 1

1.1 第一个C语言程序 1

目录 1

1.2 应用举例:长度转换 2

1.3 标识符 6

1.4 while语句 7

1.5 do while语句 10

1.6 应用举例:计算所得税 11

1.7 if语句 13

1.8 深入介绍if语句 19

1.9 输入和输出重定向 24

1.10 文件 26

常见编程错误 27

编程练习 28

2.1 字符和整数 30

第2章 变量、运算符和流程控制 30

2.2 浮点变量 38

2.3 算术运算 42

2.4 关系运算符、逻辑运算符和赋值运算符 46

2.5 应用举例:统计测量 52

2.6 for语句和逗号运算符 55

2.7 运算符++和-- 58

2.8 应用举例:打印条形图 61

常见编程错误 63

编程练习 64

第3章 运算符和流程控制 67

3.1 break和continue语句 67

3.2 应用举例:产生素数 71

3.3 switch语句 73

3.4 goto语句和标号 79

3.5 条件表达式 80

3.6 应用举例:打印日历 81

3.7 强制类型转换 84

3.8 运算符sizeof 85

3.9 getchar和putchar 86

3.10 位运算符 89

3.10.1 位取反运算符 90

3.10.2 位逻辑运算符 90

3.10.3 位移位运算符 91

常见编程错误 95

编程练习 96

第4章 函数和程序结构 98

4.1 简介 98

4.1.1 函数术语 99

4.1.3 函数声明 101

4.1.2 return语句 101

4.1.4 main函数 103

4.1.5 源文件中的函数 104

4.1.6 函数和程序设计 105

4.2 实际参数和形式参数 107

4.2.1 形式参数和实际参数的匹配 108

4.2.2 计算参数值的顺序 108

4.3 传值调用 109

4.4 应用举例:计算电阻 112

4.5 变量的作用范围 116

4.6 预处理器 117

4.6.1 文件包含 118

4.6.2 使用单个文件包含 119

4.6.3 宏 119

4.6.5 带参数的宏与函数的比较 121

4.6.4 带参数的宏 121

4.6.6 宏的便利性 123

4.6.7 其余命令 123

4.7 应用举例:模拟一个掷骰子游戏 129

4.8 递归 135

4.9 应用举例:递归拼贴 144

4.10 参数数目可变的函数 151

常见编程错误 155

编程练习 159

第5章 数组 164

5.1 为何引入数组 164

5.2 数组下标和单元偏移 164

5.2.1 数组与指针 168

5.2.2 sizeof运算符和数组 170

5.3 应用举例:跟踪和报告汽车销售情况 172

5.4 字符型数组作为字符串 177

5.5 应用举例:用给定的行长度格式化文本 181

5.6 数组作为函数参数 183

5.7 字符串处理函数 187

5.7.1 strcat,strncat 187

5.7.2 strcmp,strncmp 188

5.7.3 strcpy,strncpy 190

5.7.4 strlen 191

5.7.5 strstr,strchr,strrchr 191

5.8 应用举例:计算字符串的长度 196

5.9 多维数组 196

5.9.1 概述 196

5.9.2 多维数组的方便性 197

5.9.3 多维数组是由数组构成的数组 198

5.9.5 多维数组用作参数 199

5.9.4 多维数组的初始化 199

5.10 应用举例:矩阵乘法 201

5.11 应用举例:排序和查找 205

5.12 应用举例:森林火势蔓延的模拟 210

常见编程错误 215

编程练习 217

第6章 指针 224

6.1 指针变量 224

6.1.1 指针变量概述 224

6.1.2 指针初始化 230

6.1.3 对地址运算符的限制 231

6.2 多级间接访问 233

6.3 指针与数组 236

6.3.1 字符指针与字符数组 237

6.3.2 数组与指针的算术运算 239

6.3.3 指针运算 242

6.3.4 指向数组单元的指针的界 246

6.3.5 数组和指针语法的等价性 247

6.3.6 数组形式和指针形式的混合 247

6.4 指针作为函数的参数 252

6.5 应用举例:反转字符串 261

6.6 应用举例:并行计算 264

6.7 指针与多维数组 272

6.8 命令行参数 275

6.9 指向函数的指针 277

6.10 应用举例:对排序算法进行比较 279

常见编程错误 283

编程练习 285

7.1 单一源文件中的存储类别:auto,extern,static 290

7.1.1 auto 290

第7章 存储类别和类型限定 290

7.1.2 extern 291

7.1.3 static 292

7.2 应用举例:文本分页 297

7.3 存储类别register 300

7.4 多个源文件中的存储类别 301

7.5 应用举例:交互式计算器 306

7.6 块的嵌套 312

7.7 函数存储类别 315

7.8 类型限定符:const和volatile 317

7.8.1 类型限定符的用法 317

7.8.2 const 318

7.8.3 const变量和宏 319

7.8.5 const指针参数 320

7.8.4 const的局限性 320

7.8.6 volatile 321

7.8.7 类型限定符的组合用法 321

7.8.8 类型限定符和编译器的优化 325

7.9 应用举例:安排活动计划 327

常见编程错误 332

编程练习 333

第8章 输入和输出 337

8.1 文件的打开和关闭 337

8.2 字符输入/输出 341

8.2.1 fgetc,getc,getchar 341

8.2.2 fputc,putc,putchar 341

8.3 应用举例:以字节为单位确定源文件的长度 343

8.4 字符串输入/输出 344

8.4.1 fgets,gets 344

8.4.2 fputs,puts 346

8.5 格式化输入/输出 347

8.5.1 scanf,fscanf,sscanf 347

8.5.2 printf,fprintf,sprintf 352

8.5.3 字符转换以及字符检测函数 358

8.6 非格式化输入/输出 361

8.6.1 fwrite 361

8.6.2 fread 361

8.7 文件的定位函数:fseek,ftell,rewind 362

练习 364

8.8 应用举例:随机访问文件 366

常见编程错误 376

编程练习 376

第9章 结构、联合和枚举类型 381

9.1 结构介绍 381

9.2 应用举例:模式识别 389

9.3 typedef构造 394

9.3.1 typedef的一般用法 394

9.3.2 typedef和代码的可移植性 395

9.3.3 typedef和结构 395

9.4 对结构的操作 397

9.4.1 初始化结构的成员 397

9.4.2 赋值运算符应用于结构变量 398

9.5 结构指针、结构嵌套和自指结构 400

9.5.1 结构指针 400

9.5.2 结构嵌套 403

9.5.3 自指结构 404

9.6 结构和函数 406

9.6.1 通过传值方式传递结构 406

9.6.2 传递指向结构的指针 409

9.6.3 结构作为常量参数 411

9.7 应用举例:销售报表 413

9.8 联合与位字段 428

9.8.1 联合 428

9.8.2 位字段 430

9.9 枚举类型 432

常见编程错误 434

编程练习 437

第10章 数据结构简介 440

10.1 编译时和运行时的存储分配 441

10.1.1 malloc:一个用于运行时存储分配的函数 441

10.1.2 calloc:另一个用于运行时存储分配的函数 443

10.1.3 访问运行时分配的存储空间 443

10.1.4 释放运行时分配的存储空间 444

10.1.5 无用单元 445

10.2.1 链表的组成和结构 447

10.2 链表 447

10.2.2 运行时结点的动态分配 451

10.2.3 对链表的操作 454

10.3 应用举例:文本编辑器 459

10.4 栈和队列 473

10.4.1 栈 474

10.4.2 队列 479

10.5 应用举例:中缀表达式转换成后缀表达式 484

10.6 图和树 491

10.6.1 图 491

10.6.2 树 493

10.7 树的遍历 497

10.7.1 3种二叉树的遍历算法 497

10.7.2 二叉树的表示 499

10.8.1 两种搜索方法的基本原理 502

10.8.2 广度优先搜索的实现 502

10.8 广度优先搜索和深度优先搜索 502

10.9 应用举例:图的启发式搜索 512

常见编程错误 523

编程练习 523

第11章 高级话题 529

11.1 断言 529

11.2 异常处理和跳转 534

11.3 C的图形支持 540

11.3.1 视频显示器 540

11.3.2 控制 541

11.3.3 出错处理 542

11.3.4 画图 542

11.3.5 文本输出 543

11.3.7 状态 544

11.4 应用举例:碎片绘制 544

11.3.6 颜色设置 544

11.5 C和C++ 551

11.5.1 面向对象设计 551

11.5.2 类和抽象数据类型 553

11.5.3 继承 555

11.5.4 多态 557

11.5.5 C++程序举例 558

编程练习 564

附录A ASCII与EBCDIC码表 566

附录B C语言概要 573

附录C C语言语法图解 583

附录D C的部分库函数 597

附录E C和UNIX 615

附录F Microsoft Visual C++和Borland C++Builder 625

附录G 传统C的变化 629

编号为奇数的练习解答 632