内容简介
本书根据教育部考试中心新颁布的考试大纲编写,是教育部考试中心组织编写的全国计算机等级考试系列教程之一。 本书内容精练、实用性强、叙述通俗、简易可读,每章之后都附有一定数量的习题,是参加二级C++语言程序设计考试者必备的教材。本书也可以作为大专院校非计算机专业的计算机入门参考书。
目录
第1章 C++语言概述
1.1 C++语言的发展
1.2 C++语言的特点
1.3 面向对象程序设计
1.4 C++语言的基本符号
1.5 C++语言的词汇
1.5.1 关键字
1.5.2 标识符
1.5.3 字面常量
1.5.4 运算符
1.5.5 标点符号
1.6 C++程序的基本框架
1.7 C++程序的开发过程
1.7.1 编辑
1.7.2 编译
1.7.3 连接
1.7.4 运行和调试
本章小结
习题1
第2章 数据类型、运算符和表达式
2.1 C++语言的数据类型
2.1.1 基本类型
2.1.2 基本类型的派生类型
2.2 常量
2.2.1 逻辑常量
2.2.2 字符常量
2.2.3 整型常量
2.2.4 实型常量
2.2.5 枚举常量
2.3 变量
2.3.1 变量的定义
2.3.2 变量的使用方式
2.3.3 符号常量声明语句
2.4 运算符和表达式
2.4.1 运算符和表达式的概念
2.4.2 运算类型与运算符
2.4.3 赋值运算
2.4.4 算术运算符和算术表达式
2.4.5 关系运算符和关系表达式
2.4.6 逻辑运算符和逻辑表达式
2.4.7 位运算
2.4.8 其他运算
2.4.9 优先级和结合性
本章小结
习题2
第3章 基本控制结构
3.1 C++语句
3.2 顺序结构
3.2.1 声明语句
3.2.2 表达式语句
3.2.3 基本输入输出
3.2.4 复合语句和空语句
3.3 选择结构
3.3.1 if语句
3.3.2 switch语句
3.4 循环结构
3.4.1 for语句
3.4.2 while语句
3.4.3 do…while语句
3.4.4 循环的嵌套
3.5 跳转语句
3.5.1 break语句
3.5.2 continue语句
3.5.3 return语句
3.5.4 goto语句
本章小结
习题3
第4章 数组、指针与引用
4.1 数组
4.1.1 一维数组
4.1.2 多维数组
4.1.3 字符数组
4.2 指针
4.2.1 指针和地址
4.2.2 指针和数组
4.2.3 空指针、无类型指针和const指针
4.3 引用
4.4 动态存储分配
本章小结
习题4
第5章 函数
5.1 函数定义
5.2 函数调用
5.3 函数原型
5.4 函数返回类型
5.5 函数参数
5.5.1 参数的传递方式
5.5.2 默认参数
5.6 函数重载
5.7 内联函数
5.8 递归函数
5.9 变量的生存周期
本章小结
习题5
第6章 类和对象
6.1 类的定义
6.1.1 类的定义
6.1.2 类成员的访问控制
6.1.3 类的数据成员
6.1.4 类的成员函数
6.2 对象的定义
6.2.1 对象的定义
6.2.2 对象的成员
6.3 构造函数和析构函数
6.3.1 构造函数和析构函数的定义
6.3.2 默认构造函数和默认析构函数
6.3.3 复制构造函数
6.4 自由存储对象
6.5 this指针
6.6 静态成员
6.6.1 静态数据成员
6.6.2 静态成员函数
6.7 常成员
6.7.1 常对象
6.7.2 常成员函数
6.7.3 常数据成员
6.8 友元
6.8.1 友元函数
6.8.2 友元类
6.9 对象数组
6.10 成员对象
本章小结
习题6
第7章 继承和派生
7.1 继承与派生
7.1.1 基本概念
7.1.2 派生类的定义与构成
7.2 派生类对基类成员的访问
7.3 派生类的构造函数和析构函数
7.3.1 派生类的构造函数
7.3.2 派生类的析构函数
7.4 多继承与虚基类
7.4.1 多继承中的二义性问题
7.4.2 虚基类的定义
7.4.3 虚基类的构造函数
7.5 子类型关系
7.6 虚函数与多态性
7.6.1 多态性的概念
7.6.2 虚函数
7.6.3 虚析构函数
7.6.4 纯虚函数与抽象类
本章小结
习题7
第8章 运算符重载
8.1 运算符函数与运算符重载
8.2 典型运算符的重载
8.2.1 关于分数类fraction
8.2.2 重载取负运算符“-”
8.2.3 重载加法运算符“+”
8.2.4 重载增量运算符“++”
8.2.5 重载类型转换符“long”
8.2.6 重载赋值运算符“=”
8.2.7 重载复合赋值运算符“+=”
8.2.8 重载关系运算符“>”
8.2.9 重载下标访问运算符“[]”
8.2.10 重载流运算符“>>”和“<<”
8.3 运算符重载应注意的几个问题
本章小结
习题8
第9章 模板
9.1 函数模板
9.2 类模板
本章小结
习题9
第10章 C++流
10.1 C++流的概念
10.1.1 C++流的体系结构
10.1.2 预定义流对象
10.1.3 提取运算符>>和插入运算符<<
10.1.4 有格式输入输出和无格式输入输出
10.1.5 操作符
10.2 输入输出的格式控制
10.2.1 默认的输入输出格式
10.2.2 格式标志与格式控制
10.2.3 输入输出宽度的控制
10.2.4 浮点数输出方式的控制
10.2.5 输出精度的控制
10.2.6 对齐方式的控制
10.2.7 小数点处理方式的控制
10.2.8 填充字符的控制
10.2.9 插入换行符
10.2.10 输入输出数制状态的控制
10.3 文件流
10.3.1 文件流的建立
10.3.2 文件流的关闭
10.3.3 文件流状态的判别
10.3.4 文件流的定位
10.3.5 有格式输入输出
10.3.6 无格式输入输出
本章小结
习题10
附录1 考试指导
附录2 使用Visual C++2010学习版编写标准C++程序
附录3 C/C++常用标准库函数
附录4 ASCII码表
附录5 全国计算机等级考试二级c++语言程序设计考试大纲(2018年版)
附录6 全国计算机等级考试二级C++语言程序设计样题及参考答案
附录7 习题参考答案
C++编程语言精粹:深入理解与实践 前言 在当今信息化浪潮席卷全球的时代,计算机编程已不再是少数技术专家的专属技能,而是越来越多领域不可或缺的沟通桥梁和实现工具。C++作为一门功能强大、应用广泛的编程语言,其深厚的理论基础和灵活的实践能力,使其在操作系统、游戏开发、高性能计算、嵌入式系统等众多领域扮演着举足轻重的角色。本书旨在带领读者系统性地掌握C++编程的核心概念,从基础语法到高级特性,从理论讲解到实际应用,帮助读者建立起扎实的C++编程功底,为进一步深入学习和开发打下坚实的基础。 第一章 C++语言概述与基础 本章将为您揭开C++的神秘面纱。我们将从C++的起源和发展历程讲起,让您了解这门语言为何如此重要。随后,我们将深入探讨C++的基本构成,包括程序的基本结构、注释的编写规范以及如何进行程序的编译和运行。这一章,您将学会如何编写您的第一个C++程序,并初步理解代码是如何被计算机识别和执行的。我们将详细介绍C++中的基本数据类型,如整型、浮点型、字符型等,以及变量的声明与使用。同时,您还将学习到C++中的运算符,包括算术运算符、关系运算符、逻辑运算符、赋值运算符等,并理解它们在表达式中的运算顺序和优先级。控制流程是程序设计的灵魂,本章将重点讲解顺序结构、选择结构(if-else语句、switch语句)和循环结构(while循环、for循环、do-while循环),让您能够编写出能够根据不同条件做出决策并重复执行特定任务的程序。 第二章 函数:模块化编程的基石 函数是实现模块化编程的关键。本章将引导您理解函数的概念、作用以及如何定义和调用函数。您将学习到函数的参数传递机制(值传递和引用传递),以及如何通过函数返回值来获取计算结果。我们将深入探讨函数的重载,让您理解如何在同一作用域内定义多个同名函数,但它们的参数列表不同。同时,您还将学习到递归函数,一种函数调用自身的技术,并理解其应用场景和实现方式。作用域是理解变量生命周期的重要概念,本章将详细讲解局部变量和全局变量的区别,以及它们的作用域规则。 第三章 数组与指针:内存的直接操控 数组是存储同类型数据集合的强大工具。本章将为您详细介绍一维数组和多维数组的声明、初始化和访问方法。您将学习到如何遍历数组,以及数组在函数中的应用。指针是C++中一个非常重要的概念,它允许您直接操作内存地址。本章将循序渐进地讲解指针的声明、初始化、解引用操作以及指针与数组的关系。您将深入理解指针的算术运算,以及指针在函数参数传递中的应用。通过本章的学习,您将能够更加灵活地管理内存,并编写出更高效的程序。 第四章 字符串与字符串处理 字符串是程序中处理文本信息的核心。本章将介绍C++中字符串的两种主要表示方式:C风格字符串(字符数组)和C++标准库中的`std::string`类。您将学习到如何创建、访问和修改字符串,并掌握各种常用的字符串操作,如字符串的拼接、查找、替换、分割等。我们将重点讲解`std::string`类提供的丰富功能,以及它与C风格字符串之间的转换。通过对本章内容的学习,您将能够轻松应对各种文本处理任务。 第五章 结构体与共用体:自定义数据类型 结构体和共用体是C++中两种重要的用户自定义数据类型,它们允许您将不同类型的数据组合成一个整体。本章将详细讲解结构体的定义、成员访问以及结构体变量的初始化。您将学习如何将结构体作为函数的参数和返回值,以及如何定义结构体数组。共用体与结构体类似,但其所有成员共享同一块内存空间,本章将解释共用体的特点、定义和应用场景。您还将学习到枚举类型,一种定义一组命名常量的有效方式,以及它在程序设计中的应用。 第六章 类与对象:面向对象编程的基石 面向对象编程(OOP)是现代软件开发的主流范式,而类和对象是OOP的核心。本章将为您详细介绍类的概念,包括类的定义、成员变量(属性)和成员函数(方法)。您将学习如何创建类的实例(对象),以及如何通过对象访问类的成员。我们将深入讲解构造函数和析构函数,它们在对象的创建和销毁过程中自动执行,对于资源的管理至关重要。封装是OOP的重要原则之一,本章将介绍访问修饰符(public, private, protected),以及它们如何控制成员的访问权限。 第七章 继承与多态:代码复用与灵活性 继承是OOP实现代码复用的重要机制,它允许一个类(派生类)继承另一个类(基类)的属性和方法。本章将详细讲解类的继承方式(公有继承、保护继承、私有继承),以及派生类如何访问基类的成员。您将学习到虚函数和纯虚函数,它们是实现多态的关键。多态允许使用一个基类指针或引用指向不同的派生类对象,从而实现动态绑定和代码的灵活性。本章还将介绍抽象类和接口,它们在设计面向对象系统时发挥着重要作用。 第八章 C++标准库:高效开发利器 C++标准库提供了大量预先编写好的类和函数,极大地提高了开发效率。本章将为您介绍C++标准库中一些最常用和最重要的部分。我们将重点讲解输入/输出流库(iostream),包括如何使用`cin`和`cout`进行控制台输入输出,以及文件流(fstream)进行文件的读写操作。您还将学习到STL(Standard Template Library),这是C++中最强大的库之一,它提供了各种容器(如`vector`, `list`, `map`, `set`)、算法(如排序、查找)和迭代器,能够帮助您高效地管理和处理数据。 第九章 异常处理:健壮程序的保障 程序在运行过程中难免会遇到各种错误和异常情况。本章将为您介绍C++的异常处理机制。您将学习如何使用`try`, `catch`, `throw`关键字来捕获和抛出异常,从而使程序在遇到错误时能够优雅地处理,而不是直接崩溃。我们将讲解异常处理的优势,以及如何编写更健壮、更可靠的程序。 第十章 文件操作:数据的持久化存储 在实际应用中,数据的持久化存储是必不可少的。本章将详细介绍C++中进行文件操作的方法。您将学习如何打开、关闭文件,以及如何以文本模式和二进制模式读写文件。我们将深入讲解文件流类(`ifstream`, `ofstream`, `fstream`)的使用,以及文件指针的控制。通过本章的学习,您将能够将程序产生的数据保存到文件中,并在需要时重新读取。 结论 C++是一门博大精深的语言,本书内容涵盖了C++编程的各个重要方面。希望通过本教程的学习,您能够建立起对C++语言的全面认识,掌握其核心概念和常用技巧,并能够运用所学知识解决实际的编程问题。编程能力的提升是一个循序渐进的过程,坚持实践,不断探索,您必将在C++的世界中游刃有余,创造出属于自己的精彩。 致谢 感谢所有支持和鼓励本书完成的读者。愿您在C++的编程之旅中,收获知识,激发创造,开启无限可能。
作为一名对计算机科学抱有浓厚兴趣的非计算机专业学生,我一直在寻找一本能够帮助我快速入门C++并顺利通过二级考试的书籍。这本书凭借其出色的内容和易于理解的讲解方式,完全超出了我的预期。它在知识点的讲解上,非常注重基础的构建,从最简单的“Hello, World!”程序开始,逐步引导读者理解变量、数据类型、控制流语句等核心概念。我尤其欣赏书中对每一个概念的解释都辅以大量的代码示例,这些示例都经过精心设计,能够清晰地展示所讲解知识点的应用。书中的章节安排也非常合理,逻辑清晰,每一章都建立在前一章的基础上,让学习过程更加连贯。更重要的是,书中提供了大量的练习题,这些练习题的难度适中,并且覆盖了各个知识点,我通过反复练习,对C++的语法和逻辑有了更深的理解。我还注意到书中对错误处理和异常机制也有一定的介绍,这让我觉得这本书在帮助我打牢基础的同时,也为我未来更深入的学习打下了良好的基础。这本书不仅让我能够应对考试,更让我对编程产生了浓厚的兴趣,这对我未来的学习和职业发展都意义重大。