C C++程序设计基础与实践教程 第2版
作者:杨明莉,刘磊 主编
出版时间:2020年版
丛编项: 高等学校通识教育系列教材
内容简介
本书以C/C++语言程序设计基础为主,在第一部分,基础知识篇中利用十一个章节,注重讲解程序设计的概念、方法和思路;利用实训,培养同学的基本编程能力、以及逻辑思维和抽象能力。在第二部分,综合提炼篇中,以课程设计综合训练为辅,综合培养学生自主学习和综合练习的能力;以ACM-ICPC竞赛试题为提炼,凝练算法,提升结题思路和方法技巧等。全书体系编排新颖,内容丰富,通俗易懂。
目录
目录
基础知识篇
第1章C/C++C程序设计概述
1.1C/C++程序简介
1.1.1C/C++的发展历史
1.1.2C语言程序的特点
1.2算法
1.2.1算法的特性
1.2.2算法表示
1.3C语言程序的基本结构及基本词法
1.3.1C语言程序的基本结构
1.3.2C语言程序的基本词法
1.4面向对象程序设计概述
1.5C语言程序的编译环境和运行方法介绍
1.6Visual C++6.0的上机环境介绍
1.6.1Visual C++的安装和启动
1.6.2输入和编辑源程序
1.6.3编译、连接源程序
1.6.4建立和运行多文件程序
【实训1】在Visual C++ 6.0环境下运行C程序
本章小结
习题1
第2章数据类型、运算符与表达式
2.1C语言数据类型
2.2标识符、变量和常量
2.2.1标识符
2.2.2变量
2.2.3常量
2.3整型数据
2.3.1整型常量
2.3.2整型变量
2.4浮点型数据
2.4.1浮点型常量
2.4.2浮点型变量
2.5字符型数据
2.5.1字符常量
2.5.2字符变量
2.5.3字符串常量
2.6运算符与表达式
2.6.1算术运算符和算术表达式
2.6.2关系运算符和关系表达式
2.6.3逻辑运算符和逻辑表达式
2.6.4赋值运算符和赋值表达式
2.6.5逗号运算符和逗号表达式
2.6.6变量的自增、自减运算符
2.6.7长度运算符
2.6.8运算符的优先级、结合性及混合运算问题
2.7常用的输入与输出库函数
2.7.1字符数据的输入与输出
2.7.2格式输出与输入函数
2.8综合运算举例
【实训2】字符数据的输入与输出1
【实训3】字符数据的输入与输出2
本章小结
习题2
第3章程序控制结构
3.1顺序结构程序设计
3.2选择结构程序设计
3.2.1if语句的3种形式
3.2.2条件运算符和条件表达式
3.2.3switch语句实现多分支选择结构
3.3循环结构程序设计
3.3.1当型循环结构
3.3.2直到型循环结构
3.3.3次数型循环结构
3.3.4循环嵌套与多重循环结构
3.3.5几种循环语句的比较
3.3.6循环体内break语句和continue语句
3.4程序控制综合举例
【实训4】多分支选择结构程序设计
【实训5】双重循环结构程序设计
【实训6】多重循环结构程序设计
本章小结
习题3
第4章数组
4.1一维数组
4.1.1一维数组的定义
4.1.2一维数组的存储形式
4.1.3一维数组元素的引用
4.1.4一维数组的初始化
4.1.5一维数组程序设计举例
4.2二维数组及多维数组
4.2.1二维数组及多维数组的定义
4.2.2二维数组及多维数组的存储形式
4.2.3二维数组元素的引用
4.2.4二维数组元素的初始化
4.2.5二维数组程序设计举例
【实训7】数组程序设计
4.3字符数组与字符串
4.3.1字符数组的定义与初始化
4.3.2字符数组的输入与输出
4.3.3字符串处理函数
4.3.4字符数组程序设计举例
【实训8】字符数组程序设计
本章小结
习题4
第5章函数
5.1函数概述
5.1.1函数的概念
5.1.2函数的分类
5.2C函数的定义和调用
5.2.1函数的定义
5.2.2函数的调用
5.3函数间的数据传递
5.3.1值传递方式
5.3.2地址传递方式
5.3.3返回值方式
【实训9】函数应用程序设计
5.3.4全局变量传递方式
5.3.5变量的存储类型
5.4递归调用与递归函数
5.4.1递归函数的特点
5.4.2递归函数的设计
5.5内部函数和外部函数
5.5.1内部函数
5.5.2外部函数
【实训10】参数传递方式的程序设计
5.6函数应用程序综合举例
本章小结
习题5
第6章指针
6.1指针的基本概念
6.1.1内存地址、变量地址及指针
6.1.2指针变量的定义与引用
6.2指针与数组
6.2.1指针与一维数组
6.2.2指针与二维数组
6.2.3指针与字符串
6.2.4指针数组
6.2.5多级指针
6.3指针与函数
6.3.1指向函数的指针
6.3.2返回指针的函数
6.3.3主函数main()的参数
6.4指针程序综合举例
【实训11】指针程序设计
本章小结
习题6
第7章结构体和共用体
7.1结构体
7.1.1结构体概述
7.1.2结构体数组
7.1.3结构体指针
7.1.4结构体与函数
7.1.5结构体指针的应用——链表
7.2共用体
7.2.1共用体的基本概念
7.2.2共用体变量的引用和初始化
7.2.3共用体的应用
7.3枚举类型
7.3.1枚举类型的基本概念
7.3.2枚举变量的引用和初始化
7.3.3枚举类型的应用
7.4用户自定义类型
7.4.1用户自定义类型的定义形式
7.4.2用户自定义类型声明新类型的方法
7.4.3使用用户自定义类型的有关说明
7.5综合程序设计举例
【实训12】结构体程序设计
【实训13】共用体程序设计
本章小结
习题7
第8章位运算
8.1位运算符
8.1.1按位与运算
8.1.2按位或运算
8.1.3按位异或运算
8.1.4求反运算
8.1.5左移运算
8.1.6右移运算
8.2位域(位段)
8.2.1位域的定义和位域变量的说明
8.2.2位域的使用
本章小结
习题8
第9章文件
9.1C文件概述
9.2文件指针
9.3文件的打开与关闭
9.3.1文件打开函数fopen()
9.3.2文件关闭函数fclose()
9.4文件的读写
9.4.1读写字符函数fgetc()和fputc()
9.4.2读写字符串函数fgets()和fputs()
9.4.3读写数据块函数fread()和fwrite()
9.4.4读写格式化函数fscanf()和fprintf()
9.5文件的随机读写
9.5.1文件定位函数rewind()和fseek()
9.5.2文件的随机读写函数fread()和fwrite()
9.6文件检测函数
9.6.1文件结束检测函数feof()
9.6.2读写文件出错检测函数ferror()
9.6.3文件出错标志和文件结束标志置0函数clearerr()
9.7C语言的库文件
本章小结
习题9
第10章编译预处理
10.1宏定义
10.1.1不带参数的宏定义
10.1.2带参数的宏定义
10.2文件包含
【实训14】宏定义、文件包含的应用
10.3条件编译
10.3.1指定表达式真假值
10.3.2指定某种符号是否有定义
【实训15】条件编译的应用
本章小结
习题10
第11章面向对象程序设计基础
11.1面向对象程序设计
11.1.1面向对象基本原理
11.1.2面向对象程序设计的基本特点
11.2类与对象
11.2.1C++中类的定义
11.2.2类成员的访问控制
11.2.3类的成员函数
11.2.4类的对象变量定义及访问
11.3构造函数和析构函数
11.3.1构造函数
11.3.2析构函数
11.3.3指向对象的指针变量
11.4C++中的函数重载
【实训16】构造函数和析构函数的应用
11.5继承与派生
11.5.1C++的继承机制
11.5.2派生类的定义
11.5.3派生类的3种继承方式
11.5.4类型兼容规则
11.5.5派生类的构造函数和析构函数
11.5.6派生类成员的标识与访问
11.6多态性
11.6.1多态性概述
11.6.2虚函数
11.6.3纯虚函数和抽象类
【实训17】类的继承和派生、多态性的综合应用
本章小结
习题11
综合提炼篇
第12章综合课程设计
12.1课程设计的培养目标
12.2课程设计的目的和要求
12.3课程设计的实现步骤
12.4课程设计报告的书写格式
12.5课程设计的成绩评定
12.6课程设计报告封面格式
12.7课程设计报告任务书
第13章ACMICPC算法精解
13.1ACMICPC简介
13.2ACMICPC经典算法汇总
13.3ACMICPC算法精解举例
13.3.1三色旗问题
13.3.2八皇后问题
13.3.3Armstrong数
13.3.4最大访客数
13.3.5赌博游戏
13.3.6排列组合的算法
13.3.7奇数魔方阵
本章小结
附录AASCII码对照表
附录B常用运算符及其优先级
附录C常见的C库函数
参考文献