C语言的科学和艺术

出版时间:2005-3  出版社:机械工业出版社  作者:罗伯茨  页数:498  译者:翁惠玉  
Tag标签:无  

内容概要

本书是计算机科学的经典教材,介绍了计算机科学的基础知识和程序设计的专门知识。本书以介绍ANSI C为主线,不仅涵盖C语言的基本知识,而且介绍了软件工程技术以及如何应用良好的程序设计风格进行开发等内容。本书采用了库函数的方法,强调抽象的原则,详细阐述了库和模块化开发。此外,本书还利用大量实例讲述解决问题的全过程,对开发过程中常见的错误也给出了解决和避免的方法。本书既可作为高等院校计算机科学入门课程及C语言入门课程的教材,也是C语言开发人员的极佳参考书。

作者简介

Eric S. Roberts,美国斯坦福大学计算机科学系教授,主管教学的系副主任。他由于教学改革的成就获得Charles Simonyi荣誉教授。Roberts于1980年获哈佛大学应用数学博士学位,其后他创建了威尔斯利学院的计算机科学系,并担任系主任。后来,他在加州Palo Alto的DEC公司系统

书籍目录

第1章 概述     1.1 计算简史     1.2 什么是计算机科学     1.3 计算机硬件简介      1.3.1 CPU      1.3.2 内存      1.3.3 辅助存储器      1.3.4 I/O设备     1.4 算法     1.5 程序设计语言和编译     1.6 编程错误和调试     1.7 软件维护     1.8 软件工程的重要性     1.9 关于C程序设计语言的一些思考     小结     复习题    第一部分 C语言程序设计基础 第2章 通过例子学习      2.1 “Hello world”程序       2.1.1 注释       2.1.2 库包含       2.1.3 主程序      2.2 两个数的加法程序       2.2.1 输入阶段       2.2.2 计算阶段       2.2.3 输出阶段      2.3 有关程序设计过程的观点      2.4 数据类型       2.4.1 浮点型数据       2.4.2 字符串类型的数据      2.5 表达式       2.5.1 常量       2.5.2 变量       2.5.3 赋值语句       2.5.4 运算符和操作数       2.5.5 整型数和浮点型数的结合       2.5.6 整数除法和求余运算符       2.5.7 优先级       2.5.8 优先级法则的应用       2.5.9 类型转换      小结      复习题      程序设计练习     第3章 问题求解      3.1 程序设计习语和范例       3.1.1 复合赋值习语       3.1.2 自增和自减运算符      3.2 解决规模稍大的问题      3.3 控制语句       3.3.1 重复N次习语       3.3.2 迭代和循环       3.3.3 下标变量       3.3.4 初始化的重要性       3.3.5 读入-直到-标志习语       3.3.6 创造一个更实用的应用程序       3.3.7 条件执行和if语句      3.4 一个调试练习      3.5 格式化输出       3.5.1 printf的格式码       3.5.2 控制空格、对齐方式和精度      3.6 构思一个程序       3.6.1 程序设计风格       3.6.2 设计时考虑将来的修改       3.6.3 #define机制     小结     复习题     程序设计练习     第4章 语句形式      4.1 简单语句       4.1.1 赋值的嵌套       4.1.2 多重赋值       4.1.3 程序块      4.2 控制语句      4.3 布尔型数据       4.3.1 关系运算符       4.3.2 逻辑运算符       4.3.3 简化求值      4.3.4 标志       4.3.5 避免布尔表达式中的冗余       4.3.6 布尔计算示例      4.4 if语句       4.4.1 单行if语句       4.4.2 多行if语句       4.4.3 if/else语句       4.4.4 级联if语句       4.4.5 ?: 运算符(可选的)       4.5 switch语句      4.6 while语句       4.6.1 while循环的应用       4.6.2 无限循环       4.6.3 解决半途退出问题      4.7 for语句       4.7.1 嵌套的for循环       4.7.2 for和while的关系       4.7.3 for语句中浮点型数据的使用问题      小结      复习题      程序设计练习     第5章 函数      5.1 使用库函数      5.2 函数声明      5.3 自己编写函数       5.3.1 return语句       5.3.2 将函数与主程序放在一起       5.3.3 包含内部控制结构的函数       5.3.4 返回非数字值的函数       5.3.5 谓词函数       5.3.6 测试字符串是否相等的谓词函数      5.4 函数调用过程机制       5.4.1 参数传递       5.4.2 在其他函数中调用函数      5.5 过程      5.6 逐步精化       5.6.1 从顶开始       5.6.2 实现PrintCalendar       5.6.3 实现PrintCalendarMonth       5.6.4 完成最后的片段      小结      复习题      程序设计练习     第6章 算法      6.1 测试素数       6.1.1 一个IsPrime的简单版本       6.1.2 验证一个策略是否表示一个算法       6.1.3 说明IsPrime算法的正确性       6.1.4 改进算法的效率       6.1.5 在各个可选方案中选择     6.2 计算最大公约数       6.2.1 brute-force算法       6.2.2 欧几里德算法       6.2.3 欧几里德算法的正确性说明(可选)       6.2.4 比较GCD算法的效率      6.3 数值算法       6.3.1 连续逼近       6.3.2 报告错误      6.4 级数展开       6.4.1 Zeno悖论       6.4.2 用级数展开法设计平方根函数       6.4.3 估计平方根的泰勒级数展开(可选)       6.4.4 泰勒级数近似的实现       6.4.5 停留在收敛半径之内      6.5 指定数值类型的大小       6.5.1 整数类型       6.5.2 无符号类型       6.5.3 浮点类型      小结      复习题      程序设计练习    第二部分 库和模块化开发……第三部分 复合数据类型附录

