C程序设计(第3版)(新世纪计算机基础教育丛书(谭浩强主编))
定 价:34.5 元
- 作者:谭浩强 著
- 出版时间:2005/7/1
- ISBN:9787302108535
- 出 版 社:清华大学出版社
- 中图法分类:H31
- 页码:378
- 纸张:胶版纸
- 版次:3
- 开本:16开
C语言是国内外广泛使用的计算机语言,学会使用C语言进行程序设计是计算机工作者的一项基本功。
《新世纪计算机基础教育丛书:C程序设计(第3版)》的第一版于1991年出版,第二版于1999年出版。由于本书作者具有丰富的教学经验和编写教材的经验,并针对初学者的特点。精心策划、准确定位,使得本书概念清晰、例题丰富、深入浅出,受到专家和读者的一致好评。本书被普遍认为是学习C语言的好教材,并被全国大多数高校选用。十多年来本书累计发行了800多万册,创同类书的全国最高记录,是学习C语言的主流用书。本书曾荣获原电子工业部优秀教材一等奖、高校出版社优秀畅销书特等奖、全国高等院校计算机基础教育研究会优秀教材一等奖。
根据发展的需要,作者对本书进行了再修订,使本书更加完善,更便于学习。书中全部例题中的程序均已调试通过。
《新世纪计算机基础教育丛书:C程序设计(第3版)》内容新颖、体系合理、逻辑性强、文字流畅、通俗易懂,是学习C语言的理想教材。凡具有计算机初级知识的读者都能读懂本书。本书可作为高等学校各专业的正式教材,也是一本自学的好教材。
C程序设计(第3版)(新世纪计算机基础教育丛书(谭浩强主编))
C++程序设计基础教程学生用书(清华大学计算机基础教育课程系列教材)
全国高校出版社优秀畅销书特等奖。累计发行逾1250万册,创同类书的全国最高记录,是学习C语言的主流用书,计算机教育史上的奇迹。本书提供ppt课件和源代码。本书已出新版C程序设计题解与上机指导(第3版)C程序设计试题汇编(第二版)
C语言是在国内外广泛使用的一种计算机语言。C语言功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好,既具有高级语言的优点,又具有低级语言的许多特点,因此特别适合于编写系统软件。C语言诞生后,许多原来用汇编语言编写的软件,现在可以用C语言编写了(例如,著名的UNIX操作系统就是用C语言编写的),而学习和使用C语言要比学习和使用汇编语言容易得多。
近年来,C语言不仅为计算机专业工作者所使用,而且为广大计算机应用人员(包括大量原来是非计算机专业的使用计算机的人们)所喜爱和使用。许多高等学校,不仅在计算机
C语言是在国内外广泛使用的一种计算机语言。C语言功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好,既具有高级语言的优点,又具有低级语言的许多特点,因此特别适合于编写系统软件。C语言诞生后,许多原来用汇编语言编写的软件,现在可以用C语言编写了(例如,著名的UNIX操作系统就是用C语言编写的),而学习和使用C语言要比学习和使用汇编语言容易得多。
近年来,C语言不仅为计算机专业工作者所使用,而且为广大计算机应用人员(包括大量原来是非计算机专业的使用计算机的人们)所喜爱和使用。许多高等学校,不仅在计算机专业开设了C语言课程,而且在非计算机专业也开设了C语言课程。全国计算机等级考试、全国计算机应用技术证书考试(NIT)和全国各地区组织的大学生计算机统一考试都将C语言列入了考试范围。许多人用它编写应用软件。学习C语言已经成为广大计算机应用人员和广大青年学生的迫切要求。
由于C语言牵涉的概念比较复杂,规则繁多,使用灵活,容易出错,不少初学者感到困难,迫切希望有一本容易入门、容易学习的C语言教材。在许多同志的鼓励和督促下,作者于1991年编写了《C程序设计》,由清华大学出版社出版,以期抛砖引玉。该书针对初学者的特点和认知规律,精选内容,分散难点,降低台阶,例题丰富,通过深入浅出地叙述,阐明了复杂的概念,力求做到内容新颖、概念清晰、实用性强、通俗易懂。该书出版后受到广大读者的热烈欢迎,许多读者说“C语言原来是比较难学的,但自从《C程序设计》出版后,C语言变得不难学了”,“作者深入浅出地叙述,使我们对C语言由害怕到兴趣盎然”。1999年,作者对本书进行了修订,使之进一步完善,出版了本书的第二版。十多年来,该书累计发行了700多万册,平均每年印刷50万册,居全国同类书的首位。全国大多数高校把本书作为正式教材。许多高校的研究生入学考试都指定本书为必读教材,国内许多介绍C语言的书籍以本书为蓝本,许多在职干部和计算机爱好者通过自学本书掌握了C语言程序设计。在推广普及计算机程序设计过程中,本书成为广大初学者学习C语言程序设计的主流用书。本书曾荣获原电子工业部优秀教材一等奖、全国高等院校计算机基础教育研究会优秀教材一等奖、高校出版社优秀畅销书特等奖。这是对我的莫大鼓励和鞭策。我深切地感受到广大读者对作者的殷切期望。
根据计算机科学技术的发展和教学实践的需要,作者对《C程序设计》一书再次进行了修订,出版第三版。第三版保持了第一版的写作风格,保留了通俗易懂的特点,并在以下几方面做了修改。
(1) 在本书的前两版中,采用Turbo C 2.0对程序进行编译。由于近年来,大多数人习惯使用Windows操作系统的图形界面,用鼠标进行操作,感到用Turbo C 2.0不大方便。在第三版中改用Turbo C++ 3.0作为编译工具。Turbo C++ 3.0虽然是基于DOS界面的,但它支持鼠标操作,可以在Windows环境下方便地使用。它的使用方法与Turbo C类似。用过Turbo C的人很容易掌握Turbo C++ 3.0。Turbo C++本来是用来编译C++程序的,由于C++是从C语言发展而来的,C++对C语言是兼容的,用C语言编写的程序可以用C++编译系统进行编译。在与本书配套的《C程序设计题解与上机指导》(第三版)中还介绍了Visual C++ 6.0对C程序的编译方法。读者也可以使用Visual C++ 6.0。这样也有利于读者今后向C++过渡。
本书的例题程序是用Turbo C++ 3.0或Visual C++ 6.0进行编译的。用C++编译系统时,对程序要求更加规范。例如,在定义和声明函数时,必须指定函数类型;程序中如果用到系统提供的库函数(包括printf和scanf函数),都必须在程序文件的开头用#include命令将有关头文件包含进来。因此,本书的程序基本上采用下面的形式:#include /* 如果程序中用到系统提供的输入输出函数 */
void main() /* 要求指定main函数的类型 */
{
}(2) 对各章内容和表述进行了细致的修改,调整了部分内容和例题,使读者更容易理解。
(3) 本书第二版的14章和15章介绍C++的初步知识。由于作者已出版了《C++程序设计》(清华大学出版社出版),对C++做了全面、详细的介绍,读者如需了解和学习C++,可以参考该书,同时为了压缩篇幅,在第三版中不再保留这两章的内容。
相信修订后的第三版会更加符合读者的需要。
关于怎样学习程序设计,作者提出以下几点看法。
(1) 近年来,有一些面向对象的计算机语言陆续问世,受到欢迎。有些人认为面向过程的C语言已经过时了,不必学了。这是一种误解。不应把面向对象和面向过程对立起来,在面向对象程序设计中仍然要用到面向过程的知识。作为计算机程序开发人员,既要掌握面向对象程序设计的知识,又要掌握面向过程程序设计的知识。面向过程程序设计仍然是计算机工作者的基本功。
C++是为开发大型程序而研制的,它比C语言要复杂得多,学习C++也比学习C语言困难得多。事实上,将来并不是每个人都需要用C++编制大型程序。对于计算机专业人员,学习和使用C++是理所当然的。对于非计算机专业人员,可以先学习C语言,打下程序设计的基础,在以后需要时再学习和使用C++。有了C语言基础,再学习C++就容易多了。也可以在学习C语言的基础上,再学习一些面向对象程序设计的初步知识,为以后进一步学习和使用C++打下基础。
目前,国内外的高等学校都把C语言程序设计作为一门重要的课程,我国各种计算机统一考试都包括C语言程序设计的科目。
现在大多数高校把C语言作为第一门计算机语言进行教学,这是可行的,学生是能够学习好的。
(2) 在学校中,学习程序设计课程的目的是掌握设计程序的思路,学会用计算机语言编写程序,以实现所需处理的任务。要正确处理算法与语法的关系,算法是程序的核心、是灵魂,语法是外壳、是工具。不应把学习重点放在语法规则上,语法是重要的,不掌握语法规则就无法编写出正确的程序,但是只学会语法,甚至能把语法背得滚瓜烂熟,也不可能编写出好的程序。一定要把重点放在解题的思路上,通过大量的例题学习怎样设计一个算法,构造一个程序。在学习开始时更不要在语法细节上死背死抠。请记住: 重要的是学会编程序,而不是背语法。一开始就要学会看懂程序,编写简单的程序,然后逐步深入。有一些语法细节是需要通过较长期的实践才能熟练地掌握的。初学时,切忌过早地滥用C语言的某些容易引起错误的细节(如不适当地使用++和--的副作用)。
(3) 不能设想今后一辈子只使用在学校里学过的某一种语言。但是,无论用哪一种语言进行程序设计,其基本规律是一样的。在学习时一定要学活用活,举一反三,掌握规律,在以后需要时能很快地掌握其他新的语言进行工作。
(4) 在学校学习阶段,主要是学习程序设计的方法,进行程序设计的基本训练,打下将来进一步学习的基础。对多数学生来说,不可能通过几十小时的学习,由一个门外汉变成编程高手,编写出大型而实用的程序。学习程序设计课程时,应该把精力放在最基本、最常用的内容上,学好基本功。如果对学生有较高的程序设计要求,应当在学习本课程后,安排一次集中的课程设计环节,按照实际工作的要求,完成有一定规模的程序设计。
(5) 程序设计是一门实践性很强的课程,既要掌握概念,又要动手编程,还要上机调试运行,希望读者一定要重视实践环节,包括编程和上机。既会编写程序,又会调试程序。衡量这门课学习的好坏,不是看你“知不知道”,而是“会不会干”。 考核的方法不能主要用是非题和选择题,而应当把重点放在编制程序和调试程序上。
(6) 使用哪一种编译系统并不是原则问题,重要的是编程能力的培养。程序编好以后,用哪一种编译系统进行编译都可以。读者不应该只会用某一种编译环境,应当了解、接触和使用不同的编译环境。不同的编译系统,其功能和使用方法有些不同,编译时给出的信息也不完全相同,要注意参阅使用说明书,特别要在使用中积累经验,举一反三。
为了帮助读者学习本书,作者还编了一本《C程序设计题解与上机指导》(第三版),提供本书中各章习题的参考答案,以及上机实习指导。该书由清华大学出版社于2005年出版。
作者从事计算机教育和计算机普及工作二十多年,最深刻的体会是:作者心中要永远装着读者,要处处为读者考虑,要和读者将心比心。我的心中经常浮现出千万读者殷切期望的目光。读者热切地期望作者能为他们写出一批好书,使他们的学习能事半功倍。作者多年来以此来鞭策自己,希望能摸索出一些能减少初学者困难的方法,并做了一些探索和尝试。要写好一本书,是不容易的。要深入了解自己工作的对象,有的放矢,准确定位;要根据应用的需要,合理取舍,精选内容;要认真研究学习者的认识规律,采用读者容易理解的方法,深入浅出,通俗易懂;要善于把复杂问题简单化,而不能把简单问题复杂化。写书不仅是简单地把有关的技术内容告诉读者,而且要考虑怎样写才能使读者容易理解。要下很大的功夫,有时为了找到一个好的例子或一个通俗的比喻,苦苦思索好几天,每一句话都要反复斟酌推敲,总是努力把每一本书都做成精品。作为教师和作者,可以不计较自己的作品是否获奖,但是应当努力使自己的作品得到千万读者的认可和赞誉,成为事实上的精品,这才是最高的奖赏。
最后,对多年来关心支持本书和本书作者的领导和朋友们表示由衷地感谢。尤其是原全国政协副主席、国务委员、科委主任、中国工程院院长宋健院士,中国计算机学会名誉理事长、中国科学院资深院士张效祥先生等前辈给予作者有力地支持和指导。全国高等院校计算机基础教育研究会多年来始终全力支持和帮助作者在计算机教育和计算机普及领域所从事的工作。全国高校广大教师多年来和我共同奋斗,千万读者每时每刻都给予我巨大的、宝贵的关心和支持。清华大学出版社十几年始终密切合作与支持。没有这一切,我不可能取得今天的成就。我永远感谢曾经帮助和支持过我的、相识的和不相识的同志和朋友。
谭亦峰工程师参加了本书部分章节的编写和程序调试工作。由于作者水平有限,本书肯定会有不少缺点和不足,热切期望得到专家和读者的批评指正。
谭浩强
2005年春节于清华园
谭浩强,教授,我国著名计算机教育专家。1934年生,广东台山人。1985年清华大学自动控制系毕业。学生时代曾担任清华大学学生会主席、北京市人民代表。他是我国计算机普及和高校计算机基础教育开拓者之一,现任全国高等院校计算机基础教育研究会会长、教育部一国计算机应用技术证书考试委员会主任委员和教育部全国计算机等级考试委员会副主任。
他创造了3个世界记录:(1)20年来他(及和他人合作)共编著出版了140本计算机著作,此外主编了300多本计算机书籍,是出版科技著作数量最多的人。(2)他编著和主编的书发行量超过5000万册,是读者最多的科技作家。我国平均每26人、知识分子每1.5人就拥有1本谭浩强编著的书。(3)他和别人合作编著的《BASIC语言》发行了1250万册,创科技书籍发行量的世界记录。此外他编著的《C程序设计》发行了700万册,在中央电视台系统地向全国讲授了BASIC、C、FORTRAN、COBOL、PASCAL、Visual Basic共7种计算机语言,观众超过500万人。
在我国学习计算机的人中很少有人不知道谭浩强的名字的。他善于用读者容易理解的方法和语言说明复杂的概念。许多人认为他“开创了计算机书籍贴近大众的新风”,为 谭浩强,教授,我国著名计算机教育专家。1934年生,广东台山人。1985年清华大学自动控制系毕业。学生时代曾担任清华大学学生会主席、北京市人民代表。他是我国计算机普及和高校计算机基础教育开拓者之一,现任全国高等院校计算机基础教育研究会会长、教育部一国计算机应用技术证书考试委员会主任委员和教育部全国计算机等级考试委员会副主任。
他创造了3个世界记录:(1)20年来他(及和他人合作)共编著出版了140本计算机著作,此外主编了300多本计算机书籍,是出版科技著作数量最多的人。(2)他编著和主编的书发行量超过5000万册,是读者最多的科技作家。我国平均每26人、知识分子每1.5人就拥有1本谭浩强编著的书。(3)他和别人合作编著的《BASIC语言》发行了1250万册,创科技书籍发行量的世界记录。此外他编著的《C程序设计》发行了700万册,在中央电视台系统地向全国讲授了BASIC、C、FORTRAN、COBOL、PASCAL、Visual Basic共7种计算机语言,观众超过500万人。
在我国学习计算机的人中很少有人不知道谭浩强的名字的。他善于用读者容易理解的方法和语言说明复杂的概念。许多人认为他“开创了计算机书籍贴近大众的新风”,为我国的计算机普及画来作出了重要贡献。
谭浩强教授获全国高校教学成果奖(国家能奖)、国家科技进步奖,北京市政府授予“有突出贡献专家称号”。全国政协副主席、中国工程院院长宋健为他题词,知名人士他为“教授计算技术的大师,普及现代科技之巨擘”。《计算机世界》报组织的“世纪评选”指导他评为我国“20世纪最有影响的IT人物”10个人之一(排在第2位)。他的功绩是把千百万群众带入计算机的大门。
1 C 语言概述
1.1 C语言出现的历史背景
1.2 C 语言的特点
1.3 简单的C语言程序介绍
1.4 运行C程序的步骤与方法
1.4.1 运行C程序的步骤
1.4.2 上机运行C程序的方法
习题
2 程序的灵魂——算法
2.1 算法的概念
2.2 简单算法举例
2.3 算法的特性
2.4 怎样表示一个算法
2.4.1 用自然语言表示算法 1 C 语言概述
1.1 C语言出现的历史背景
1.2 C 语言的特点
1.3 简单的C语言程序介绍
1.4 运行C程序的步骤与方法
1.4.1 运行C程序的步骤
1.4.2 上机运行C程序的方法
习题
2 程序的灵魂——算法
2.1 算法的概念
2.2 简单算法举例
2.3 算法的特性
2.4 怎样表示一个算法
2.4.1 用自然语言表示算法
2.4.2 用流程图表示算法
2.4.3 3种基本结构和改进的流程图
2.4.4 用N-S流程图表示算法
2.4.5 用伪代码表示算法
2.4.6 用计算机语言表示算法
2.5 结构化程序设计方法
习题
3 数据类型、运算符与表达式
3.1 C语言的数据类型
3.2 常量与变量
3.2.1 常量和符号常量
3.2.2 变量
3.3 整型数据
3.3.1 整型常量的表示方法
3.3.2 整型变量
3.3.3 整型常量的类型
3.4 浮点型数据
3.4.1 浮点型常量的表示方法
3.4.2 浮点型变量
3.4.3 浮点型常量的类型
3.5 字符型数据
3.5.1 字符常量
3.5.2 字符变量
3.5.3 字符数据在内存中的存储形式及其使用方法
3.5.4 字符串常量
3.6 变量赋初值
3.7 各类数值型数据间的混合运算
3.8 算术运算符和算术表达式
3.8.1 C语言运算符简介
3.8.2 算术运算符和算术表达式
3.9 赋值运算符和赋值表达式
3.10 逗号运算符和逗号表达式
习题
4 最简单的C程序设计——顺序程序设计
4.1 C语句概述
4.2 赋值语句
4.3 数据输入输出的概念及在C语言中的实现
4.4 字符数据的输入输出
4.4.1 putchar函数
4.4.2 getchar函数
4.5 格式输入与输出
4.5.1 printf函数
4.5.2 scanf函数
……
5 选择结构程序设计
6 循环控制
7 数组
8 函数
9 预处理命令
10 指针
11 结构体与共用体
12 位运算
13 文件
14 常见错误和程序调试
附录A 常用字符与ASCII代码对照表
附录B C语言中的关键字
附录C 运算符和结合性
附录D C语言常用语法提要
附录E C库函数
参考文献