本书作为C/C++程序设计课程的教科书,共由11章组成。其主要内容包括:C语言简单程序的编写和调试,C语言程序设计基础(其中包括:基本数据类型和基本输入、输出函数、运算符与表达式),控制结构,数组,指针,函数,编译预处理与变量的存储类型,文件,结构体与共用体,图形程序设计基础,C++程序设计基础。每章后面都附有一定量的编程练习题,书后附有习题参考答案。全书内容安排紧凑,简明扼要,由浅入深,实用性强。该书可与《C/C++程序设计实验与习题指导》配套使用。
本书可作为大专院校非计算机专业本科生、研究生的相关课程的教学用书,也可作为计算机专业学生学习C/C++程序设计的教材,同时还可供自学者参考。
第1章 C语言简单程序的编写和调试
1. 1 C语言的特点
1. 2 程序与程序设计
1. 3 C程序的基本结构
1. 4 C程序的调试
1. 4. 1 编辑
1. 4. 2 编译
1. 4. 3 连接
1. 4. 4 运行
1. 4. 5 程序的跟踪调试
1. 5 程序举例
习题
第2章 C语言程序设计基础
2. 1 基本数据类型
2. 1. 1 C程序数据分类
2. 1. 2 常量. 符号常量与变量
2. 2 常用数据类型
2. 2. 1 整型数据
2. 2. 2 实型
2. 2. 3 字符型
2. 3 运算符和表达式
2. 3. 1 C程序的运算符和表达式的基本概念
2. 3. 2 算术运算符和算术表达式
2. 3. 3 关系运算符和关系表达式
2. 3. 4 逻辑运算符和逻辑表达式
2. 3. 5 赋值运算符和赋值表达式
2. 3. 6 自增. 自减运算符及其表达式
2. 3. 7 逗号运算符和逗号表达式
2. 3. 8 位运算符
2. 3. 9 其他运算符
2. 4 基本输儿输出函数
2. 4. 1 格式输出函数prinff()
2. 4. 2 格式输入函数scanf()
2. 4. 3 字符输出函数putchar()
2. 4. 4 字符输入函数getchar()
2. 5 程序举例
习题
第3章 控制结构
3. 1 程序的3种基本控制结构
3. 1. 1 C语句概述
3. 1. 2 C程序的逻辑结构
3. 2 if语句
3. 2. 1 简单if语句
3. 2. 2 if-else语句
3. 2. 3 else if语句
3. 2. 4 if语句的嵌套
3. 3 switch语句
3. 4 while语句
3. 5 do-while语句
3. 6 for语句
3. 7 几种循环语句的比较和循环嵌套
3. 8 break语句和continue语句
3. 8. 1 break语句
3. 8. 2 continue语句
3. 9 goto语句和语句标号
3. 10 程序举例
习题
第4章 数组
4. 1 一维数组
4. 1. 1 一维数组的引入
4. 1. 2 一维数组的定义和初始化
4. 1. 3 一维数组元素的引用
4. 2 多维数组
4. 2. 1 二维数组的定义和初始化
4. 2. 2 二维数组元素的引用
4. 3 字符数组
4. 3. 1 字符串与一维字符数组
4. 3. 2 二维字符数组
4. 3. 3 字符数组的输入和输出
4. 3. 4 字符串处理函数
4. 4 程序举例
习题
第5章 指针
5. 1 指针和地址
5. 2 指针变量的定义和引用
5. 3 指针运算
5. 4 指针与数组
5. 4. 1 指向一维数组的指针
5. 4. 2 指向二维数组的指针
5. 5 指针与字符串
5. 6 指向指针的指针
5. 7 用于动态内存分配的函数
5. 8 程序举例
习题
第6章 函数
6. 1 函数的定义和声明
6. 1. 1 函数的引入
6. 1. 2 函数的定义
6. 2 函数的调用与返回
6. 2. 1 函数的调用
6. 2. 2 函数的返回
6. 3 函数的参数
6. 3. 1 传值调用
6. 3. 2 传址调用
6. 4 命令行参数
6. 5 递归调用
6. 6 程序举例
习题
第7章 编译预处理与变量的存储类型
7. 1 宏定义
7. 1. 1 不带参数宏的定义
7. 1. 2 带参数宏的定义
7. 2 文件包含
7. 3 条件编译
7. 4 变量的存储类型
7. 4. 1 自动变量
7. 4. 2 静态变量
7. 4. 3 寄存器变量
7. 4. 4 外部变量
7. 5 多个源程序文件下的变量使用
7. 6 程序举例
习题
第8章 文件
8. 1 文件的基本概念
8. 1. 1 缓冲文件系统
8. 1. 2 非缓冲文件系统
8. 1. 3 文件指针和文件位置指针
8. 2 文件的打开与关闭
8. 2. 1 文件的打开函数fopen()
8. 2. 2 文件的关闭函数fclose()
8. 3 文件的输入/输出函数
8. 3. 1 按字符方式读/写文件的函数fgetc(), fputc()
8. 3. 2 按行方式读/写文件的函数fgets(), tputs()
8. 3. 3 按格式读/写文件的函数fpnnffO, fscanf()
8. 3. 4 按块读/写文件的函数fread(), fwrite()
8. 3. 5 文件定位函数
8. 4 非缓冲文件系统
8. 5 程序举例
习题
第9章 结构体与共用体
9. 1 结构体
9. 1. 1 结构体类型
9. 1. 2 结构体变量的定义
9. 1. 3 结构成员的引用
9. 1. 4 鲒构体变量的初始化
9. 2 结构数组
9. 3 结构指针
9. 4 结构与函数
9. 4. 1 结构体变量作为函数的参数
9. 4. 2 结构体变量的地址作为函数的参数
9. 4. 3 结构数组作为函数的参数
9. 5 共用体
9. 6 枚举
9. 7 用typedef定义类型
9. 8 链表
9. 8. 1 单向链表
9. 8. 2 链表的建立
9. 8. 3 链表的插入和删除
9. 9 程序举例
习题
第10章 图形程序设计基础
10. 1 图形适配器的基本工作方式
10. 2 常用图形函数
10. 3 图形程序举例
习题
第11章 C++程序设计基础
11. 1 C++程序结构
11. 2 C++的输入/输出流
11. 2. 1 输出流(cout)
11. 2. 2 输入流(cin)
11. 3 引用
11. 4 函数的重载
11. 5 带缺省参数的函数
11. 6 C++新增运算符
11. 6. 1 作用域运算符
11. 6. 2 动态内存分配与撤消运算符
11. 7 const修饰符
11. 8 类和对象
11. 8. 1 类和对象的定义
11. 8. 2 构造函数和析构函数
11. 8. 3 类的友元
11. 8. 4 this指针
11. 9 重载
11. 9. 1 类成员函数重载
11. 9. 2 类构造函数重载
11. 9. 3 运算符重载
11. 10 继承
11. 10. 1 基类与派生类
11. 10. 2 public继承
11. 10. 3 private继承
11. 10. 4 protected继承
11. 10. 5 多继承
11. 10. 6 派生类的构造函数和析构函数
11. 11 多态性和虚拟函数
11. 11. 1 多态性
11. 11. 2 虚拟函数
11. 11. 3 虚拟析构函数
习题
习题参考答案
第2章 C语言程序设计基础
第3章 控制结构
第4章 数组
第5章 指针
第6章 函数
第7章 编译预处理与变量的存储类型
第8章 文件
第9章 结构体与共用体
第10章 图形程序设计
第11章 C++程序设计基础
附录
附录A 常用字符与代码对照表
附录B C语言中的关键字
附录C 运算符的优先级与结合性
C语言是应用很广泛的一种语言, 它的结构简单. 数据类型丰富. 表达能力强. 使用灵活方便. C语言既有高级语言的优点, 又具有低级语言的许多特点. 用C语言编写的程序, 具有速度快. 效率高. 代码紧凑. 可移植性好的优点. 利用C语言, 可编制各种系统软件(例如著名的UNIX操作系统就是用C语言编写的)和应用软件. , C++是一种混合语言, 既有面向过程的知识. 又有面向对象的理论. 经过几年的教学实践, 我们认为把面向过程的程序设计作为切入点, 由面向过程到面向对象, 由浅入深, 循序渐进的教学方式比较容易被学生所接受. 因此, 本书在最后一章介绍了C++程序设计的基础知识.
本教材由11章组成. 每一章的基本内容如下:
第1章C语言简单程序的编写和调试, 介绍C程序的基本结构.
第2章C语言程序设计基础, 介绍C语言的基本数据类型.
第3章控制结构, 介绍C程序的3种控制结构.
第4章数组, 介绍一维数组和二维数组的定义和使用.
第5章指针, 重点介绍指针变量. 指针数组. 指向指针的指针等的定义和使用.
第6章函数, 讲解函数的定义. 函数的调用, 函数参数的传递.
第7章编译预处理与变量的存储类型, 介绍编译预处理命令和变量的几种存储类型.
第8章文件, 介绍文件操作的方法, 数据文件的读和写.
第9章结构体与共用体, 介绍结构体与共用体的使用, 以及它们对内存的占用情况.
第10章图形程序设计基础, 介绍编写图形程序的基本步骤, 基本图形函数.
第11章C++程序设计基础, 介绍C++对C的扩充, 以及面向对象的程序设计基础,
由于教材的主要对象是低年级大学生, 因此, 书中的内容, 尤其是举例考虑了低年级学生所具有的数学基础知识, 力求使学生学习起来的难度较小. 本教材在编写中努力做到概念清楚. 实用性强. 通俗易懂. 在编写中引入了大量的实例来说明相关的知识点, 力求让读者尽快上手编写简单程序, 引发学习的兴趣.
本书在组织编写上有以下特点:
1. 在内容的组织上考虑了C语言的特点. 例如, 在讲解数组后, 紧接着就进行指针的讲解, 使读者很容易将数组与指针联系起来, 更好地理解指针.
2. 文件是学生学习的一大难点. 本书将文件的使用提前讲解, 使读者尽早接触文件, 掌握文件的基本操作, 给大批量数据的处理带来方便. 同时可以较好地解决学生在学习C语言时不能熟练地掌握文件的使用方法, 而给学习C语言留下一大遗憾的问题.
3. 本书通过一个关于学生成绩处理的实例, 从简单变量到结构体, 始终用该实例贯穿各章. 使读者通过一个实例循序渐进地. 有比较地进行学习.
4. 本书提供了习题中的全部参考答案. 所有程序均在TurboC/VisualC++6. 0环境下调试通过. 由于篇幅有限, 书中的程序只给出了一种参考程序, 读者在学习过程中可以举一反三.
与本书一起出版的((C/C++程序设计实验与习题指导》是本书的配套教材, 在学习的过程中可通过完成该教材中相应的习题和上机实践加深对所学知识的理解, 达到真正掌握C/C++程序设计的目的.
本书第1, 4, 5, 6, 8, 9章由孙淑霞编写, 第2, 3章由何建军编写, 第7章由肖阳春编写, 第10,11章由彭舰编写. 丁照宇. 魏琴. 鲁红英. 袁爱新也参加了本书的部分编写工作. 由于作者水平有限, 书中难免有错误之处, 请读者批评指正.
最后要感谢高等学校电子信息类教材编委会在本书的出版过程中给予的指导和帮助, 特别要感谢王昌铭老师在该书的出版过程中所做的大量工作, 同时还要感谢电子工业出版社给予的大力支持.
对手使用本教材的学校, 如果需要书中例题程序, 可以直接与作者联系(作者邮件地址:ssx@cdut. edu. cn).
编著者
2004年10月