媒体关注与评论

  本书是一本计算机科学的经典教材,强调软件工程和优秀的程序设计风格。此外,学生还可以从书中学习到ANSI C的基础知识,这些内容已经成为计算机行业的标准。作者的写作风格使得书中深奥的概念变得易于理解和引人入胜。  本书集中讨论库和抽象的用法,这是当代程序设计技术中最基本的知识。作者使用库来隐藏C语言的复杂性,更加突出主题,使学生可以较好地掌握每一个主题的精髓。然后,进一步给出每个库的底层实现,较好地展示了自身的抽象威力。  本书从基础开始讲起,是C语言的入门教材。本书已经被美国斯坦福大学、哥伦比亚大学等多所大学和学院成功采用,在国内已被上海交通大学采用,是一本适合高等院校计算机及相关专业使用的优秀教材。  译者序  随着计算机产业的迅速发展,对计算机专业人才的需求也日益迫切。而程序设计是所有计算机专业人才必备的基础知识和技能。俗话说“万事开头难”,如何使学生顺利地进入程序设计的大门,如何熟悉和精通程序设计,也是计算机专业教学的难题。  本书是一本计算机科学的经典教材,是作者二十多年来从事计算机教学的经验的总结,它提供了丰富的计算机科学的基础知识和程序设计的专门知识。本书具有鲜明的特色。首先,用ANSI C作为教学语言。C语言是目前使用最广泛的教学语言,选用C语言可以使学生毕业后很快就能投入实际工作,并为学习C++和面向对象的语言铺平了道路。第二,采用了基于库函数的方法,强调抽象的原则。本书相当详细地介绍了库和模块化开发,介绍了如何通过库隐藏程序的复杂性,这些是现代程序设计的基本概念。第三,在程序设计中最重要的是从陈述问题过渡到解决问题,本书以通俗易懂的方式讲述了这一过程,使学生能轻松而有趣地学习程序设计。  程序设计既是一门科学,也是一门艺术。学习良好的程序设计需要掌握很多知识,而不只是记住一组规则。必须通过实践以及阅读其他程序来学习。本书包括大量的程序实例,这些实例说明了如何用C语句建立一个完整的程序,如何培养良好的程序设计风格。每章都用丰富的复习题作为知识点的总结,并包含大量的程序设计练习让读者自己动手做更多的程序设计项目。  正是因为本书具有的上述优点,我们认为把本书译成中文能让更多的学生从中获益,从而打下扎实的程序设计的基础。  参加本书翻译工作的有翁惠玉、张冬茉、杨鑫和蒋文新,由翁惠玉对全书进行审校。本书也是上海交通大学《程序设计》课程所选用的教材。在翻译过程中得到了整个课程小组十多位教师的大力帮助,在此表示衷心的感谢。由于时间和水平的限制,书中难免有错漏之处,敬请读者指正。  译者  2004年8月

