C语言的科学与艺术
基本信息
编辑推荐
一本计算机科学的经典教材,强调软件工程和优秀的程序设计风格。本书是美国斯坦福大学,哥伦比亚大学和上海交通大学等高校使用教材。
内容简介回到顶部↑
本书是计算机科学的经典教材,介绍了计算机科学的基础知识和程序设计的专门知识。本书以介绍ANSI C为主线,不仅涵盖C语言的基本知识,而且介绍了软件工程技术以及如何应用良好的程序设计风格进行开发等内容。本书采用了库函数的方法,强调抽象的原则,详细阐述了库和模块化开发。此外,本书还利用大量实例讲述解决问题的全过程,对开发过程中常见的错误也给出了解决和避免的方法。本书既可作为高等院校计算机科学入门课程及C语言入门课程的教材,也是C语言开发人员的极佳参考书。
作译者回到顶部↑
本书提供作译者介绍
Eric S.Roberts美国斯坦福大学计算机科学系教授,也是该系主管教学事务的副主任,同时他还是工学院的Charles Simonyi讲席教授。他于1980年在哈佛大学应用数学系获得博士学位,并曾在DEC公司位于加州Palo Alto的系统研究中心做过5年的研究工作。作为一位获得高度评价的教育工作者,Roberts还因其在本科生教学中的杰出贡献获得了1993年的Bing Award奖。他的另一本书《C程序设计的抽象思维》(Programming Abstractions in C:A Second Course in Computer Science)的英文影印版已由机械工业出版.. << 查看详细
目录回到顶部↑
出版者的话
专家指导委员会
译者序
前言
第1章 概述
1.1 计算简史
1.2 什么是计算机科学
1.3 计算机硬件简介
1.4 算法
1.5 程序设计语言和编译
1.6 编程错误和调试
1.7 软件维护
1.8 软件工程的重要性
1.9 关于c程序设计语言的一些思考
小结
复习题
第一部分 c语言程序设计基础
第2章 通过例子学习
2.1 "hello world"程序
2.2 两个数的加法程序
专家指导委员会
译者序
前言
第1章 概述
1.1 计算简史
1.2 什么是计算机科学
1.3 计算机硬件简介
1.4 算法
1.5 程序设计语言和编译
1.6 编程错误和调试
1.7 软件维护
1.8 软件工程的重要性
1.9 关于c程序设计语言的一些思考
小结
复习题
第一部分 c语言程序设计基础
第2章 通过例子学习
2.1 "hello world"程序
2.2 两个数的加法程序
译者序回到顶部↑
随着计算机产业的迅速发展,对计算机专业人才的需求也日益迫切。而程序设计是所有计算机专业人才必备的基础知识和技能。俗话说"万事开头难",如何使学生顺利地进入程序设计的大门,如何熟悉和精通程序设计,也是计算机专业教学的难题。
本书是一本计算机科学的经典教材,是作者二十多年来从事计算机教学的经验的总结,它提供了丰富的计算机科学的基础知识和程序设计的专门知识。本书具有鲜明的特色。首先,用ANSI C作为教学语言。C语言是目前使用最广泛的教学语言,选用C语言可以使学生毕业后很快就能投入实际工作,并为学习C++和面向对象的语言铺平了道路。第二,采用了基于库函数的方法,强调抽象的原则。本书相当详细地介绍了库和模块化开发,介绍了如何通过库隐藏程序的复杂性,这些是现代程序设计的基本概念。第三,在程序设计中最重要的是从陈述问题过渡到解决问题,本书以通俗易懂的方式讲述了这一过程,使学生能轻松而有趣地学习程序设计。
程序设计既是一门科学,也是一门艺术。学习良好的程序设计需要掌握很多知识,而不只是记住一组规则。必须通过实践以及阅读其他程序来学习。本书包括大量的程序实例,这些实例说明了如何用C语句建立一个完整的程序,如何培养良好的程序设计风格。每章都用丰富的复习题作为知识点的总结,并包含大量的程序设计练习让读者自己动手做更多的程序设计项目。
正是因为本书具有的上述优点,我们认为把本书译成中文能让更多的学生从中获益,从而打下扎实的程序设计的基础。
参加本书翻译工作的有翁惠玉、张冬茉、杨鑫和蒋文新,由翁惠玉对全书进行审校。本书也是上海交通大学《程序设计》课程所选用的教材。在翻译过程中得到了整个课程小组十多位教师的大力帮助,在此表示衷心的感谢。由于时间和水平的限制,书中难免有错漏之处,敬请读者指正。
译者
2004年8月
本书是一本计算机科学的经典教材,是作者二十多年来从事计算机教学的经验的总结,它提供了丰富的计算机科学的基础知识和程序设计的专门知识。本书具有鲜明的特色。首先,用ANSI C作为教学语言。C语言是目前使用最广泛的教学语言,选用C语言可以使学生毕业后很快就能投入实际工作,并为学习C++和面向对象的语言铺平了道路。第二,采用了基于库函数的方法,强调抽象的原则。本书相当详细地介绍了库和模块化开发,介绍了如何通过库隐藏程序的复杂性,这些是现代程序设计的基本概念。第三,在程序设计中最重要的是从陈述问题过渡到解决问题,本书以通俗易懂的方式讲述了这一过程,使学生能轻松而有趣地学习程序设计。
程序设计既是一门科学,也是一门艺术。学习良好的程序设计需要掌握很多知识,而不只是记住一组规则。必须通过实践以及阅读其他程序来学习。本书包括大量的程序实例,这些实例说明了如何用C语句建立一个完整的程序,如何培养良好的程序设计风格。每章都用丰富的复习题作为知识点的总结,并包含大量的程序设计练习让读者自己动手做更多的程序设计项目。
正是因为本书具有的上述优点,我们认为把本书译成中文能让更多的学生从中获益,从而打下扎实的程序设计的基础。
参加本书翻译工作的有翁惠玉、张冬茉、杨鑫和蒋文新,由翁惠玉对全书进行审校。本书也是上海交通大学《程序设计》课程所选用的教材。在翻译过程中得到了整个课程小组十多位教师的大力帮助,在此表示衷心的感谢。由于时间和水平的限制,书中难免有错漏之处,敬请读者指正。
译者
2004年8月
前言回到顶部↑
作者简介
Eric S. Roberts第一次教授计算机科学入门课程是在20多年前,当时他还是一名哈佛学子。1980年获得博士学位以来,Roberts先后在哈佛、韦尔斯利、斯坦福大学教授计算机科学课程。在斯坦福大学,Roberts担任计算机科学系副主任,并负责本科生的计算机科学课程。虽然Roberts也教授计算机科学的高级课程并作一些研究工作,但他最大的乐趣还是向初学者展示计算机的强大功能。
在斯坦福大学任教的同时,Roberts自1990年起还担任计算机专业协会主席。这是一个由计算机专业人士组成的公益团体,在全美有22个分会,2000名会员。计算机在多方面影响着我们的社会。学习有关计算机的技术固然重要,但确保计算机服务于社会也很重要。
若读者发现本书中有表述不清楚的地方或错误之处,恳请不吝赐教。请通过Roberts的电子邮箱ericr@aw.com与他联系。
致学生
欢迎你!拿起这本书,你就迈进了计算机科学的世界--这门学科出现在半世纪以前,现在却成为这个时代最具生机和活力的学科之一。
在几十年的发展过程中,计算机几乎使所有领域中看似不可能的事情成为可能。由于计算机可在瞬间将信息传递到任何地方,所以今天的企业家能以空前的规模经营跨国公司。由于计算机可进行必要的、但人工很难完成的计算,科学家才能解决许多问题。电影人利用计算机制作出更具感染力的视觉效果。由于计算机能处理医学中大量的信息处理,因此医生能对患者的病情做出更精确的诊断。
计算机技术正在飞速发展。目前我们已经看到的优势与新的世纪将要经历的发展相比肯定将相形见绌。最近50年,计算机已经对世界产生了深远影响,在新的世纪亦将如此。今日的学生将会是执行这项伟大的工程的中流砥柱。要做到这一点,就必须懂得如何使用计算机。
和其他值得掌握的技能一样,理解计算机的工作原理以及学会怎样控制它们是需要花费时间的。这一切不可能一蹴而就,必须从某个起点开始循序渐进。2500年前,中国的哲学家老子曾说过:"千里之行,始于足下"。本书就是一个很好的起点。
然而对很多人来说,万事开头难。许多学生在计算机面前束手无策,认为计算机科学超出了他们的理解范围。可是基本的程序设计并不需要具备高等数学和电子学的知识。在程序设计中,最重要的是能否从陈述问题过渡到解决问题。要做到这一点,就必须以逻辑方式考虑问题。训练自己用计算机能够理解的方式表达自己的逻辑。最重要的是,不要被困难和挫折压倒,要坚持到底。若能坚持下来,就会发现解决问题是件多么令人兴奋的事情,它所带来的喜悦足以让你忘却学习过程中遇到的任何挫折。
本书旨在教授程序设计基础和C语言基础。C语言是当今计算机产业中处于主导地位的程序设计语言。本书不但介绍了程序设计中的"为什么",还介绍了"如何做",使读者对程序设计有总体的印象。为使读者避免出现那些阻碍学习的错误,本书在结构上做出了精心安排,可以帮助读者掌握重点。接下来将总结本书在结构上的一些独具匠心之处,并说明如何在学习过程中高效地利用本书。
本书的特色
为了使本书在学习C语言的过程中发挥最大的作用,首先要充分了解本书的一些特色。
1)本书的每一章都包含一些指导读者学习以及掌握主题的材料。
·学习目标中列出了该章包含的关键内容。因为每个目标都与一个具体的技能相关,所以该章的学习目标有助于你评估自己对基本知识的掌握程度。
·小结部分详细地描述了你应该学到的与学习目标部分相关的知识。
2)程序设计既是一门科学,也是一门艺术。形成良好的程序设计风格需要掌握很多知识,而不只是记住一组规则。你必须通过实践并阅读其他程序来不断学习。书中在介绍程序设计时的一些特色可以为你提供帮助。
·本书包括大量的程序实例,这些实例说明了如何用c语句建立一个完整的程序。这些实例也可作为你自己设计程序时的模型。在许多情况下,你可以对书中的程序作简单的修 改来解决一个新的程序设计问题。
·实例输出具有统一的格式,都是用一个带圆角的方框模拟计算机的屏幕。输入用黑体 表示。
·语法框总结C语法的主要规则,对关键程序设计概念作简单的回顾。
Eric S. Roberts第一次教授计算机科学入门课程是在20多年前,当时他还是一名哈佛学子。1980年获得博士学位以来,Roberts先后在哈佛、韦尔斯利、斯坦福大学教授计算机科学课程。在斯坦福大学,Roberts担任计算机科学系副主任,并负责本科生的计算机科学课程。虽然Roberts也教授计算机科学的高级课程并作一些研究工作,但他最大的乐趣还是向初学者展示计算机的强大功能。
在斯坦福大学任教的同时,Roberts自1990年起还担任计算机专业协会主席。这是一个由计算机专业人士组成的公益团体,在全美有22个分会,2000名会员。计算机在多方面影响着我们的社会。学习有关计算机的技术固然重要,但确保计算机服务于社会也很重要。
若读者发现本书中有表述不清楚的地方或错误之处,恳请不吝赐教。请通过Roberts的电子邮箱ericr@aw.com与他联系。
致学生
欢迎你!拿起这本书,你就迈进了计算机科学的世界--这门学科出现在半世纪以前,现在却成为这个时代最具生机和活力的学科之一。
在几十年的发展过程中,计算机几乎使所有领域中看似不可能的事情成为可能。由于计算机可在瞬间将信息传递到任何地方,所以今天的企业家能以空前的规模经营跨国公司。由于计算机可进行必要的、但人工很难完成的计算,科学家才能解决许多问题。电影人利用计算机制作出更具感染力的视觉效果。由于计算机能处理医学中大量的信息处理,因此医生能对患者的病情做出更精确的诊断。
计算机技术正在飞速发展。目前我们已经看到的优势与新的世纪将要经历的发展相比肯定将相形见绌。最近50年,计算机已经对世界产生了深远影响,在新的世纪亦将如此。今日的学生将会是执行这项伟大的工程的中流砥柱。要做到这一点,就必须懂得如何使用计算机。
和其他值得掌握的技能一样,理解计算机的工作原理以及学会怎样控制它们是需要花费时间的。这一切不可能一蹴而就,必须从某个起点开始循序渐进。2500年前,中国的哲学家老子曾说过:"千里之行,始于足下"。本书就是一个很好的起点。
然而对很多人来说,万事开头难。许多学生在计算机面前束手无策,认为计算机科学超出了他们的理解范围。可是基本的程序设计并不需要具备高等数学和电子学的知识。在程序设计中,最重要的是能否从陈述问题过渡到解决问题。要做到这一点,就必须以逻辑方式考虑问题。训练自己用计算机能够理解的方式表达自己的逻辑。最重要的是,不要被困难和挫折压倒,要坚持到底。若能坚持下来,就会发现解决问题是件多么令人兴奋的事情,它所带来的喜悦足以让你忘却学习过程中遇到的任何挫折。
本书旨在教授程序设计基础和C语言基础。C语言是当今计算机产业中处于主导地位的程序设计语言。本书不但介绍了程序设计中的"为什么",还介绍了"如何做",使读者对程序设计有总体的印象。为使读者避免出现那些阻碍学习的错误,本书在结构上做出了精心安排,可以帮助读者掌握重点。接下来将总结本书在结构上的一些独具匠心之处,并说明如何在学习过程中高效地利用本书。
本书的特色
为了使本书在学习C语言的过程中发挥最大的作用,首先要充分了解本书的一些特色。
1)本书的每一章都包含一些指导读者学习以及掌握主题的材料。
·学习目标中列出了该章包含的关键内容。因为每个目标都与一个具体的技能相关,所以该章的学习目标有助于你评估自己对基本知识的掌握程度。
·小结部分详细地描述了你应该学到的与学习目标部分相关的知识。
2)程序设计既是一门科学,也是一门艺术。形成良好的程序设计风格需要掌握很多知识,而不只是记住一组规则。你必须通过实践并阅读其他程序来不断学习。书中在介绍程序设计时的一些特色可以为你提供帮助。
·本书包括大量的程序实例,这些实例说明了如何用c语句建立一个完整的程序。这些实例也可作为你自己设计程序时的模型。在许多情况下,你可以对书中的程序作简单的修 改来解决一个新的程序设计问题。
·实例输出具有统一的格式,都是用一个带圆角的方框模拟计算机的屏幕。输入用黑体 表示。
·语法框总结C语法的主要规则,对关键程序设计概念作简单的回顾。
相关资源回到顶部↑
· 【推荐】众多高校学子口口相传,他们共同的选择--华清远见嵌入式学院(嵌入式Linux就业课程、3G手机开发就业课程,通过入学测试即签100%就业协议,4个月集中实训,世界500强企业成功就业保障!!!)· 【亚嵌教育 嵌入式培训专家】(嵌入式培训,嵌入式Linux培训,ARM培训,Linux培训,3G培训,Android培训,WINCE培训,DSP培训,FPGA培训,嵌入式就业培训)
· 程序员的7种武器(正则表达式、编程语言、数据库、算法、软件调试、开发环境)
· C/C++ 经典著作(《C专家编程》《C++ Templates中文版》《C和指针 》《C陷阱与缺陷》《C++沉思录》)
评论交流
共有29人开贴评论 44人参与评论 26人参与打分 查看
发表于:2009-11-22 20:35:00
本书虽然贯穿了一些软件工程的思想,但对C的特性和细节没有详尽的阐述,而是采取了将其封装入扩展库的做法,是C看似变得简单了,而读者如若不能理解其扩展库实现的话,那将学到是ERIC ROBERTS C,而不是C.除了教你此书的老师和上同一门课的同学,没有人使用作者所谓的扩展库,也不会认同,不学习标准库而去学习所谓扩展库,这根本就是本末倒置.
作者的封装似乎也太无度了,连(char *) malloc (... 1)都要封装成所谓CreatString,strlen就根本是直接换个名字封装成所谓Conlen,连微软都知道要用宏定义,而作者换名封装还要采用函数形式,我真怀疑他懂不懂效率.
再者,能有几个哪初学者去看这本书的扩展库实现,更不用说全部理解了,机械地教学本书就是愚弄学生.
强烈不推荐初学者使用本书,这本书适合有C基础并想强化程序设计思想的读者参考之用.
作者的封装似乎也太无度了,连(char *) malloc (... 1)都要封装成所谓CreatString,strlen就根本是直接换个名字封装成所谓Conlen,连微软都知道要用宏定义,而作者换名封装还要采用函数形式,我真怀疑他懂不懂效率.
再者,能有几个哪初学者去看这本书的扩展库实现,更不用说全部理解了,机械地教学本书就是愚弄学生.
强烈不推荐初学者使用本书,这本书适合有C基础并想强化程序设计思想的读者参考之用.
| 我要写评论 |
| 查看所有评论交流(共29条) |


点击看大图







加载中...
