《国外计算机科学经典教材:标准C程序设计(第6版)》以简洁、清晰且逻辑有序的方式讲解C语言程序设计的概念,十分适合C语言的初学者。《国外计算机科学经典教材:标准C程序设计(第6版)》通过示例程序、案例学习、编程练习、项目设计以及其他教学手段来帮助读者更好地理解C语言,使得学习过程更加愉悦。
《国外计算机科学经典教材:标准C程序设计(第6版)》特色: ·丰富的程序代码及大量注释贯穿全书 ·以醒目的方式提供了众多补充信息和技巧、提示 ·演示真实应用程序的案例学习,以及列出可能遇到的问题和实用提示的“谨记”段落 ·帮助掌握处理大型程序的编程项目 ·从学生的常见问题中专门挑选出来的新程序和复习题 ·遵循C99标准
C是功能强大、灵活性好、可移植且结构良好的程序设计语言。由于C集成了高级语言和汇编语言的优点,因此可适用于系统和应用程序的开发。今天,C语言无疑是操作系统和嵌入式开发中使用最广的通用语言。在几乎所有现代程序设计语言中,都可以看到C语言的痕迹。自从1989年标准化以来,C经历了一系列的修订和改进,以提高该语言的可用性。现在,融合了这些新特性的版本称为C99。
第6版新增内容
C语言的创建人是Dennis Ritchie(1941年9月—2011年10月),他“帮助塑造了数字时代”。在2011年Ritchie辞世后,为了向这位帮助改变了计算机程序设计世界的人致敬,本书开始准备再版。Ritchie曾这样说过:“C语言在很多方面都很奇特。但是与其他许多成功的事物一样,C语言在处理问题上有自己的统一性,这是小团队进行开发的结果。”
本书结构
本书首先在第1章概要地介绍了C语言,包括C语言的历史、C程序的基本结构和执行。第2章讨论了如何声明常量、变量和数据类型。第3章讨论了内置运算符以及如何使用它们来构建表达式。第4章介绍了输入输出操作。第5章介绍了决策判断与分支,包括if-else、switch和goto语句。第6章讨论了决策与循环,包括while、do和for循环。第7章和第8章介绍了数组和数据元素的有序排列,这些对所有程序设计语言都很重要。第8章还介绍了字符串。第9章和第10章介绍了函数、结构体和共用体。指针是C语言中最难理解和掌握的部分,第11章以对用户非常友好的方式介绍了指针。第12章和第13章分别介绍了文件管理和动态内存分配。第14章介绍了预处理器。最后,第15章介绍了如何开发C程序,为读者提供了关于程序开发的一些真知灼见。
如果读者按照本书结构认真学习,将可以很好地理解C语言。
本书内容进行了全面修订,以紧跟C程序设计领域的发展和现实的需要。本书一如既往地强调通过示例进行学习的思想。在深入讲解C语言的每个主要特性后,通过一个完整程序示例来演示其用法。示例程序既简单,又很有启发性。
每章的开头含有一小节,介绍本章的主要内容。如有必要,则使用图形来描述有关的概念,以提高描述的清晰性,方便读者理解。基本的语言技巧和其他需要特别考虑的内容以“注意”的形式突显出来。
本书特色
●带注释的代码全书随处可见,这些注释说明了C语言的各种特性是如何集成在一起以实现特定任务的。
●补充信息和“注意”对正文进行了必要的补充,但独立于正文之外。
●每章末尾的案例学习演示了把C特性集成在一起的常用方式,并显示了一些实际的应用。
●每章末尾的“谨记”列举了一些有用的提示和可能出问题的地方。
●每章末尾的“复习题”和“编程练习”为读者复习所学概念和实际的应用开发提供机会。
●附录D给出的“项目设计”展示了开发大型程序时如何集成C的各种特性。
●从大学生常问的问题中专门挑选了有代表性的问题来更新程序和复习题。
●单独用一章的篇幅来介绍遵循C99标准的最新编译器的特性。
网络资源
本书还提供配套网站(http://www.mhhe.com/balagurusamy/ansic6),上面提供了以下资源:
●本书各章程序的可运行代码。
●两个编程项目:库存管理系统和登录记录系统。
●可下载的小项目(链表和矩阵乘法),以及各章的案例学习程序。
●附加阅读材料,例如“UNIX Operating System”和“Differences between ANSI C, C++ and ANSI C++”,它们可帮助读者深入了解C语言及其应用。
本书读者对象
本书针对的是想要成为C程序员的读者,无论他们是否理解并实际编写过程序。本书以简单易懂的方式讲解了什么是C语言,为什么使用C语言,以及如何使用C语言进行程序设计。
巴拉古路萨米(E.Balagurusamy),目前是EBG基金会的主席,曾担任Anna大学的副校长。他是信息技术与管理领域的教授、培训师和顾问。E.Balagurusamy拥有IIT的电气工程荣誉学位和系统工程博士学位。他的研究方向包括:面向对象软件工程、电子商务、技术管理、业务流程重组以及全面质量管理。
第1章 C语言概述
1.1 C语言的历史
1.2 C语言的主要特性
1.3 示例程序1:显示一条消息
1.4 示例程序2:两个数相加
1.5 示例程序3:利息计算
1.6 示例程序4:子例程的使用
1.7 示例程序5:数学函数的使用
1.8 C程序的基本结构
1.9 编程风格
1.10 运行C程序
1.11 在UNIX系统环境下
1.11.1 创建程序
1.11.2 编译与链接
1.11.3 运行程序 第1章 C语言概述
1.1 C语言的历史
1.2 C语言的主要特性
1.3 示例程序1:显示一条消息
1.4 示例程序2:两个数相加
1.5 示例程序3:利息计算
1.6 示例程序4:子例程的使用
1.7 示例程序5:数学函数的使用
1.8 C程序的基本结构
1.9 编程风格
1.10 运行C程序
1.11 在UNIX系统环境下
1.11.1 创建程序
1.11.2 编译与链接
1.11.3 运行程序
1.11.4 创建自己的可运行文件
1.11.5 多个源文件问题
1.12 在MS-DOS系统环境下
复习题
编程练习
第2章 常量、变量及数据类型
2.1 概述
2.2 字符集
2.3 C标记符
2.4 关键字与标识符
2.5 常量
2.5.1 整型常量
2.5.2 实数常量
2.5.3 单字符常量
2.5.4 字符串常量
2.5.5 反斜杠字符常量
2.6 变量
2.7 数据类型
2.7.1 整型
2.7.2 浮点型
2.7.3 void粪型
2.7.4 字符类型
2.8 变量的声明
2.8.1 基本类型的声明
2.8.2 自定义类型的声明
2.9 存储类型的声明
2.10 变量的赋值
2.10.1 赋值语句
2.10.2 从键盘读取数据
2.11 符号常量的定义
2.11.1 可修改性
2.11.2 可理解性
2.12 将变量声明为常量
2.13 将变量声明为可变的
2.14 数据的溢出
2.15 案例学习
2.15.1 平均数计算
2.15.2 温度转换问题
复习题
编程练习
第3章 运算符与表达式
3.1 概述
3.2 算术运算符
3.2.1 整数算术运算
3.2.2 实数算术运算
3.2.3 混合算术运算
3.3 关系运算符
3.4 逻辑运算符
3.5 赋值运算符
3.6 递增和递减运算符
3.7 条件运算符
3.8 逐位运算符
3.9 特殊运算符
3.9.1 逗号运算符
3.9.2 size of运算符
3.10 算术表达式
3.11 表达式的计算
3.12 算术表达式的优先级
3.13 一些可计算性问题
3.14 表达式中的类型转换
3.14.1 隐式类型转换
3.14.2 显式类型转换
3.15 运算符的优先级及其关联性
3.16 数学函数
3.17 案例学习
3.17.1 销售人员的工资
3.17.2 二次方程的求解
复习题
编程练习
第4章 输入输出操作管理
4.1 概述
4.2 读取一个字符
4.3 写一个字符
4.4 格式化输入
4.4.1 整数输入
4.4.2 实数输入
4.4.3 字符串输入
4.4.4 混合数据类型的读取
4.4.5 错误输入的检测
4.4.6 使用scanf函数时应记住的几个要点
4.5 格式化输出
4.5.1 整数的输出
4.5.2 实数的输出.
4.5.3 单个宇符的显示
4.5.4 字符串的显示
4.5.5 混合数据的输出
4.5.6 提高输出的可读性
4.6 案例学习
4.6.1 库存报告
4.6.2 可靠性图形
复习题
编程练习
第5章 判断与分支
5.1 概述
5.2 if判断语句
5.3 简单if语句
5.4 if...else语句
5.5 嵌套if...else语句
5.6 阶梯式elseif语句
5.7 switch语句
5.8 ?:运算符
5.9 go to语句
5.10 案例学习
5.10.1 数值的分布范围
5.10.2 账单计算
练习题
编程练习
第6章 判断与循环
6.1 概述
6.2 while语句
6.3 do语句
6.4 for语句
6.4.1 简单的for循环
6.4.2 for循环的其他特性
6.4.3 for循环的嵌套
6.5 循环中的跳转
6.5.1 跳出循环
6.5.2 跳过循环的一部分
6.5.3 避免使用go to语句
6.5.4 跳出程序
6.6 简洁的测试表达式
6.7 案例学习
6.7.1 二项式系数表
6.7.2 柱状图
……
第7章 数组
第8章 字符数组与字符串
第9章 用户自定义函数
第10章 结构体与共用体
第11章 指针
第12章 文件管理
第13章 动态内存分配与链表
第14章 预处理器
第15章 C程序开发的一些指导原则