C语言详解:第6版(C语言经典教程,为世界各国众多大学采用)
基本信息
- 作者: (美)Jeri R. Hanly Elliot B. Koffman [作译者介绍]
- 译者: 潘蓉 郑海红 孟广兰 万波
- 丛书名: 图灵程序设计丛书 C/C++系列
- 出版社:人民邮电出版社
- ISBN:9787115220165
- 上架时间:2010-3-19
- 出版日期:2010 年4月
- 开本:16开
- 页码:572
- 版次:6-1
- 所属分类:
计算机 > 软件与程序设计 > C/Turbo C > C
内容简介回到顶部↑
本书是C语言经典教程,历经多次改版,为世界各国众多大学采用,迄今为止全球已有近10万读者通过本书掌握了C语言。
本书的最大特色是程序设计思想的介绍和C语言语法的讲述并重,不仅细致入微地讲述C语言知识,而且更多地强调学生解决实际问题和动手编程的能力。与国内众多C语言教材相比,书中突出了良好的程序风格和软件工程概念的重要性,并力求使学生比较早地建立软件开发的大局观。书中将教学难点——指针分散在多个章节分别讨论,使学生能够从实际运用中逐渐吸收指针用法的精髓,充分体现了作者丰富的教学经验。此外,本书的内容也非常新颖,讲授了用抽象管理复杂性、多进程和多线程、动态数据结构等知识。大量的案例、示例、常见编程错误、习题和程序设计项目,使本书成为课堂教学和自学参考皆宜的理想学习工具。
本书为最新的第6版,其中为初学者新增加了第0章,介绍了计算领域的职业发展机会。此外,第1章中硬件方面的内容根据当前技术发展有了重大的更新。最后,本书对实例研究和章末项目中的许多地方也做了大幅修订,使内容与时俱进,给读者全新的感受。
本书的最大特色是程序设计思想的介绍和C语言语法的讲述并重,不仅细致入微地讲述C语言知识,而且更多地强调学生解决实际问题和动手编程的能力。与国内众多C语言教材相比,书中突出了良好的程序风格和软件工程概念的重要性,并力求使学生比较早地建立软件开发的大局观。书中将教学难点——指针分散在多个章节分别讨论,使学生能够从实际运用中逐渐吸收指针用法的精髓,充分体现了作者丰富的教学经验。此外,本书的内容也非常新颖,讲授了用抽象管理复杂性、多进程和多线程、动态数据结构等知识。大量的案例、示例、常见编程错误、习题和程序设计项目,使本书成为课堂教学和自学参考皆宜的理想学习工具。
本书为最新的第6版,其中为初学者新增加了第0章,介绍了计算领域的职业发展机会。此外,第1章中硬件方面的内容根据当前技术发展有了重大的更新。最后,本书对实例研究和章末项目中的许多地方也做了大幅修订,使内容与时俱进,给读者全新的感受。
作译者回到顶部↑
本书提供作译者介绍
Jeri R. Hanly 世界知名的计算机科学教育家。曾多年任教于怀俄明大学和霍华德大学计算机科学系。她出版过多部著作,并被译为多种文字,其读者遍及全世界。
Elliot Koffman 美国一流的计算机科学教育家。坦普尔大学计算机和信息科学系教授,有近40年的教学经验。他曾经担任ACM Task Force的主席。已出版著作数十部,其中包括多种非常成功的编程语言教材。
.. << 查看详细
Elliot Koffman 美国一流的计算机科学教育家。坦普尔大学计算机和信息科学系教授,有近40年的教学经验。他曾经担任ACM Task Force的主席。已出版著作数十部,其中包括多种非常成功的编程语言教材。
.. << 查看详细
目录回到顶部↑
第0章 计算机科学的职业之路
引言
1.1 为什么选择计算机科学领域
1.1.1 将计算机科学作为专业的理由
1.1.2 计算机科学家的特质
1.2 大学经历:可选的计算机学科和专业
1.2.1 计算机科学
1.2.2 计算机工程
1.2.3 信息系统
1.2.4 信息技术
1.2.5 软件工程
1.2.6 交叉学科
1.3 就业机会
1.3.1 美国和全世界的需求
1.3.2 非代表性群体的需求
1.3.3 新职业持续出现
第1章 计算机与程序设计概述
1.1 电子计算机的过去和现在
1.2 计算机硬件
1.2.1 存储器
引言
1.1 为什么选择计算机科学领域
1.1.1 将计算机科学作为专业的理由
1.1.2 计算机科学家的特质
1.2 大学经历:可选的计算机学科和专业
1.2.1 计算机科学
1.2.2 计算机工程
1.2.3 信息系统
1.2.4 信息技术
1.2.5 软件工程
1.2.6 交叉学科
1.3 就业机会
1.3.1 美国和全世界的需求
1.3.2 非代表性群体的需求
1.3.3 新职业持续出现
第1章 计算机与程序设计概述
1.1 电子计算机的过去和现在
1.2 计算机硬件
1.2.1 存储器
译者序回到顶部↑
随着面向对象编程和可视化集成开发工具的发展,很多曾经非常流行的编程语言的影响力正在下降,甚至逐渐消失,但有一种语言例外,它就是C语言!时光的流逝丝毫没有减少C的魅力,它的风采依然。
作者高屋建瓴,向初学者分析了选择计算机科学作为职业的理由,并对计算机科学中的主流方向进行了分类,阐述了各个方向的相关课程、需要具备的能力,以及未来就业的方向。这些内容对所有学习C语言的人都是必须了解的。
因为C语言所涉及的概念比较复杂,规则繁多,用法灵活,容易出错,所以很多初学者感到无从下手。初学者通常很难理解C语言的某些概念,虽然非常渴望学好C语言,但往往因为难学而望而却步。更为突出的是,很多学生虽然掌握了C语言的各个知识点,但在解决实际问题时,却仍然不知所措,而本书的宗旨正是强调如何利用C语言解决问题,相信读完本书之后,读者在解决问题方面一定会有豁然开朗的感觉。
本书还具备许多其他书籍没有的特色。
在介绍新的概念之前,通常先引入一个贴切有趣的应用示例,这样做有助于调动初学者的兴趣,使初学者对概念能够顺利理解。
程序设计思想的介绍和C语言语法的讲述双管齐下,使学生先理解程序设计的宏观概念,然后在此基础上学习C语言的具体语法,有助于加深其对C语言的理解,增强其驾驭C语言的能力,在实际应用中做到举一反三,灵活应变。
结构图的采用使得本书图文并茂,例程代码清晰完整,为学生仔细研读程序提供了可能。
每章都有一个来自于具体应用的完整的实例研究,虽然由于国情不同,对某些应用的细节国内读者可能并不熟悉,但这些实例却能够使读者在贴近现实的环境中应用所学到的C语言知识,这也是本书的亮点之一。
各章均指出了常出现的错误,为初学者提供了宝贵的实践经验。
书中很多地方涉及程序风格,这一点是国内书籍涉及甚少的一方面,根据译者的教学经验,这一点相当重要。国内学生在这方面欠缺甚多,通常都认为程序风格不如编写程序重要,然而良好的程序风格将会使每一个从事程序设计的人受益无穷,对于学习程序设计的学生更显得尤为重要。
本书是为计算机科学专业低年级本科生以及众多其他学科的初学者或自学者编写的C语言课程教材,也可供那些已有一些C语言基础但还想进一步提高的读者参考。
参加本书翻译工作的人员有万波、潘蓉、郑海红等。此外特别感谢我的妻子孟广兰在英语语言方面提供的帮助。衷心感谢人民邮电出版社图灵公司的编辑所做的大量细致的工作。
由于时间仓促,译者水平有限,译文中难免还存在不少纰漏和欠妥之处,恳请广大读者不吝赐教和指正。
万波
2009年9月 于西安电子科技大学
作者高屋建瓴,向初学者分析了选择计算机科学作为职业的理由,并对计算机科学中的主流方向进行了分类,阐述了各个方向的相关课程、需要具备的能力,以及未来就业的方向。这些内容对所有学习C语言的人都是必须了解的。
因为C语言所涉及的概念比较复杂,规则繁多,用法灵活,容易出错,所以很多初学者感到无从下手。初学者通常很难理解C语言的某些概念,虽然非常渴望学好C语言,但往往因为难学而望而却步。更为突出的是,很多学生虽然掌握了C语言的各个知识点,但在解决实际问题时,却仍然不知所措,而本书的宗旨正是强调如何利用C语言解决问题,相信读完本书之后,读者在解决问题方面一定会有豁然开朗的感觉。
本书还具备许多其他书籍没有的特色。
在介绍新的概念之前,通常先引入一个贴切有趣的应用示例,这样做有助于调动初学者的兴趣,使初学者对概念能够顺利理解。
程序设计思想的介绍和C语言语法的讲述双管齐下,使学生先理解程序设计的宏观概念,然后在此基础上学习C语言的具体语法,有助于加深其对C语言的理解,增强其驾驭C语言的能力,在实际应用中做到举一反三,灵活应变。
结构图的采用使得本书图文并茂,例程代码清晰完整,为学生仔细研读程序提供了可能。
每章都有一个来自于具体应用的完整的实例研究,虽然由于国情不同,对某些应用的细节国内读者可能并不熟悉,但这些实例却能够使读者在贴近现实的环境中应用所学到的C语言知识,这也是本书的亮点之一。
各章均指出了常出现的错误,为初学者提供了宝贵的实践经验。
书中很多地方涉及程序风格,这一点是国内书籍涉及甚少的一方面,根据译者的教学经验,这一点相当重要。国内学生在这方面欠缺甚多,通常都认为程序风格不如编写程序重要,然而良好的程序风格将会使每一个从事程序设计的人受益无穷,对于学习程序设计的学生更显得尤为重要。
本书是为计算机科学专业低年级本科生以及众多其他学科的初学者或自学者编写的C语言课程教材,也可供那些已有一些C语言基础但还想进一步提高的读者参考。
参加本书翻译工作的人员有万波、潘蓉、郑海红等。此外特别感谢我的妻子孟广兰在英语语言方面提供的帮助。衷心感谢人民邮电出版社图灵公司的编辑所做的大量细致的工作。
由于时间仓促,译者水平有限,译文中难免还存在不少纰漏和欠妥之处,恳请广大读者不吝赐教和指正。
万波
2009年9月 于西安电子科技大学
前言回到顶部↑
本书教给读者怎样用训练有素的方法来解决问题,并应用广为接受的软件工程方法将程序解决方案设计为内聚的、可读的、可复用的模块。本书将ANSI C的一个子集作为这些模块的实现工具进行介绍,ANSI C是一种标准化的、在行业中广泛使用的编程语言,功能强大,可移植性好。本书可以用于程序设计方法的第一门课程,因为它不要求计算机和程序设计的预备知识;此外,书中选择了大量实例研究和练习,教师完全可以用本书为计算机科学专业或其他专业的学生开设一门导论性的C语言程序设计课程。
本版的更新
本版中增加了新的第0章,这一章向刚入门的学生介绍了计算机领域的构成和各方向的发展机会。我们希望这一章引导学生展望未来世界,激励他们认真考虑选修计算机方向。另外,第1章中硬件方面的内容已经有了重大的更新,涵盖了自上一版以来的技术最新发展。最后,我还修订和增强了实例研究和章末项目中的许多地方,以便给读者一个全新的感受。
用C来教授程序开发
本书有两个目标,讲授程序设计以及讲授C,这在某些人看来可能是矛盾的。很多人认为应该先用其他更加友好的语言学习编程基础之后再学习C语言。C语言之所以被认为非常难,可以追溯到它的历史。C语言是作为编写UNIX操作系统的工具而设计的,它最初的使用者就是理解操作系统和底层机器复杂性的程序员,这些使用者认为在其程序中利用这些底层知识很自然。所以,许多讲授C语言的教材展示给学生的程序示例都需要理解机器概念就不足为奇了,尽管这些概念并没有出现在标准的导论性程序设计课程的大纲中。
本书之所以能既讲授程序开发的正确方法又讲授ANSI C语言,是因为我们选择前者作为最主要的目标。有人可能会担心这种选择会弱化对ANSI C的阐述。事实正相反,我们发现将程序设计的概念和这些概念在C中的实现相结合,能够清晰地展示C作为一种高级编程语言所具备的威力,而这一点在那些以介绍ANSI C所有内容为主的教科书中往往是很模糊的。虽然与讨论C语言特征相比我们更强调程序设计的方法,但本书仍然全面讲述了C的基本结构。
指针与本书的组织
书中C语言各主题出现的顺序是按照我们理解的初级编程者的需要确定的,而不是由C语言的结构决定的。读者会惊奇地发现没有标题为“指针”的章节。这是因为我们将C当作一种高级语言来讨论,而并不是忽视了指针在C语言中的重要作用。
其他高级语言在输出参数和数组方面具有独立的语言结构,但C语言将这些概念包装在它的指针概念中,这明显增加了学习的难度。本书在涉及的地方分散地讨论指针,从而简化了学习过程,使得学生能够每次吸收一点指针用法的精髓。这种方法便于用传统的高级语言术语(输出参数、数组、数组下标和字符串)来表示基本概念,方便了没有汇编语言背景的学生掌握指针的多种用法。
因此,本书不是用1章而是用4章来讲解指针。第6章讨论了指针作为输出和输入/输出参数的用法,第8章和数组一起讨论,第9章讲述了字符串和指针数组,第14章在回顾了以前讨论的指针用法后描述了动态内存分配。此外,第2章和第12章讨论了文件指针。
软件工程概念
本书涉及了软件工程的许多方面,其中有一些是明确讨论的,而另外一些则是通过例子讲解的。良好的问题解决技巧和有效的软件开发之间的联系在第1章讨论问题解决的科学和艺术时就已经讲到了。第1章给出的5步软件开发方法适用于第一个实例研究,并贯彻于本书的其他实例研究中。重要的程序风格用特定方式突出显示,而且示例中使用的编码风格符合软件行业的规范要求。有几章还讨论了算法跟踪、程序调试和测试。
第3章通过介绍部分C库函数、无参数void函数以及接受输入参数并返回值的函数讲解了过程抽象。第4章和第5章包括更多的函数示例,第6章研究具有简单参数的函数,还讨论了使用指针表示输出和输入/输出参数,第7章介绍怎样把函数作为参数使用。
第6章、第8章和第11章的实例研究和示例程序介绍了数据抽象的概念以及数据类型和运算符封装的概念。第13章给出在个人库中规范过程抽象和数据抽象的C工具,这些个人库由单独的头文件和实现文件定义。第16章介绍C++实现的面向对象设计概念。
整本书中强调了可视函数接口的使用。直到第13章才提到使用全局变量的可能性,然后仔细地描述了使用全局变量的优点和危害。
教学辅助内容
我们使用以下教学辅助内容来增强本书作为学习工具的实用性。
小节末尾的练习。大部分小节结尾都有自测练习,分为需要分析程序段的练习和简短的编程练习。部分自测练习的答案在http://cssupport.pearsoncmg.com上的“Hanly/Koffman”目录中可以找到。
示例和实例研究。本书包含各种各样的编程示例。只要可能,示例就给出完整的程序或函数而不是未完成的程序片段。每一章都包含一个或多个具有实际意义的实例研究,而且都遵循软件开发方法来解决。大量实例研究让学生看到了计算的重要应用,包括数据库查询、用于记账和销售分析的商业应用、字处理以及诸如辐射等级监测和节约用水等有关环境的应用。
语法展示框。语法展示框描述了语法和新的C特性的语义并给出了例子。
本版的更新
本版中增加了新的第0章,这一章向刚入门的学生介绍了计算机领域的构成和各方向的发展机会。我们希望这一章引导学生展望未来世界,激励他们认真考虑选修计算机方向。另外,第1章中硬件方面的内容已经有了重大的更新,涵盖了自上一版以来的技术最新发展。最后,我还修订和增强了实例研究和章末项目中的许多地方,以便给读者一个全新的感受。
用C来教授程序开发
本书有两个目标,讲授程序设计以及讲授C,这在某些人看来可能是矛盾的。很多人认为应该先用其他更加友好的语言学习编程基础之后再学习C语言。C语言之所以被认为非常难,可以追溯到它的历史。C语言是作为编写UNIX操作系统的工具而设计的,它最初的使用者就是理解操作系统和底层机器复杂性的程序员,这些使用者认为在其程序中利用这些底层知识很自然。所以,许多讲授C语言的教材展示给学生的程序示例都需要理解机器概念就不足为奇了,尽管这些概念并没有出现在标准的导论性程序设计课程的大纲中。
本书之所以能既讲授程序开发的正确方法又讲授ANSI C语言,是因为我们选择前者作为最主要的目标。有人可能会担心这种选择会弱化对ANSI C的阐述。事实正相反,我们发现将程序设计的概念和这些概念在C中的实现相结合,能够清晰地展示C作为一种高级编程语言所具备的威力,而这一点在那些以介绍ANSI C所有内容为主的教科书中往往是很模糊的。虽然与讨论C语言特征相比我们更强调程序设计的方法,但本书仍然全面讲述了C的基本结构。
指针与本书的组织
书中C语言各主题出现的顺序是按照我们理解的初级编程者的需要确定的,而不是由C语言的结构决定的。读者会惊奇地发现没有标题为“指针”的章节。这是因为我们将C当作一种高级语言来讨论,而并不是忽视了指针在C语言中的重要作用。
其他高级语言在输出参数和数组方面具有独立的语言结构,但C语言将这些概念包装在它的指针概念中,这明显增加了学习的难度。本书在涉及的地方分散地讨论指针,从而简化了学习过程,使得学生能够每次吸收一点指针用法的精髓。这种方法便于用传统的高级语言术语(输出参数、数组、数组下标和字符串)来表示基本概念,方便了没有汇编语言背景的学生掌握指针的多种用法。
因此,本书不是用1章而是用4章来讲解指针。第6章讨论了指针作为输出和输入/输出参数的用法,第8章和数组一起讨论,第9章讲述了字符串和指针数组,第14章在回顾了以前讨论的指针用法后描述了动态内存分配。此外,第2章和第12章讨论了文件指针。
软件工程概念
本书涉及了软件工程的许多方面,其中有一些是明确讨论的,而另外一些则是通过例子讲解的。良好的问题解决技巧和有效的软件开发之间的联系在第1章讨论问题解决的科学和艺术时就已经讲到了。第1章给出的5步软件开发方法适用于第一个实例研究,并贯彻于本书的其他实例研究中。重要的程序风格用特定方式突出显示,而且示例中使用的编码风格符合软件行业的规范要求。有几章还讨论了算法跟踪、程序调试和测试。
第3章通过介绍部分C库函数、无参数void函数以及接受输入参数并返回值的函数讲解了过程抽象。第4章和第5章包括更多的函数示例,第6章研究具有简单参数的函数,还讨论了使用指针表示输出和输入/输出参数,第7章介绍怎样把函数作为参数使用。
第6章、第8章和第11章的实例研究和示例程序介绍了数据抽象的概念以及数据类型和运算符封装的概念。第13章给出在个人库中规范过程抽象和数据抽象的C工具,这些个人库由单独的头文件和实现文件定义。第16章介绍C++实现的面向对象设计概念。
整本书中强调了可视函数接口的使用。直到第13章才提到使用全局变量的可能性,然后仔细地描述了使用全局变量的优点和危害。
教学辅助内容
我们使用以下教学辅助内容来增强本书作为学习工具的实用性。
小节末尾的练习。大部分小节结尾都有自测练习,分为需要分析程序段的练习和简短的编程练习。部分自测练习的答案在http://cssupport.pearsoncmg.com上的“Hanly/Koffman”目录中可以找到。
示例和实例研究。本书包含各种各样的编程示例。只要可能,示例就给出完整的程序或函数而不是未完成的程序片段。每一章都包含一个或多个具有实际意义的实例研究,而且都遵循软件开发方法来解决。大量实例研究让学生看到了计算的重要应用,包括数据库查询、用于记账和销售分析的商业应用、字处理以及诸如辐射等级监测和节约用水等有关环境的应用。
语法展示框。语法展示框描述了语法和新的C特性的语义并给出了例子。
媒体评论回到顶部↑
“我连续几个学期使用本书作为教材,教授程序设计课程。学生都认为它可读性很强。……我认为本书极好地介绍了如何编程以及如何使用C语言……我强烈推荐这本教材,无论是课堂教学还是个人自学,都十分合适。”
——Dan Grecu,伍斯特理工学院
“如果你想学习编程,用C作为实现语言,那么本书将是最好的选择之一。”
——Francis Glassborow,ACCU(C/C++用户协会)前主席
——Dan Grecu,伍斯特理工学院
“如果你想学习编程,用C作为实现语言,那么本书将是最好的选择之一。”
——Francis Glassborow,ACCU(C/C++用户协会)前主席
相关资源回到顶部↑
· 【推荐】众多高校学子口口相传,他们共同的选择--华清远见嵌入式学院(嵌入式Linux就业课程、3G手机开发就业课程,通过入学测试即签100%就业协议,4个月集中实训,世界500强企业成功就业保障!!!)· 【亚嵌教育 嵌入式培训专家】(嵌入式培训,嵌入式Linux培训,ARM培训,Linux培训,3G培训,Android培训,WINCE培训,DSP培训,FPGA培训,嵌入式就业培训)
· 程序员的7种武器(正则表达式、编程语言、数据库、算法、软件调试、开发环境)
· C/C++ 经典著作(《C专家编程》《C++ Templates中文版》《C和指针 》《C陷阱与缺陷》《C++沉思录》)
· 图灵公司详细书目
评论交流
共有10人开贴评论 12人参与评论 2人参与打分 查看
发表于:2011-4-13 9:41:00
作为目前业界广泛使用的编程语言,C++可谓包罗万象、博大精深。20年来,讲述C++的图书早已经汗牛充栋、层出不穷,但其中业界公认的完整涵盖C++ 标准的权威著作只有两部,曾经有评论将之喻为“倚天屠龙”。其中一部当然是C++之父Bjarne Stroustrup所著的《C++程序设计语言,特别版》(机械工业出版社),内容精辟深刻,但是要求较高,只适合有一定经验的程序员提升功力之用。而另一部就是《C++ Primer 中文版》(人民邮电出版社),自1989 年初版以来,历经多次修订,始终保持了内容全面准确、循序渐进、明快易读的特色,早已奠定了无可替代的经典地位。原版到第3版就累积销售了45万册以上,第3版的中文版引入国内时,也产生了极大影响,甚至曾经出现过洛阳纸贵的局面。
而2010,作为C++语言的发明人Stroustrup出版了他的另一部新作《C++程序设计原理与实践》,这是我见过的唯一一本不以语法为主线索的教材,它是以实践需要来逐次引入相关语法的。对于初学者,最重要的是建立自信。若以语法为主线,也许教材已经看了大半,可还没有实现过第一个完整程序,所有知识点都是完全依靠记忆的,而往往需要记的东西越多,人就越不自信。有多少人都曾经经历多,教材都看完了,可觉得自己还啥程序都不会编。你想想有谁能比 C++之父更了解C++呢。而《C++ Primer》之所以很多人认为不适合初学者,就是因为列出了太多的语法细节,以至于成为了一本手册,虽然这么多细节是成为中高级C++程序员的必须。
C++ 图书三国局面出现,三本都是传世经典,你会选择哪一本呢?
而2010,作为C++语言的发明人Stroustrup出版了他的另一部新作《C++程序设计原理与实践》,这是我见过的唯一一本不以语法为主线索的教材,它是以实践需要来逐次引入相关语法的。对于初学者,最重要的是建立自信。若以语法为主线,也许教材已经看了大半,可还没有实现过第一个完整程序,所有知识点都是完全依靠记忆的,而往往需要记的东西越多,人就越不自信。有多少人都曾经经历多,教材都看完了,可觉得自己还啥程序都不会编。你想想有谁能比 C++之父更了解C++呢。而《C++ Primer》之所以很多人认为不适合初学者,就是因为列出了太多的语法细节,以至于成为了一本手册,虽然这么多细节是成为中高级C++程序员的必须。
C++ 图书三国局面出现,三本都是传世经典,你会选择哪一本呢?
| 我要写评论 |
| 查看所有评论交流(共10条) |


点击看大图







加载中...
