前言

C语言是应用很广泛的一种语言,它的结构简单、数据类型丰富、表达能力强、使用灵活方便。C语言既有高级语言的优点,又具有低级语言的许多特点。用C语言编写的程序,具有速度快、效率高、代码紧凑、可移植性好的优点。利用C语言,可编制各种系统软件(例如著名的UNIX操作系统就是用C语言编写的)和应用软件。

C++是一种混合语言,既有面向过程的知识,又有面向对象的理论。经过几年的教学实践,我们认为把面向过程的程序设计作为切入点,由面向过程到面向对象,由浅入深,循序渐进的教学方式比较容易被学生所接受。因此,本书在第11章介绍了C++程序设计的基础知识。

本教材由12章组成。每一章的基本内容如下:

第1章 C/C++语言程序设计概述,介绍C/C++程序的基本结构。

第2章 C语言程序设计基础,介绍C语言的基本数据类型。

第3章 控制结构,介绍C程序的3种控制结构。

第4章 数组,介绍一维数组和二维数组的定义和使用。

第5章 指针,重点介绍指针变量、指针数组、指向指针的指针等的定义和使用。

第6章 函数,讲解函数的定义、函数的调用,函数参数的传递。

第7章 编译预处理与变量的存储类型,介绍编译预处理命令和变量的几种存储类型。

第8章 文件,介绍文件操作的方法,数据文件的读和写。

第9章 结构体与共用体,介绍结构体与共用体的使用,以及它们对内存的占用情况。

第10章 图形程序设计基础,介绍编写图形程序的基本步骤,基本图形函数。

第11章 C++程序设计基础,介绍C++对C的扩充,以及面向对象的程序设计基础。

第12章 查找与排序。

本教材在编写中努力做到概念清楚、实用性强、通俗易懂。在编写中引入了大量的实例来说明相关的知识点,力求让读者尽快上手编写简单程序,激发学习兴趣。

本书在组织编写上有以下特点:

1.在内容的组织上考虑了 C 语言的特点。例如,在讲解数组后,紧接着就进行指针的讲解,使读者很容易将数组与指针联系起来,更好地理解指针。

2.文件是学生学习的一大难点。本书将文件的使用提前讲解,使读者尽早接触文件,掌握文件的基本操作,给大批量数据的处理带来方便。同时可以较好地解决学生在学习C语言时不能熟练地掌握文件的使用方法,而给学习C语言留下一大遗憾的问题。

3.全书坚持把面向过程的程序设计作为切入点,由面向过程到面向对象,由浅入深,循序渐进,使其教学内容更容易被学生接受。把C和C++的内容分开,是为了教师更容易选择章节进行教学。

4.每章后面都有“本章学习指导”,共由如下三部分组成。

(1)课前思考:课前预习是必要的,课前思考中的问题可用于老师或学生检查其预习效果。

(2)本章难点:总结归纳了本章学习中的难点,以便学生了解并攻克难点。

(3)本章编程中容易出现的错误:C程序中的错误有语法错和算法错,这里总结了一些初学者常犯的错误,以便帮助初学者避免不必要的错误。

5.本书提供了习题中的全部参考答案。所有程序均在Turbo C/Visual C++ 6.0环境下调试通过。由于篇幅有限,书中的程序只给出了一种参考程序,读者在学习过程中可以举一反三。

6.本书作为国家精品课程的配套使用教材,在精品课程网站上全开放地提供了大量资源,授课视频等。

与本书一起出版的《C/C++程序设计实验指导与测试》(第3版)是本书的配套教材,在学习过程中通过完成该配套教材中相应的习题和上机编程的练习加深对所学知识的理解,达到真正掌握C/C++程序设计的目的。

要想学好程序设计课程,需要教师和学生的共同努力。对于学习者来说,需要多动手,多实践,多思考。一分耕耘,一分收获,坚持耕耘定会得到意想不到的收获。

本书第1, 4章由孙淑霞编写,第2, 3, 7章由肖阳春编写,第5, 6章由魏琴编写,第8, 9, 12章由李瑾坤编写,第10, 11章由彭舰编写。全书由孙淑霞统稿。魏琴、刘焕君为本课程制作了美观、符合授课要求的课件。丁照宇、李思明、刘焕君、鲁红英、安红岩、陈佩良参加了本精品课程的建设和本书编写过程中的部分工作。

由于作者水平有限,书中难免有错误之处,请读者批评指正。

最后要感谢为本书提出宝贵意见的老师和读者,特别要感谢电子工业出版社在本书出版过程中给予的大力支持。

该书作为国家级精品课程《C/C++程序设计》使用的教材,进行了配套的资源建设。对于使用本教材的学校,如果需要课件、例题源程序等,可以从该课程的精品课程网站http://www.cne.cdut.edu.cn/zy/cjpkc/index.asp 上直接下载,也可以直接与我们联系(邮件地址:ssx@cdut.edu.cn)。

编著者

2009年10月