C语言是近年来在国内外得到迅速推广应用的一种计算机语言。C语言功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,既具有**语言的优点,又具有低级语言的许多特点。因此,C语言特别适合于编写系统软件。C语言诞生后,许多原来用汇编语言编写的软件,现在可以用C语言编写了(例如,**的UNIX操作系统就是用C语言编写的),而学习和使用C语言要比学习和使用汇编语言容易得多。 现在,C语言已不仅为计算机专业工作者所使用,而且为广大计算机应用人员(包括大量非计算机专业出身的使用计算机的人们)所喜爱和使用。许多高等学校,不仅在计算机专业开设了C语言课程,而且在非计算机专业也开设了C语言课程。全国计算机等级考试、全国计算机应用技术证书考试(NIT)和全国各地区组织的大学生计算机统一考试都将C语言列入了考试范围。许多人已经用它编写应用软件。学习C语言已经成为广大计算机应用人员和广大青年学生的迫切要求。 由于C语言牵涉到的概念比较复杂,规则繁多,使用灵活,容易出错,不少初学者感到困难,迫切希望有一本易于入门、容易学习的C语言教材。在许多同志的鼓励和督促下,作者于1991年编写了一本《C程序设计》,由清华大学出版社出版,以期抛砖引玉。该书针对初学者的特点和认识规律,精选内容,分散难点,降低台阶,例题丰富,通过通俗易懂的叙述阐明了复杂的概念,并力求做到内容新颖、概念清晰、实用性强、通俗易懂。该书出版后受到广大读者的热烈欢迎,许多学校的老师和学生寄来了热情洋溢的信件,认为该书“是学习C语言的好教材”,“使初学者少走了许多弯路”,“使我们对C语言由害怕到兴趣盎然”。全国大多数高校采用该书为教材。许多在职干部和计算机爱好者通过自学该书掌握了C语言程序设计。几年来,该书发行量超过270万册,创全国同类书发行量的首位,荣获**电子工业部**教材一等奖、全国高等院校计算机基础教育研究会**教材一等奖、全国大学出版社**畅销书特等奖。这是对作者的莫大鼓励和鞭策。我深切地感受到广大读者对作者的殷切期望。 根据计算机科学技术的发展,尤其是C语言的发展,在广大读者的敦促下,我对《C程序设计》一书进行了修订,出版第二版。本书保持了**版的写作风格,保留了通俗易懂的特点,并在以下几方面做了较大的修改补充: (1)加强了算法。专门增加了第2章(程序的灵魂——算法),介绍算法的概念和结构化程序设计方法。已学过其他语言程序设计的读者可以跳过本章。 (2)以新标准C的规定为依据,对书中各个部分进行修改,例如对函数形参的声明采用现代方式,允许对非静态数组初始化等。 (3)对各章内容和文字均细致地进行了修改,以使读者更容易理解。 (4)为了使读者对C++有初步的了解,为今后学习C++打下初步基础,专门增加了第14和15章,介绍C++的初步知识,供读者选学。 相信修订后的第二版会更加符合读者的需要。 作者认为,在学校中学习程序设计的目的是进行程序设计的基本训练,而不是要求学生立即编写大型程序,也不能设想今后一辈子只使用在学校里学过的某一种语言。因此,学习程序设计课程时,应该把精力放在*基本、*常用的内容上,开始时不必在每一个细节上死背死抠,在有一定基础后再深入到一些常见的细节,有一些细节是需要通过较长期的实践才能熟练地掌握。初学时切忌过早地滥用C的某些容易引起错误的细节(如不适当地使用++和一一的副作用)。学习程序设计,一定要学活用活,不要死学不会用,要举一反三,在以后需要时能很快地掌握一种新的语言。 程序设计是一门实践性很强的课程,既要掌握概念,又要动手编程,还要上机调试运行。希望读者一定要重视实践环节,包括编程和上机。衡量这门课学习的好坏,不是看“知不知道”,而是看“会不会干”。不要满足于能答出是非题和选择题,而应当把**放在编制程序和调试程序上。 为了帮助读者学习本书,作者还编写了一本《C程序设计题解与上机指导(第二版)》,提供本书中各章习题的绝大部分参考答案以及上机实习指导,由清华大学出版社于2000年出版。 作者从事计算机教育和计算机普及工作20年来,*深刻的体会是:作者心中要永远装着读者,要处处为读者考虑,要和读者“将心比心”。要深入了解自己工作的对象,准确定位。认真研究他们的认识规律,有的放矢。用读者容易理解的方法进行叙述,深入浅出。我的心中经常感受到千万读者殷切期望的目光。读者热切地期望作者能为他们写出一批好书,使他们的学习能事半功倍。作者多年来以此来鞭策自己,希望能摸索出一些能减少初学者困难的经验,并做了一些探索和尝试。要写好一本书,是不容易的。写书不仅是简单地把有关的技术内容告诉读者,而且要考虑怎样写才能使读者容易理解。要下很大的功夫,有时为了找到一个好的例子或一个通俗的比喻,苦苦思索好几天,每一句话都要反复斟酌推敲。我们殷切希望计算机界的同行们,能共同努力,研究和探索计算机教学和教材建设的规律,写出更多的好书,使更多的人更容易地进入计算机应用的大门。 谭亦峰同志参加了本书部分章节的编写和程序调试工作。由于作者水平有限,本书肯定会有不少缺点和不足,热切期望得到专家和读者的批评指正。 *后,对多年来关心支持本书和本书作者的领导和同志们表示由衷的感谢。尤其是原国务委员、科委主任、现任全国政协副主席、中国工程院院长宋健院士,全国人大副委员长、原中国科学院院长卢嘉锡院士,原中国计算机学会理事长、中国科学院**院士张效祥先生等前辈给予作者有力的支持和指导。全国高等院校计算机基础教育研究会副理事长刘瑞挺教授、史济民教授、吴文虎教授、张森教授、高林教授多年来始终全力支持和帮助作者在计算机教育和计算机普及领域所从事的工作。全国高校广大教师多年来和我们共同奋斗,千万读者每时每刻都给予我们巨大的、宝贵的关心和支持。清华大学出版社十几年始终与我们密切合作,没有这一切,我将一事无成。我永远感谢曾经帮助和支持过我的、我相识的和不相识的同志和朋友。