本书共分4篇,即基础编程、面向过程编程、面向对象编程和泛型编程,内容逐步深入。其中,基础编程篇介绍了选择和循环结构、数据和表达式的基本知识、数组结构和简单的指针使用; 面向过程编程篇介绍了函数的使用、标识符的作用域和变量的存储类型、指针的高级用法和预处理; 面向对象编程篇介绍了类与对象的封装性、继承性和多态性,以及对象的构造、运算符的重载、文件的使用、异常处理等; 泛型编程篇则介绍了模板和简单的STL编程。
本书可作为高等院校低年级学生的教材,也可作为其他相关人员根据不同层次要求学习C 语言的参考书。
1、本书程序例子进行了分类,分成A、B、C三类,A类基本用法,B类演示程序,C类典型程序。2、本书对一些计算的细节作了细致的分析,如实数计算会有误差,阶乘使用双精度保存可以适当避免算术溢出错误。3、练习题围绕提高编程能力,以编程为主,也有综合练习题提供了考试的各类题型。4、附录B有VisualC 编写控制台应用程序的简单操作,易于自学入门。5、附录C有使用标准名空间std的程序(本书采用)与早期不用std的程序之间的差异,以应对不用std的程序的重要考试,如江苏省C 等级考试。6、对输入输出流的格式操纵符的实现原理简单作了介绍。
前言
一、
本书的主要特点
本书的编写基于作者在多年的C 教学中改进教学形式的尝试。作为C 课程教材,作者除了将C 的主要内容写入本书外,还进行了一些教材上的补充和尝试,包括以下方面。
本书的C 内容兼顾C 国际标准和目前还在使用的C 旧版本,与大量C 旧版本的书籍和某些C 考试大纲相通,又顾及C 的使用趋势。
本书的结构是从非常基本的C 知识到泛型编程知识,共分4篇,第一篇是最基本的编写C 程序的知识,用于C 编程的快速入门,但也有足够丰富的内容;
第二篇可以使读者编写较为复杂的C 程序;
第三篇可以使读者利用面向对象的方法编写大规模的程序;
第四篇则提供了C 国际标准提倡的泛型编程方法。
本书在附录部分介绍了计算机基础知识、Visual C 软件的基本操作和基本调试功能、C 旧版本与新标准的比较。
本书的程序示例分为A、B、C三类,A类程序是最基本的C 的用法,B类程序是用于说明某个原理和用法的演示程序,C类程序是比较经典具有实用性的C 程序。当读者通过B类程序了解了程序的运行原理后,B类程序几乎可以弃之不用。C类程序是值得熟记的程序。
本书以提高读者编写程序的能力为主要目的,练习基本上是大量的编程题。全书4篇中的前3篇,每一篇的末尾都提供了综合练习题,以类似试卷的形式给读者提供熟悉课程考试和计算机等级考试的题型。
对于本书可以有层次地进行学习,当读者时间有限时可以只学习第一篇,能够基本掌握C 编程知识并能编写各种不太复杂的程序,再学一下第6章就可以掌握大量以编程为工具的各种计算机知识。如果不考虑编写大规模程序,学到第二篇就可以了。第三篇是用于设计大规模程序的知识,使用了面向对象的编程方法。第四篇是C 发展后期面向对象方法的新的发展泛型编程方法,利用类型作为参数,可以编写更加精致、高效的程序。
书中有少量加*的内容,是选讲或选做的内容。
二、
第2版的改进
本书第1版经过3年的教学使用,发现了一些内容上的不足,针对这些不足,本书做了改进,主要有以下几个方面。
考虑到自学的需要,本书增加了书上部分题解和相关程序编写中容易出现的错误作为附录A,在没有教师指导的情况下,附录A的内容可以作为读者做题的参考,可使读者了解到编程常见的错误,从而提高自己的编程能力。附录A中选择的题目都是编程时容易犯错的题目,或者是常见算法的题目,或者是特别难的题目。前三篇末尾的综合练习题答案和附录B的练习答案也放在附录A的后面。
本书将第1版的Visual C 6.0程序全部改成了第2版的Visual Studio 2008程序,剔除了少量多余或重复的程序示例。本书中的内容也针对不同版本做了相应改动,第15章内容改动相对较多。
本书在第8章指针的高级用法中增加了一小节内容,专门讲容易混淆误用的指针表达式以及指针的各种复杂关系。
本书在第10章到第14章的程序中,对象成员函数如show()、get()等均用const说明为常成员函数,以顺应目前C 的编程特点。第12章之后程序使用到的字符串都改为C 的string类字符串。
本书中的练习做了少量改动或次序调整,难一些的题目给出了提示。
针对第1版内容有些地方不够详细,而且全书知识重点不够突出的情况,第2版增加了很多注解,并以粗体楷体字的形式突出显示,这些注解集中在C 最主要的知识点、易错的知识点、拓展的知识点方面。
三、
致谢
在本书再版的过程中得到了张强老师、黄达明老师的热心帮助,他们的知识和经验融入到了本书第2版的内容中,作者在此向他们及其他直接、间接对本书出版提供过帮助的人表示衷心的感谢。
作者2017年10月