描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302224464
本书为“十二五”普通高等教育本科*规划教材、北京市高等教育精品教材立项项目,获全国高校出版社优秀畅销书特等奖、原电子工业部优秀教材一等奖、全国高等院校计算机基础教育研究会优秀教材一等奖等多项奖项。
《C程序设计》累计发行逾1250万册,不仅创同类书的全国纪录,在世界上也是罕见的,堪称出版界的奇迹。《C程序设计》是一本公认的学习C语言程序设计的经典教材。《C程序设计(第四版)》保持了前三版的写作风格和概念清晰、通俗易懂的特点,并根据C语言的发展和计算机教学的需要在以下几个方面作了修改:
(1)按照C99标准进行介绍,以适应C语言的发展,使编写程序更加规范。
(2)采用Visual C 6.0编译系统。
(3)加强算法,以程序设计为中心,把算法与语言工具紧密结合;对C语言和程序设计的基本概念和要点讲解透彻,全面而深入。
(4)例题更丰富,深入浅出,文字流畅,更加通俗易懂。
(5)按照作者提出的“提出问题—解决问题—归纳分析”三部曲组织教材,符合读者认知规律,容易入门与提高。
本书是初学者学习C程序设计的理想教材,可作为高等学校各专业的正式教材,也是一本自学的好教材。本书配有辅助教材《C程序设计(第四版)学习辅导》(ISBN: 9787302226727)。本书的PPT教案、主辅教材配套的源代码,可到清华大学出版社官网下载。
由谭浩强教授著、清华大学出版社出版的《C程序设计》是一本公认的学习C语言程序设计的经典教材。根据C语言的发展和计算机教学的需要,作者在《C程序设计(第三版)》的基础上进行了修订。本书按照C语言的新标准C99进行介绍,所有程序都符合C99的规定,使编写程序更加规范;对C语言和程序设计的基本概念和要点讲解透彻,全面而深入;按照作者提出的“提出问题—解决问题—归纳分析”三部曲进行教学、组织教材;本书的每个例题都按以下几个步骤展开:提出任务—解题思路—编写程序—运行程序—程序分析—有关说明。符合读者认知规律,容易入门与提高。
本书内容先进,体系合理,概念清晰,讲解详尽,降低台阶,分散难点,例题丰富,深入浅出,文字流畅,通俗易懂,是初学者学习C程序设计的理想教材,可作为高等学校各专业的正式教材,也是一本自学的好教材。本书还配有辅助教材《C程序设计(第四版)学习辅导》。
第1章程序设计和C语言
1.1什么是计算机程序
1.2什么是计算机语言
1.3C语言的发展及其特点
1.4简单的C语言程序
1.4.1简单的C语言程序举例
1.4.2C语言程序的结构
1.5运行C程序的步骤与方法
1.6程序设计的任务
习题
第2章算法——程序的灵魂
2.1什么是算法
2.2简单的算法举例
2.3算法的特性
2.4怎样表示一个算法
2.4.1用自然语言表示算法
2.4.2用流程图表示算法
2.4.3三种基本结构和改进的流程图
2.4.4用N?S流程图表示算法
2.4.5用伪代码表示算法
2.4.6用计算机语言表示算法
2.5结构化程序设计方法
习题
第3章简单的C程序设计——顺序程序设计
3.1顺序程序设计举例
3.2数据的表现形式及其运算
3.2.1常量和变量
3.2.2数据类型
3.2.3整型数据
3.2.4字符型数据
3.2.5浮点型数据
3.2.6怎样确定常量的类型
3.2.7运算符和表达式
3.3C语句
3.3.1C语句的作用和分类
3.3.2基本的语句——赋值语句
3.4数据的输入输出
3.4.1输入输出举例
3.4.2有关数据输入输出的概念
3.4.3用printf函数输出数据
3.4.4用scanf函数输入数据
3.4.5字符数据的输入输出
习题
第4章选择结构程序设计
4.1选择结构和条件判断
4.2用if语句实现选择结构
4.2.1用if语句处理选择结构举例
4.2.2if语句的一般形式
4.3关系运算符和关系表达式
4.3.1关系运算符及其优先次序
4.3.2关系表达式
4.4逻辑运算符和逻辑表达式
4.4.1逻辑运算符及其优先次序
4.4.2逻辑表达式
4.4.3逻辑型变量
4.5条件运算符和条件表达式
4.6选择结构的嵌套
4.7用switch语句实现多分支选择结构
4.8选择结构程序综合举例
习题
第5章循环结构程序设计
5.1为什么需要循环控制
5.2用while语句实现循环
5.3用do…while语句实现循环
5.4用for 语句实现循环
5.5循环的嵌套
5.6几种循环的比较
5.7改变循环执行的状态
5.7.1用break语句提前终止循环
5.7.2用continue语句提前结束本次循环
5.7.3break语句和continue语句的区别
5.8循环程序举例
习题
第6章利用数组处理批量数据
6.1怎样定义和引用一维数组
6.1.1怎样定义一维数组
6.1.2怎样引用一维数组元素
6.1.3一维数组的初始化
6.1.4一维数组程序举例
6.2怎样定义和引用二维数组
6.2.1怎样定义二维数组
6.2.2怎样引用二维数组的元素
6.2.3二维数组的初始化
6.2.4二维数组程序举例
6.3字符数组
6.3.1怎样定义字符数组
6.3.2字符数组的初始化
6.3.3怎样引用字符数组中的元素
6.3.4字符串和字符串结束标志
6.3.5字符数组的输入输出
6.3.6使用字符串处理函数
6.3.7字符数组应用举例
习题
第7章用函数实现模块化程序设计
7.1为什么要用函数
7.2怎样定义函数
7.2.1为什么要定义函数
7.2.2定义函数的方法
7.3调用函数
7.3.1函数调用的形式
7.3.2函数调用时的数据传递
7.3.3函数调用的过程
7.3.4函数的返回值
7.4对被调用函数的声明和函数原型
7.5函数的嵌套调用
7.6函数的递归调用
7.7数组作为函数参数
7.7.1数组元素作函数实参
7.7.2数组名作函数参数
7.7.3多维数组名作函数参数
7.8局部变量和全局变量
7.8.1局部变量
7.8.2全局变量
7.9变量的存储方式和生存期
7.9.1动态存储方式与静态存储方式
7.9.2局部变量的存储类别
7.9.3全局变量的存储类别
7.9.4存储类别小结
7.10关于变量的声明和定义
7.11内部函数和外部函数
7.11.1内部函数
7.11.2外部函数
习题
第8章善于利用指针
8.1指针是什么
8.2指针变量
8.2.1使用指针变量的例子
8.2.2怎样定义指针变量
8.2.3怎样引用指针变量
8.2.4指针变量作为函数参数
8.3通过指针引用数组
8.3.1数组元素的指针
8.3.2在引用数组元素时指针的运算
8.3.3通过指针引用数组元素
8.3.4用数组名作函数参数
8.3.5通过指针引用多维数组
8.4通过指针引用字符串
8.4.1字符串的引用方式
8.4.2字符指针作函数参数
8.4.3使用字符指针变量和字符数组的比较
8.5指向函数的指针
8.5.1什么是函数指针
8.5.2用函数指针变量调用函数
8.5.3怎样定义和使用指向函数的指针变量
8.5.4用指向函数的指针作函数参数
8.6返回指针值的函数
8.7指针数组和多重指针
8.7.1什么是指针数组
8.7.2指向指针数据的指针
8.7.3指针数组作main函数的形参
8.8动态内存分配与指向它的指针变量
8.8.1什么是内存的动态分配
8.8.2怎样建立内存的动态分配
8.8.3void指针类型
8.9有关指针的小结
习题
第9章用户自己建立数据类型
9.1定义和使用结构体变量
9.1.1自己建立结构体类型
9.1.2定义结构体类型变量
9.1.3结构体变量的初始化和引用
9.2使用结构体数组
9.2.1定义结构体数组
9.2.2结构体数组的应用举例
9.3结构体指针
9.3.1指向结构体变量的指针
9.3.2指向结构体数组的指针
9.3.3用结构体变量和结构体变量的指针作函数参数
9.4用指针处理链表
9.4.1什么是链表
9.4.2建立简单的静态链表
9.4.3建立动态链表
9.4.4输出链表
9.5共用体类型
9.5.1什么是共用体类型
9.5.2引用共用体变量的方式
9.5.3共用体类型数据的特点
9.6使用枚举类型
9.7用typedef声明新类型名
习题
第10章对文件的输入输出
10.1C文件的有关基本知识
10.1.1什么是文件
10.1.2文件名
10.1.3文件的分类
10.1.4文件缓冲区
10.1.5文件类型指针
10.2打开与关闭文件
10.2.1用fopen函数打开数据文件
10.2.2用fclose函数关闭数据文件
10.3顺序读写数据文件
10.3.1怎样向文件读写字符
10.3.2怎样向文件读写一个字符串
10.3.3用格式化的方式读写文件
10.3.4用二进制方式向文件读写一组数据
10.4随机读写数据文件
10.4.1文件位置标记及其定位
10.4.2随机读写
10.5文件读写的出错检测
习题
第11章常见错误分析355附录
附录A在Visual C 6.0环境下运行C程序的方法
附录B常用字符与ASCII代码对照表
附录CC语言中的关键字
附录D运算符和结合性
附录EC语言常用语法提要
附录FC库函数
参考文献
20世纪90年代以来,C语言迅速在全世界普及推广。无论在中国还是在世界各国,“C语言程序设计”始终是高等学校的一门基本的计算机课程。C语言程序设计在计算机教育和计算机应用中发挥着重要的作用。
作者于1991年编著了《C程序设计》一书,由清华大学出版社出版。该书针对初学者的特点和认知规律,精选内容,分散难点,降低台阶,例题丰富,深入浅出。出版后受到广大读者的热烈欢迎。许多读者说“C语言原来是比较难学的,但自从《C程序设计》出版后,C语言变得不难学了”。根据C语言的发展和教学的实践,作者先后对该书进行了两次大的修订,先后重印160多次,累计发行超过1100万册,平均每年印刷60万册,成为我国广大初学者学习C语言程序设计的主流用书。国内许多介绍C语言的书籍多以本书为蓝本。本书曾荣获原电子工业部优秀教材一等奖、全国高等院校计算机基础教育研究会优秀教材一等奖、全国高校出版社优秀畅销书特等奖。这是对我的莫大鼓励和鞭策。
在此书再版之际,作者想对学习程序设计问题提出以下几点看法。
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程序设计(第四版)学习辅导》一书中,供需要者参考。
相信经过修改后,本书会更加容易学习,效果更好。
7. 为了满足不同的需要,出版不同层次的C程序设计教材
全国各校的情况不同,学生的基础和学习要求也不尽同,不可能都采用同一本教材。教材应当满足多层次多样化的要求。许多学校的老师认为《C程序设计》是一本经过长期教学实践检验的优秀教材,其内容与风格已为广大师生所熟悉,希望在《C程序设计》的基础上组织不同层次的教材,供不同对象选用。作者与清华大学出版社反复研究,决定出版C程序设计的系列教材,包括以下3种:
(1) 《C程序设计(第四版)》,即本书。本书系统全面,内容深入,讲授详尽,包含了许多其他教材中没有的内容,尤其是针对编程实践中容易出现的问题作了提醒和分析,是学习C语言程序设计的理想教材。适合程度较高、基础较好的学校和读者使用。
(2) 《C程序设计教程》。以《C程序设计》一书的内容为基础,适当减少内容,突出重点,紧扣基本的要求,适合学时相对较少的本科院校使用。该书已被*正式列为“普通高等教育规划教材”。
(3) 《C语言程序设计(第2版)》。内容更加精练,要求适当降低,写法上更加通俗易懂,适合应用型大学和程度较好的高职院校使用。该书亦已列为“普通高等教育规划教材”和普通高等教育精品教材。
为了帮助读者学习本书,作者同时编写了《C程序设计(第四版)学习辅导》,内容包括: 本书各章习题的参考答案;位运算;C程序案例;Visual C 集成环境的使用方法;程序的调试与测试;上机实习指导等。该书由清华大学出版社于2010年与本书同时出版。
在本书出版之际,作者衷心感谢全国高等院校计算机基础教育研究会和全国各高校教师多年来始终不渝的关心与鼎力支持,感谢广大读者给予我的理解与厚爱,感谢清华大学出版社30年来的密切合作与支持。没有这一切,我不可能取得今天的成就。我永远感谢曾经帮助和支持过我的、相识的和不相识的同志和朋友。
薜淑斌和谭亦峰高级工程师参加了本书的研讨并编写部分程序。由于作者水平有限,本书肯定会有不少缺点和不足,热切期望得到专家和读者的批评指正。
谭浩强谨识2010年3月于清华园
评论
还没有评论。