C程序设计再版前言

上传人:xinsh****encai 文档编号:27889589 上传时间:2021-08-21 格式:DOC 页数:6 大小:81.50KB
返回 下载 相关 举报
C程序设计再版前言_第1页
第1页 / 共6页
C程序设计再版前言_第2页
第2页 / 共6页
C程序设计再版前言_第3页
第3页 / 共6页
点击查看更多>>
资源描述
谭浩强教授:关于C程序设计(第四版)出版及学习程序设计问题的几点想法 2010-12-09 12:46文泉书局 在C程序设计(第4版)出版之际,作者想对学习程序设计问题提出以下几点看法:1. 为什么要学习程序设计 大学生不能满足于只会用办公软件,应当有更高的要求,对于理工科的学生尤其如此。 计算机的本质是“程序的机器”,程序和指令的思想是计算机系统中最基本的概念。程序设计是软件开发人员的基本功。只有懂得程序设计,才能进一步懂得计算机,真正了解计算机是怎样工作的。通过学习程序设计,学会进一步了解计算机的工作原理,更好地理解和应用计算机;掌握用计算机处理问题的方法;培养分析问题和解决问题的能力;具有编制程序的初步能力。即使将来不是计算机专业人员,由于学过程序设计,理解软件生产的特点和生产过程,就能与程序开发人员更好地沟通与合作,开展本领域中的计算机应用,开发与本领域有关的应用程序。 因此,无论计算机专业学生还是非计算机专业学生,都应当学习程序设计知识,并且把它作为进一步学习与应用计算机的基础。2. 为什么选择C语言 进行程序设计,必须用一种计算机语言作为工具,否则只是纸上谈兵。可供选择的语言很多,各有特点和应用领域。C语言功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好,既具有高级语言的优点,又具有低级语言的许多特点,既适于编写系统软件,又能方便地用来编写应用软件。有人以为C+语言出现后,C语言过时了,淘汰了,这是一种误解。C+是为处理较大规模的程序开发而研制的大型语言,它比C语言复杂得多,难学得多。事实上,将来并不是每个人都需要用C+编制大型程序。C语言是更为基本的。美国一位资深软件专家写了一篇文章,题目是“对计算机系学生的建议”,是经验之谈,可供参考。他说“大学生毕业前要学好C语言,C语言是当前程序员共同的语言。它使程序员互相沟通,比你在大学学到的现代语言(比如ML语言、Java语言、Python语言或者正在教授的流行语言)都更接近机器”。他指出: “不管你懂得多少延续、闭包、异常处理,只要你不能解释为什么while(s+=t+)的作用是复制字符串,那你就是在盲目无知的情况下编程,就像一个医生不懂最基本的解剖学就在开处方”。C语言更适合于解决某些小型程序的编程。C语言作为传统的面向过程的程序设计语言,在编写底层的设备驱动程序和内嵌应用程序时,往往是更好的选择。 现在大多数高校把C语言作为第一门计算机语言进行程序设计教学,这是合适的,有了C的基础,在需要时进一步学习C+,也是很容易过渡的。3. 怎样组织程序设计的教学?怎样处理算法和语言的关系 要进行程序设计,要解决两个问题: (1) 要学习和掌握解决问题的思路和方法,即算法;(2) 学习怎样实现算法,即用计算机语言编写程序,达到用计算机解题的目的。 因此,课程的内容应当主要包括两个方面: 算法和语言。算法是灵魂,不掌握算法就是无米之炊。语言是工具,不掌握语言,编程就成了空中楼阁。二者都是必要的,缺一不可。作者的做法是: 以程序设计为中心,把二者紧密结合起来,既不能孤立地抽象地研究算法,更不能孤立地枯燥地学习语法。算法是重要的,但本课程不是专门研究算法与逻辑的理论课程,不可能系统全面地介绍算法;也不是脱离语言环境研究算法,而是在学习编程的过程中,介绍有关的典型算法,引导学生思考怎样构造一个算法。编写程序的过程就是设计算法的过程。 语言工具也是重要的,掌握基本的语法规则是编程的基础,如果不掌握必要的语法规则,连最简单的程序也编不出来,或者编出来的程序错误百出,无法运行。但是掌握C语言绝不能靠死学死记,就像熟读英语的语法不一定会写英文文章,靠字典是学不好外语的。如果你去看C语言标准文本,可能感觉如看“天书”一样,恐怕只有计算机专家才能看懂。绝不能把程序设计课程变成枯燥地介绍语法的课程,学习语法要服务于编程。 在30年前我们编写BASIC语言时就已经遇到了这个问题,我们坚决摒弃了孤立地介绍语法的做法,而是以程序设计为中心,把算法与语言紧密结合起来。不是根据语言规则的分类和顺序作为教学和教材的章节和顺序,而是从应用的角度切入,以编程为目的,以编程为主线,从初学者的认知规律出发,由浅入深,由易到难,构造了教材和教学的体系。一开始就让学生看懂简单的程序,编写简单的程序,然后逐步深入。语法规则不是通过孤立的学习而是在学习编程的过程中学到的。随着编程难度的逐步提高,算法和语法的学习同步趋于深入。学生在富有创意、引人入胜的编程中,学会了算法,掌握了语法,把枯燥无味的语法规则变成生动活泼的编程应用。事实证明这种做法是成功的。多年来,我们坚持和发展了这种行之有效的方法,取得了很好的效果。 近年来许多学校的经验表明,按照这种思路进行教学,教师容易教,学生容易学,效果很好。4. 怎样学习C程序设计(1) 要着眼于培养能力。C语言程序设计并不是一门纯理论的课程,而是一门应用的课程。应当注意培养分析问题的能力、构造算法的能力、编程的能力和调试程序的能力。(2) 要把重点放在解题的思路上,通过大量的例题学习怎样设计一个算法,构造一个程序。初学时更不要在语法细节上死背死抠。一开始就要学会看懂程序,编写简单的程序,然后逐步深入。语法细节是需要通过较长期的实践才能熟练掌握的。初学时,切忌过早地滥用C语言的某些容易引起错误的细节(如不适当地使用+和-)。(3) 掌握基本要求,注意打好基础。在学校学习阶段,主要是学习程序设计的方法,进行程序设计的基本训练,为将来进一步学习和应用打下基础。不可能通过几十小时的学习,由一个门外汉变成编程高手,编写出大型而实用的程序,要求应当实事求是。如果学时有限,有些较深入的内容可以选学或自学,把精力放在最基本、最常用的内容上,学好基本功。(4) 要十分重视实践环节。光靠听课和看书是学不会程序设计的,学习本课程既要掌握概念,又必须动手编程,还要亲自上机调试运行。读者一定要重视实践环节,包括编程和上机。既会编写程序,又会调试程序。学得好与坏,不是看你“知不知道”,而是“会不会干”。考核方法应当是编写程序和调试程序,而不应该只采用是非题和选择题。(5) 要举一反三。学习程序设计,主要是掌握程序设计的思路和方法。学会使用一种计算机语言编程,在需要时改用另一种语言应当不会太困难。不能设想今后一辈子只使用在学校里学过的某一种语言。但是无论用哪一种语言进行程序设计,其基本规律是一样的。在学习时一定要学活用活,举一反三,掌握规律,在以后需要时能很快地掌握其他新的语言进行编程。 (6) 要提倡和培养创新精神。教师和学生都不应当局限于教材中的内容,应该启发学生的学习兴趣和创新意识。能够在教材程序的基础上,思考更多的问题,编写难度更大的程序。在本书每章的习题中,包括了一些难度较大的题目,建议学生尽量选做,学会自己发展知识,提高能力。(7) 如果对学生有较高的程序设计要求,应当在学习本课程后,安排一次集中的课程设计环节,要求学生独立完成一个有一定规模的程序。5. 从实际出发,区别对待 学习本课程的有计算机专业学生,也有非计算机专业的大学生;有本科生,也有专科(高职)学生;有重点大学的学生,也有一般大学的学生。情况各异,要求不同,必须从实际出发,制订出切实可行的教学要求和教学方案,切忌脱离实际的一刀切。 例如,对计算机专业学生,要求应当比非计算机专业高,尤其是对算法的要求应当高一些,不仅会用现成的算法,还应当会设计一般的算法。最好能在学完本课程后独立完成一个有一定规模的程序。对高职学生的要求应不同于本科生,更不应搬用重点大学的做法,不宜在算法上要求太高,因为高职不是培养设计算法的人才,而应切实掌握语言工具,具有较强的动手和实践能力,例如编码能力、调试能力。对基础较好、学生程度较高的学校,可以少讲多练,强调自学,有的内容课堂上可以不讲或少讲,指定学生自学。引导学生通过自学和实践发展知识,尽可能完成一些难度较高的习题。6. 为什么要修订C程序设计 任何工作都要与时俱进,不断完善,追求完美。计算机科学技术不断发展,C语言也在发展,在高校计算机教学过程中不断累积了新的经验,广大读者在学习过程中也对本书提出了一些新的期望和建议。因此,作者对C程序设计一书再次进行修订,第四版保持了前三版的写作风格,保持了概念清晰、通俗易懂的特点,并在以下几个方面作了修改: (1) 按照C 99标准进行介绍,以适应C语言的发展,使程序更加规范。目前大多数介绍C语言的教材是按照C 89标准介绍的,本书按照C 99的规定进行介绍,程序符合C 99的要求。例如: 数据类型介绍中,增加了C 99扩充的双长整型(long long int)、复数浮点型(float_complex,double_complex,long long _complex)、布尔型(bool)等,使读者有所了解。 C 99要求,main函数的类型一律指定为int型,并在函数的末尾加一个返回语句“return 0;”。 C 99增加了注释行的新形式以双钭线/开始的内容作为注释行,这本来是C+的注释行形式,现在C 99把它扩充进来了,使编程更加方便。同时保留了原来的/形式,以使原来按C 89标准编写的程序可以不加修改仍可使用。本书采用C 99的注释新形式,读者使用更方便,而且符合发展需要。因此,本书的程序基本上采用下面的形式: #include /以“/”作为注释行的开始int main()/指定main函数为int类型 return 0;/如函数正常执行,返回整数0 C 99增加的其他一些具体内容,在书中有关章节中专门注明,以提醒读者。由于C 99是在C 89的基础上增加或扩充一些功能而成的,因此C 89和C 99基本上是兼容的。用C 89编写的程序在C 99环境下仍然可以运行。C 99所增加的有些新的功能和规则,是在编制比较复杂的程序时为方便使用和提高效率而用的,本书对目前暂时用不到的内容不作介绍,以免读者分心,增加学习难度。在将来进行深入编程时再逐步了解和学习。目前社会上使用的一些C编译系统,有的并未实现C 99的要求,有的实现了C 99的部分功能。考虑到读者上机实践的条件,本书中的例题程序都可以在目前广泛使用的C+编译系统中使用。(2) 考虑到国内当前的情况和读者使用的方便,本书中的程序是用Visual C+ 6.0编译的,运行结果也是在Visual C+ 6.0环境下得到的。在分析时也以Visual C+ 6.0环境为例进行介绍。如果采用其他编译系统,也大同小异,不会产生任何问题。(3) 加强算法。第2章专门介绍算法的概念、算法的特点、表示算法的工具以及怎样设计算法,并通过一些简单的例子说明怎样构造一个算法。使读者有一个初步的、基本的了解。在以后各章中,由浅入深地结合例题介绍各种典型的算法,并且马上用C语言实现此算法,写出程序。这样就使算法与程序紧密结合,而且通过运行程序,得到结果,便于验证算法的正确性。学习时不会觉得抽象,而会觉得算法具体有趣,看得见,摸得着。在各例题中,在给出问题后,都先进行分析问题,介绍解题思路,也就是构造算法,然后才是根据算法编写程序,而不是先列出程序再解释程序,从中了解算法。这样做,更符合读者认知规律,更容易理解算法,也引导读者在做题时先考虑算法再编程,而不是坐下来就写程序。培养好的习惯。(4) 更加通俗易懂,容易学习。作者充分考虑到广大初学者的情况,精心设计体系,适当降低门槛,便于读者入门。尽量少用深奥难懂的专业术语,用通俗易懂的方法和语言阐述清楚复杂的概念,使复杂的问题简单化。没有学过计算机原理和高等数学的读者完全可以掌握本书的内容。本书采用作者提出的“提出问题解决问题归纳分析”的新的教学三部曲,先具体后抽象,先实际后理论,先个别后一般。而不是先抽象后具体,先理论后实际,先一般后个别。在介绍每个例题时,都采取以下的步骤: 给出问题解题思路编写程序运行结果程序分析有关说明,使读者很容易理解。即使没有教师讲解,读者也能看懂本书的内容,就有可能做到,教师少讲,提倡自学,上机实践。(5) 重新组织内容。根据近年来各校教学中的实际情况,作者对本书内容作了以下调整: 根据非计算机专业学生的培养要求和将来工作的情况,在教材中不再包括“位运算”一章。考虑到有部分读者需要学习这部分内容,将“位运算”的内容列入C程序设计(第四版)学习辅导一书中,供选学。 取消C程序设计(第三版)中的第3章“数据类型、运算符与表达式”。这章内容涉及数据在计算机内存中的存储形式,读者感到一开始就接触这些内容比较难学。在第四版中,对这些内容进行精简,不再单独列章,将其中最基本的、必须了解的内容结合在第3章“最简单的C程序设计”中介绍,这样可以降低学习难度。 第三版包括“预处理命令”一章,考虑到这章的内容不是最基本的,在第四版中对它不作详细的介绍,而把它放在C程序设计(第四版)学习辅导一书中,供选学。 考虑到绝大多数读者在学习本课程之前未学习过其他计算机语言,缺乏对计算机语言和程序的基本了解,把第三版的第1章“C语言概述”改为“程序设计和C语言”,在这一章中增加了计算机语言和程序的基本知识。 许多学校把本课程放在一年级学习,此时还未学习或未学完高等数学,在学本课程时对有关高等教学的程序感到有困难,在第四版中不再包括有关高等数学的内容,具有高中以上文化程度的读者都能看懂本书。 在第三版的“结构体与共用体”一章中有设计链表(链表的建立、插入、删除和输出等)的内容,对于非计算机专业学生来说,难度较大。作者认为,这部分内容对非计算机专业可以不作为基本要求,在第四版中对这部分内容作了精简,只对链表作简单的介绍,读者对之有一定了解即可。考虑到这部分对计算机专业学生是需要的,我们把有关链表的详细内容作为习题供选做,并在C程序设计(第四版)学习辅导一书的习题解答中给出完整的程序,供需要者参考。 专门编写了“C程序案例” 一章,综合应用各章的知识。提供了不同难度、不同类型的程序。阅读这些程序,可以使学生了解怎样去编写应用程序,提高自己的编程能力。这部分内容安排在C程序设计(第四版)学习辅导一书中,供需要者参考。相信经过修改后,本书会更加容易学习,效果更好。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!