C程序设计经典教程

C程序设计经典教程
作 者: 戴特尔 戴特尔 聂雪军 贺军
出版社: 清华大学出版社
丛编项: 世界最畅销计算机科学教材
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: C语言 程序设计 教材
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  作者:DEITELHarveyM.Deitel,世界一流的计算机科学教员和研计会演讲人;PaulJ.Deitel,国际知名的教育家HarveyM.Deitel博士是Deitel&Associates公司总裁,有着40余年计算机领域的工作经验,进行了大量深入的教学研究,是世界一流的计算机科学教员和研计会演讲人。HarveyM.Deitel持有麻省理工学院学士、硕士学位和波士顿大学博士学位。他曾经在IBM和MIT的虚拟内存操作系统项目中从事研究工作,开发出在很多系统中广泛实现的技术。他还有20多年大学教学经验,取得过“教育特别津贴”。也是全球知名的计算机教材作者。其作品已被翻译成日、俄、中文(繁简)、韩、法、西班牙等语言。PaulJ.Deitel是Deitel&Associates公司执行副总裁,是麻省理工学院Sloun管理学校的毕业生。主修信息技术,通过Deitel&Associates公司他已经为DigitalEquipmentCorporation......等多家公司的客户提供Java、C和C++课程的教学活动,并曾为计算机协会波士顿分会授Java和C++语言,还通过卫星直播Java课程。VisualBasic.NET2003大学简明教程:实例程序设计>>更多作品

内容简介

本书译自经典计算机教程CHow幻Program的最新版。在美国,数十万学生通过本书学习C语言。作者Deitel父子从事编程和教学工作数十年,其所著教材被誉为美国标准教材,在教育界享有盛誉。 本书新版本有以下特色: (1)应用软件工程原理讲述结构化程序设计方法。 (2)用新的代码标准重写所有的源代码,并加入大量注释。 (3)更新术语,使其与多种语言的标准和规范保持一致。 (4)免费下载所有源代码和PowerPoint讲义。 (5)数百个贴心提示,海量练习题与答案。 (6)为教师免费提供教学辅助软件包。 本书内容经典、权威,语言轻松活泼,适合只有很少甚至没有编程经验的大专院校学生,可以作为计算机编程方面的入门级教材,同时也可作为初中级程序员的参考书。

图书目录

第1章 计算机、Internet和万维网入门 1

1.1 简介 1

1.2 计算机是什么 2

1.3 计算机的组织 3

1.4 操作系统的演变 3

1.5 个人计算、分布式计算和客户/服务器计算 4

1.6 机器语言、汇编语言和高级语言 5

1.7 C语言的历史 6

1.8 C语言的标准库 7

1.9 C语言程序开发环境基础 7

1.10 Internet的历史 10

1.11 万维网的历史 11

1.12 C语言及本书的注意事项 11

总结 12

自测练习 14

自测练习答案 14

练习 14

第2章 程序设计入门 16

2.1 简介 16

2.2 一个简单的C程序:显示一行文本 16

2.3 另一个简单的C程序:两个整数相加 20

2.4 内存的概念 24

2.5 算术运算 25

2.6 判断:等式和关系运算符 28

总结 32

自测练习 33

自测练习答案 34

练习 35

第3章 结构化程序开发 40

3.1 简介 40

3.2 算法 40

3.3 伪码 41

3.4 控制结构 41

3.5 if选择语句 43

3.6 if/else选择语句 44

3.7 while循环语句 48

3.8 表述算法:案例研究1(计数器控制循环) 49

3.9 使用自顶向下、逐步求精方法表述算法:案例研究2(标志控制循环) 51

3.10 使用自顶向下、逐步求精方法表述算法:案例研究3(嵌套控制结构) 56

3.11 赋值运算符 60

3.12 增量运算符和减量运算符 61

总结 63

自测练习 64

自测练习答案 66

练习 68

第4章 程序控制 76

4.1 简介 76

4.2 循环的本质 76

4.3 计数器控制循环 77

4.4 for循环语句 78

4.5 for语句:注意事项和经验 81

4.6 使用for语句的示例 82

4.7 switch多重选择语句 85

4.8 do/while循环语句 90

4.9 break和continue语句 92

4.10 逻辑运算符 93

4.11 关于相等运算符(==)和赋值运算符(=) 96

4.12 结构化程序设计小结 97

总结 102

自测练习 103

自测练习答案 104

练习 105

第5章 函数 112

5.1 简介 112

5.2 C语言的程序模块 112

5.3 数学库函数 113

5.4 函数 114

5.5 函数的定义 115

5.6 函数原型 119

5.7 头文件 121

5.8 调用函数:值调用和引用调用 122

5.9 产生随机数 122

5.10 示例:运气游戏 127

5.11 存储类别 130

5.12 作用域的规则 132

5.13 递归 135

5.14 递归示例:斐波纳契数列 138

5.15 递归与迭代 142

总结 144

自测练习 146

自测练习答案 148

练习 151