图书封面

图书标签Tags

评论、评分、阅读与下载


    C语言的科学和艺术 PDF格式下载


用户评论 (总计33条)

 
 

  •   给大一学生的c语言教学就应该是这样的嘛,面向问题为主线,讲解了未来计算机专业学习中要面临的很多东西。而且后面的习题也很有意思,可惜没答案。

    我本来只当是快速复习一下c语言,没想到还从中学了很多东西。想想当时学的谭的那本,实在太晕。记得当时有个年级的学弟们竟然有一半人没及格,不知道是不是该换教练了。本来入门的书就不需要太注重语言细节,要不很难让初学者快速把握整体框架,树立信心,形成初步应用能力。反正我当时学了之后根本不知道c能用来做什么,至少书上那么多无聊的习题都不会给你什么兴趣。而这本书有组织顺序完全和谭的那本不同,从一个实际问题逐步展开,就象一位有经验的老师引领入门。要深入学习语言细节,去找本c语言大全好了。计算机只是工具,不从解决实际问题入手,培养良好的编程习惯,上来就讲一大堆语法细节,就算当时学的再好,放下那么多年还能记得多少?当然只是对我这样的一般人员,那些天生狂热的专业人员怎么都能学好的,只是这样的人太少。大多数人都在入门的时候被吓晕了,被一本也不怎么样的书和一些本来也不怎么样的教书匠。

    很多人不满意这本书用了自己的库,我也是。不过我想作者的水平当然远在我辈之上,可惜除此之外没法把c语言讲解地更通俗些吧,本来嘛人家也说c不是给初学编程的人用的。

    另外关于本书的配套资源,联系过出版社,也没回音。在cdsn上可以下代码库。还有这本书的纸质太脆,容易碎。机械工业的书是不是都有这问题?
  •   这个才是真正的程序设计语言的教学,针对问题的解决,而不是针对语法本身。
    若是早点知道这本书,我想我的C语言也就不用这么困难的学习了。
  •   学习C已经十多年前的事情了,买这本回来就是想温习一下。目前只看了40页,表达的看法可能比较片面。编写的方式与老谭那种从下而上的方式不同,先从大的面入手,整体概念把握的好,不干涩,读起来不费劲。条理很清楚,目录页设计的很好,查阅起来很方便,可以作为手边的参考书。
    需要反映的是,新书的第一页(相当于封面页的复印件)有缺损。不影响阅读,但感觉怪怪的。
  •   很好的一本书,适合初识C语言的人阅读,对C语言所涉及的知识让读者有一个了解,这样对以后所要学习的东西会是很好的指导。
  •   很不错的一本书,在大学毕业两年后又重拾C语言,这本书给了我大学时学C语言时想都没有想过的感受,五星级推荐
  •   必须好书,库是为这书自编的,还是慎用
  •   好书啊,这是一本C语言里难得的经典书啊
  •   写得很有水准 相比谭那本 只讲语法 不讲应用的中国特色的书籍,这门书让你了解更多的c应用
  •   这本书写的不错,值得一看!!!!!!!!!!!!!!
  •   内容充实,无论是初学者还是有一定编程经验的人,这都无疑是一部相当不错的好书!
  •   很好的书,就是发货慢了点,呵呵十分感谢!!!
  •   对现在的我作用不大,只是偶尔翻翻,希望在经典里有所得
  •   经典书籍没得说~~~~~
  •   老师推荐的书,准备好好研读。
  •   有和原书页数的对照,一起看挺舒服~~
  •   作为学习计算机的本科生中的一员,我认为C语言是一门非常重要的语言,是我们学习别的语言的基础,因此,在这个入门的阶段,我们应该考虑把一门计算机语言的原理弄明白,这是我们以后作计算机方面深入研究的要求,而本书这是这样的一个很好的教材,我强烈推荐本书作为大家的C语言的入门教材,如果有条件,最好看英文版哦~~
  •   语言挺通俗易懂的。只是没有计算机基础,也不知道好坏。
  •   对于初学者不太好理解.作者定义了很多库.直接用了很多自己定义库中的命令..对于初学者来说..很辛苦..可以结合别的书一起看.
  •   这本书确实适合学习c,书很不错。
  •   书的确是新的,但是从封皮上沿貌似被硬纸条拉过前几页都被拉坏了,虽然并不影响阅读,却影响到了其收藏的价值,要知道这可是现在很难找的一本绝版好书啊
  •   发货速度还行 内容不错 不过书的封面有点旧!
  •   帮同学买的,感觉还可以。
  •   容易看懂~~而且题目适中~~
  •   基础内容,翻译版的页面边沿有标明对应的英文版的页面。发现一页中文抵得上好几页英文内容。
  •   算一般,总体来说还是不错的,当一本教程来看还好,不过不够细致
  •   很明显的痕迹,在右上角,前几页纸都变形了。
  •   印刷有点模糊,纸张很薄,反面的字都模糊看到.
  •     本人初学者,所以比较头疼这一点。
      把作者的头文件都放在了编译器的include里面,但是运行时总提示GetInteger()未定义。不知道这些.c的文件该怎么处理。
      
      本人初学者,所以比较头疼这一点。
      把作者的头文件都放在了编译器的include里面,但是运行时总提示GetInteger()未定义。不知道这些.c的文件该怎么处理。
  •     哎,从这本书里才知道"库"这回事。
      后来大学时代所有的小作业都用了书中提供的那个超小的库来做。
      那时还不知道C++、STL,觉得那个库简直是世上少有,简洁逆天啊。
      曾经年少。
      现在已不是C、C++的少年,投入了Python,C#的阵营,一切只为省力。....我懒懒懒..
      
      怀念C、C++如风般的日子。
      
      还是要推荐,初学C,这个真的是个不错的选择。
  •      本书的作者因为对本科生的教育做出了杰出的贡献而获得了Bing Award奖,而这本书也正体现了他作为一名教师,深入浅出的教学方法和易于理解又引人入胜的行文风格。
       文中所用的例子也都非常符合本节所要讲述的内容,并且把不得以而用到的以后章节的知识以一种genlib库的形式封装了起来,隐藏了C的复杂性,从而避免了初学者的困惑。这样,在读完本书后,会发现,我们不仅仅学到了C的知识,而且把库的编写方法、习惯都潜移默化的留在了心中。在书中很多地方都会有作者关于软件工程和优秀程序设计风格的见解,如接口的编写等等,都对我们打下扎实基础起到了积极的作用。
       特别需要指出的一点是:这本书对于C语言中比较困难的部分:如指针、C风格字符串、数组和指针的关系、数组和字符串的关系,都有“一针见血”式的透彻分析,使初学者能够容易的明白其中的知识,也使有经验的读者能够抓住重点理解更加深入。对于这些比较精髓的知识,特别是指针和数组名的区别,会在文中多次被提醒:分配内存、左值!
       初学者在编程中,很少接触文件的操作,但是文件操作非常重要,无论初学者还是有一定经验的读者都应该对C标准库中的文件函数熟练的掌握,这本书对文件的介绍会让你有系统理解,而且对使用这些函数时常会犯的错误有先知一般的预见,从而避免了初学者遇到问题调试时的辛苦周折。
      
       如果非要说说这本书的缺点,我想就是,没有把genlib库的代码刻成cd附在书里,这多少会给初学者上机调试造成了不便,好在网上有这本书中的源代码和其他资源,而且书后也有完整的代码。其实换种思路想,这也可以算是一件好事,国内学生的动手能力差,那就应该在敲代码的同时把她理解了吧,呵呵,有点自虐倾向-_-b
      
       最后,无论如何,如果你想学习C语言,那么看看这本书吧,她很好的!(而且不必在乎什么“C语言已死”这样的胡说八道)作为一种应用最广的面向过程的语言,她会让你对计算机程序设计形成一种必要的经典的思考模式!
  •   好,真是没得话说。
  •   所有目前从事高级语言编程开发都适合熟读的一本书。真正融汇贯通这本书后,再看其他的书和了解其他的知识就会一目了然。
  •   几乎零基础能不能从这本初学呢?
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7