《C程序设计实用教程》是作者多年以谭浩强先生的《C程序设计》为教材从事C语言教学的经验、应用和研究成果的总结,在很多方面还有所延伸和创新。本书能够加深读者的理解,开阔读者的视野,提高读者的编程能力。本书面向应用,注重算法应用和解题方法,将函数和指针视为家常便饭。全书突出了计算思维的运用。
全书共分7章,内容包括C语言概述、分支与循环、数组与结构体、指针与链表、递归、文件操作和程序设计竞赛介绍。
电子数字计算机和Internet的出现缩短了人与人之间的距离,在时间、空间、情感和思维等多个方面改变了人类的生活、生产和思维方式,把人类社会推向了一个崭新的阶段。现在,世界上已经几乎没有人能够避免与计算机直接或间接地打交道了。但计算机并不能理解人们的情感、行为和语言,人们与计算机的“交往”一般是通过计算机的操作系统调度执行各种程序来实现的。而程序是按照一定规则组织起来实现一定功能或完成一定任务的计算机指令集合,是计算机能够“理解”的语言。最常见的程序是 *.exe文件。
要得到一个计算机程序,首先要用计算机编程语言编写相应的源程序。在计算机编程语言发展的早期,操作系统(如UNIX、DOS)等系统软件甚至一些应用软件主要是用汇编语言编写的。用汇编程序对一个正确的汇编语言源程序进行汇编、链接就得到一个程序。由于汇编语言是低级编程语言,它直接针对计算机硬件,因此只有非常了解计算机硬件才能编写汇编语言程序。这样一来,用汇编语言所编写的系统软件和应用程序的可读性和可移植性都比较差,而且程序编写和维护的难度也很大,因此汇编语言不能为广大计算机应用人员和计算机编程人员所普遍接受。于是各种高级编程语言(高级语言)就应运而生了。人们熟知的高级语言有BASIC语言、FORTRAN语言、PASCAL语言、C语言和C++语言等,现在更有Visual BASIC、Visual C++、C#和Java等可视化的面向对象的高级编程语言。
用高级语言编写的源程序也是计算机不能直接执行的。BASIC语言源程序(程序)的每一次执行必须通过BASIC解释程序进行解释,边解释边执行; 解释程序的作用就像外交场合的“同声翻译”一样。其他高级语言源程序要经过相应语言的编译系统编译、链接成计算机程序,才能执行; 编译系统的作用就像外交场合的“书面翻译”一样,只要翻译一次,得到的程序一般就可以在不同的机器上多次执行。
然而,一般高级语言难以实现汇编语言的某些功能(如地址操作和位操作等)。人们需要一种既具有低级语言优点,又具有一般高级语言优点的高级语言。C语言正是集二者之优点于一身的当之无愧的高级语言,它是国内外广泛使用的执行效率最高且可以直接操作硬件的计算机编程语言。C语言既可以用来开发系统软件,也可以用来编写应用软件,甚至在某些场合可以用来代替汇编语言开发硬件驱动程序。因而C语言是计算机专业人员和计算机应用人员都应当掌握的一种高级编程语言。
国内最著名的C语言教科书莫过于谭浩强先生的《C程序设计》。以谭先生的著作为蓝本的其他C语言教科书也非常多。本书是作者多年以谭先生著作为教材从事C语言教学的经验、应用和研究成果的总结,在许多方面还有所延伸和创新。本书能够加深读者的理解,开阔读者的视野,提高读者的编程能力。本书面向应用,将C语言的绝大多数理论和语法集中在第1章讲解,以便使读者从整体上系统地了解和掌握,而其他章节主要讲述算法应用和解题方法。由于函数的重要性并为了突出模块化程序设计的思想,本书从第1章就开始使用函数,而未将函数单独列章; 又由于指针的困难性,本书也从第1章就开始使用指针以加强训练; 总之,本书将函数和指针视为家常便饭。另外,由于共用体类型和位运算都很少使用,本书没有展开讲解它们,对枚举类型讲述也较少。
全书共分7章,其中,第1章和第5章由周炜执笔,第2章由周炜、徐云飞执笔,第3章由周炜、雷晓莉执笔,第4章由钟红艳执笔,第6章和第7章由王晓楠执笔,附录A由王晓楠制作。全书由周炜策划、修改和统稿。第1章集中了C语言除文件操作以外的大部分理论和语法,因而值得结合有关章节反复研读和练习。电子课件由徐云飞制作。
本书可以作为国内高校各层次、各专业C语言程序设计课程的教材和参考书,也可以作为国家计算机等级考试和国内外各种程序设计大赛的复习、参考和强化训练用书。
在本书中,对“程序”和“源程序”两个术语不加区别,请读者根据上下文理解。
本书大部分内容曾在空军工程大学防空反导学院本科生和大专生中讲授多年。本书以Turbo C++3.0为主要平台,兼顾Turbo C 2.0和Microsoft Visual C++6.0。由于作者水平有限,书中(特别是例程序中)一定还有作者未发现的错误、缺点和纰漏。恳请广大读者批评指正,作者不胜感激!
周炜
2014年6月