第6章 数组 159

6.1 简介 159

6.2 数组 159

6.3 数组的定义 161

6.4 数组使用示例 161

6.5 数组传递给函数 173

6.6 数组排序 177

6.7 案例研究:用数组计算平均值、中值和最频值 180

6.8 数组查找 184

6.9 多维数组 189

总结 195

自测练习 197

自测练习答案 198

练习 199

递归练习 208

第7章 指针 210

7.1 简介 210

7.2 指针变量的定义和初始化 210

7.3 指针运算符 211

7.4 引用调用 213

7.5 使用指针的const限定符 217

7.6 使用引用调用的冒泡排序 223

7.7 sizeof运算符 226

7.8 指针表达式和指针算法 228

7.9 指针和数组的关系 230

7.10 指针数组 234

7.11 案例研究:洗牌和发牌模拟 235

7.12 函数指针 239

总结 244

自测练习 245

自测练习答案 246

练习 248

特殊主题:构建自己的计算机 251

第8章 字符和字符串 260

8.1 简介 260

8.2 字符串和字符的基本知识 260

8.3 字符处理库 262

8.4 字符串转换函数 266

8.5 标准输入/输出库函数 271

8.6 字符串处理库的字符串操作函数 274

8.7 字符处理库的比较函数 276

8.8 字符串处理库的查找函数 278

8.9 字符串处理库的内存函数 284

8.10 字符串处理库的其他函数 287

总结 288

自测练习 290

自测练习答案 291

练习 292

特殊主题:高级字符串处理练习 294

一个具有挑战性的字符串处理项目 297

第9章 格式化的输入/输出 298

9.1 简介 298

9.2 流 298

9.3 用printf格式化输出 298

9.4 输出整数 299

9.5 输出浮点数 300

9.6 输出字符串和字符 302

9.7 其他格式转换符 303

9.8 用字段宽度和精度输出 304

9.9 在printf格式控制字符串中使用标记 306

9.10 输出字面量和转义序列 309

9.11 用scanf格式化输入 309

总结 314

自测练习 316

自测练习答案 317

练习 318

第10章 结构、联合、位操作和枚举 320

10.1 简介 320

10.2 结构定义 320

10.3 初始化结构 322

10.4 访问结构成员 323

10.5 在函数中使用结构 324

10.6 typedef 325

10.7 示例:高性能洗牌和发牌模拟程序 325

10.8 联合 328

10.9 按位运算符 330

10.10 位域 337

10.11 枚举常量 340

总结 342

自测练习 343

自测练习答案 344

练习 345

第11章 文件处理 349

11.1 简介 349

11.2 数据层次结构 349

11.3 文件和流 351

11.4 创建顺序访问文件 351

11.5 从顺序访问文件中读取数据 356

11.6 随机访问文件 361

11.7 创建随机访问文件 361

11.8 随机向随机访问文件中写入数据 363

11.9 随机从随机访问文件中读取数据 366

11.10 案例研究:事务处理程序 367

总结 372

自测练习 373

自测练习答案 374

练习 375

第12章 数据结构 380

12.1 简介 380

12.2 自引用结构 380

12.3 动态内存分配 381

12.4 链表 382

12.5 堆栈 390

12.6 队列 396

12.7 树 402

总结 407

自测练习 408

自测练习答案 409

练习 410

特殊主题:构建自己的编译器 416

第13章 预处理器 427

13.1 简介 427

13.2 #include预处理指令 427

13.3 #define预处理指令:符号常量 427

13.4 #define预处理指令:宏 428

13.5 条件编译 430

13.6 #error和#pragma预处理指令 431

13.7 #和##运算符 431

13.8 行号 431

13.9 预定义符号常量 432

13.10 断言 432

总结 432

自测练习 433

自测练习答案 434

练习 435

第14章 高级技术 436

14.1 简介 436

14.2 在UNIX和Windows系统上重定向输入/输出 436

14.3 变长参数列表 437

14.4 使用命令行参数 439

14.5 编译多源文件程序 440

14.6 使用exit和atexit终止程序 442

14.7 volatile类型限定符 443

14.8 整数和浮点常量的前缀 443

14.9 文件的其他问题 443

14.10 信号处理 445

14.11 动态内存分配:函数calloc和realloc 448

14.12 无条件跳转:goto 448

总结 450

自测练习 451

自测练习答案 452

练习 452

附录A Internet与Web资源 453

A.1 资源 453

A.2 编译器 453

附录B C99 Internet与Web资源 454

附录C 运算符优先级 456

附录D ASCII字符集 458

附录E 数制系统 459

E.1 简介 459

E.2 将二进制数缩写为八进制和十六进制数 461

E.3 将八进制和十六进制数转换成二进制数 463

E.4 从二进制、八进制、十六进制转换成十进制 463

E.5 从十进制转换为八进制、十六进制或二进制 464

E.6 负二进制数:补码记数法 465

自测练习 466

自测练习答案 467

练习 468

附录F 标准库资源 469