杂项笔记整理,备考计算机二级的一个月。.

# 1. 二叉树的遍历

四种主要的遍历思想:

前序遍历:根结点 ---> 左子树 ---> 右子树

中序遍历:左子树 ---> 根结点 ---> 右子树

后序遍历:左子树 ---> 右子树 ---> 根结点

层次遍历:只需按层次遍历即可

前序遍历:1 2 4 5 7 8 3 6

中序遍历:4 2 7 5 8 1 3 6

后序遍历:4 7 8 5 2 6 3 1

层次遍历:1 2 3 4 5 6 7 8

用整体思想去考虑问题。

# 2. 结构化程序设计

结构化程序设计(structured programming)是进行以模块功能和处理过程设计为主的详细设计的基本原则。结构化程序设计是过程式程序设计的一个子集,它对写入的程序使用逻辑结构,使得理解和修改更有效更容易。

基本结构:顺序结构、选择结构、循环结构

# 3. 指针运算

指针使用两种特殊的运算符 ——* 和 &

& 返回操作对象(通常为一个变量名)的内存地址。

* 返回其操作数所指对象的值,操作数需为一个指针。

1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
cout<<p<<'\n';//输出一个地址
cout<<p+1<<'\n';//输出的地址比上面的大4(int占4字节)
cout<<*p<<'\n';//输出1,默认指向数组的第一个值
cout<<&(*p);//与第一个输出的地址一样
cout<<&a<<" "<<&a[0]<<'\n';//输出的地址与第一个一样
return 0;
}

# 4. 标识符

标识符是用来标识变量、函数、类、模块,或任何其他用户自定义项目的名称,用它来命名程序正文中的一些实体,比如函数名、变量名、类名、对象名等。

规则:

①必须由字母(a-z、A-Z)组成,且必须由字母或下划线(_)开头②所有标识符不能使用 C++ 已有的关键字(比如 if switch,可使用 If Switch,但不建议)③大小写字母表示不同一意义

# 5. 宏与内联函数

#

是一种抽象,根据一系列预定义的规则替换一定的文本模式。例如:Microsoft Word 中定义宏为:宏就是能组织到一起作为一独立的命令使用的一系列 word 命令,它能使日常工作变得更容易。

宏语言是一类编程语言,其全部或多数计算是由扩展宏完成的。宏语言并未在通用编程中广泛使用,但在文本处理程序中应用普遍。例如:

1
#define标志符[(参数表)] 字符串
# 内联函数

是一种编程语言结构,用来建议编译器对一些特殊函数进行内联扩展。也就是说建议编译器将指定的函数体插入并取代每一处调用该函数的地方(上下文),从而节省了每次调用函数带来的额外时间开支。类似于用空间换时间。

# 比较

一般函数进行调用时,要将程序执行权转到被调用函数中,然后再返回到调用它的函数中;而内联函数调用时,是将调用表达式用内联函数体来替换,即类似于宏。

# 6. 运算符重载

运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C++ 中有以下类型:

  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 位运算符
  • 赋值运算符
  • 杂项运算符

运算符重载,就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。

重载运算符的规则:

①C 不允许用户自己定义新的运算符,只能对 C 已有的 C++ 运算符进行重载

②C++ 不能重载的运算符只有5个,.(成员访问运算符)、.*(成员指针访问运算符)、::(域运算符)、sizeof(长度运算符)和?:(条件运算符)

③重载不能改变的运算符运算对象的个数

④重载不能改变运算符的优先性和结合性

⑤重载运算符的函数不能有默认的参数

⑥重载的运算符必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对象,即不允许参数全部是 C++ 的标准类型。

# 7. 原码与补码

整数在计算机中存储和运算通常采用的格式是补码。原因:补码可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。原码直接用于数字相加减可能会出错。

原码 -> 补码:通常用二进制表示。除符号位(通常为首位,0+1-),其余位数取反后末位 + 1.

补码 -> 原码:取反后末位 + 1

# 8. 对象

对象是一个储存器的地址,其实拥有值,可能有标识符指向此处。在软件中对象具有唯一的标识符,对象包括属性和方法,属性就是需要记忆的信息,方法就是对象能够提供的服务。在面向对象(Object Oriented)的软件中,对象(Object)是某一个类(Class)的实例。

# 9. 软件工程三要素

方法、工具、过程。

方法是完成软件开发的各项任务的技术方法,为软件开发提供 “如何做” 的技术。

工具为运用方法而提供的自动的或半自动的软件工程的支撑环境。

过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤,如何将软件工程方法与软件工具相结合,合理、及时地进行软件开发。

# 10. 树

度:与一个结点相连的边的条数。

一个二叉树中只有度为 0、1、2 的结点。度为 0 的结点称为叶子结点。

例题:设二叉树有 20 个叶子结点,5 个度为 1 的结点,则该二叉树中总的结点数为:44 个

解答:对任何一颗二叉树,度为 0 的结点总是比度为 2 的结点多一个。叶子结点个数为 20,则度为 2 的结点个数为 19,总个数为 19+20+5=44

# 11. 类函数调用顺序

1、调用基类构造函数

2、调用子对象构造函数

3、执行派生类析构函数

4、执行基类析构函数

2021.3.28 考完了计算机二级 C++,等 5 月份出成绩吧,如果没过就报个 C 了。

2021.5.19

回来填坑!

二级 5.12 出的成绩,过了!远离 C++!

編集日 閲覧数

*~( ̄▽ ̄)~[お茶]を一杯ください

tsuppari Alipay

Alipay

tsuppari PayPal

PayPal