C++备战

计算机二级考试

#自己稀里糊涂瞎写
#第一份题
1.在数据流图中,用标有名字的箭头表示数据流
在程序流程图中,用标有名字的箭头表示控制流

2.结构化程序设计的思想包括:自顶向下,逐步求精,模块化,限制使用goto语句

3.软件设计中模块划分应遵循的准则: 高内聚低耦合 模块大小规模适当 模块的依赖关系适当等(便于理解:模块之间的耦合应尽可能的低模块的内聚度应尽可能的高)

可行性分析阶段产生可行性分析报告

概要设计说明书是总体设计阶段产生的文档

集成测试计划是在概要设计阶段编写的文档

需求规格说明书是后续工作如设计,编码等需要的重要参考文档

5.有穷性是指算法程序的运行时间是有限的

6.栈是按“先进后出”的原则组织数据的,数据的插入和删除都在栈顶进行操作

7.E-R图转换成关系模型数据则是把图形分析出来的联系反映到数据库中即设计出表,所以是逻辑设计阶段

8.自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中吧重复的属性列去掉

9.指向常量的指针,定义时初始化与否均可 const double point
如果是 const
double point形式,则为常量指针,必须定义时进行初始化

10.先定义指针变量,然后给指针变量赋初值有三种情况
1.用取地址运算符“&”将变量地址赋给指针变量
2.将一个指针变量中的地址赋给另一个指针变量
3.给指针变量赋空值,表示指针变量不指向任何变量

11.C++标识符
1.所有标识符可以由字母,数字和下划线组成,且必须以字母或下划线开头
2.C++的关键字不能作为标识符
3.大,小写字母表示不同意义

12.内联函数在调用时,是将调用表达式用内联函数体来替换,而不是在定义在另一个函数体内
e.g:

class Base
{
	public:
		void show();
}
inline void Base::show(){..}

13.重载运算符的规则:
1.C++不允许用户自定义新的运算符,只能对已有的C++运算符进行重载
2.C++不能重载的运算符只有5个
3.重载不能改变运算符对象的个数
4.重载不能改变运算符的优先级和结合性
5.重载运算符的函数不能有默认的参数
6;重载的运算符必须和用户定义的类型的对象一起使用,至少应有一个是类对象,即不允许参数全部是C++的标准类型

14.关于运算符重载为友元函数规定:
1.一般情况下,单目运算符最好的重载为类的成员函数,双目运算符最好为重载为类的友元函数
2.双目运算符“=,(),[],->”不能重载为类的友元函数
#友元函数定义在函数体外面,没有this指针。

class Data
{
	friend  void show(Data &d);
	public:
		void display(){}
}
void show(Data & d)
{
  cout<<....;
}

15.常对象只能调用它的常原函数,而不能调用非const函数,常对象的成员函数不一定都是常成员函数,只需保证其数据成员是常数据成员即可

16.在某基类中声明为virtual并在一个或多个派生类中被重新定义的成员函数。虚函数必须是基类的非静态成员函数,其访问权限可以是protected或public。如果一个类包含了纯虚函数,称此类为抽象类

17,问构造函数运行了几次时,[]是数组里面的参数就是几次()只运行一次

18,析构函数和构造函数,在定义一个派生类的对象是,先调用基类的构造函数,然后在执行派生类的构造函数,对象释放时,先执行派生类的析构函数在执行积累的析构函数

19.ifstream流类为输入流类,默认的文件输入流打开方式为ios:in

20,指针数组的删除方式 delete []p

#第二份
1.循环队列有队头和队尾两个指针,但是循环队列仍是线性结构
在循环队列中只需要队头指针与队尾两个指针来共同反映队列中元素的动态变化情况

2.当有序线性表为顺序存储才能用二分法查找。可以证明的是对于长度为n的有序线性表,在最坏情况下,二分法查找只需要比较log2 n次,而顺序查找需要比价n次

3.链式存储结构既可以针对线性结构也可以针对非线性结构

链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间

4.对象的基本特点:标识唯一性,分类性,多态性,封装性,模块独立性好

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

6.变量的存储方法分为静态存储和动态存储两大类包括四种
:自动的(auto)静态的(static)寄存器的(register)外部的(extern)变量没有说明存储类型,那么默认就是auto

7.类的成员访问权限:public protected private

8.程序中的typename都可以替换class,但程序的class不可以全部替换为typename。在模板类形参中除了typename和class以为,也可以用常规类型来声明参数的类型

template

9.如果基类有虚函数,派生类重写输出则是派生类的
如果基类不是虚函数,那么派生类重写输出的还是基类的

10.抽象类不能被实例化 一般出题是,一个类里面有一个纯虚函数,如果题将他实例化就错了。

11.默认继承方式为私有继承,私有继承将基类的公用成员和保护成员都变为私有成员,基类的私有成员依然属于基类私有,派生类不能访问基类的私有成员

12.复制构造函数在以下三种情况下使用(1)程序中需要新建立一个对象,并用另一个对象对她初始化(2)函数的参数为类的对象:(3)函数的返回值是类的对象
提示说由复制运算符重载实现的

13。如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象列

#第三份
1.栈支持子程序调用。

2.栈是一种只能在一端进行插入或删除的线性表,在主程序调用子函数是要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结构返回主程序中调用子程序的位置继续向下执行

3.二叉树:在任意一颗二叉树中,度为0的叶子节点总是比度为2的节点多一个

4.系统软件:编译软件,操作系统,汇编程序

5.耦合性是模块间互相连接的紧密程度和度量

内聚性是指一个模块内部各个元素间彼此结合的紧密程度

6.数据库应用系统中的核心问题是数据库的设计

7.4.2默认为double 如果是float应该加f

8.函数重载是指同一个函数名可以对应着多个函数的实现,每种实现对应着一个函数体,这些函数的名字相同,但是函数参数的类型不同,还允许参数的个数不同,但不能只有函数的返回值类型不同而参数的个数和类型相同的重载

9.C++不能重载的五个运算符:"." “.*” “::” sizeof “?:”

10.函数参数的三种传递方式:
1.将变量名作为形参和实参,即传值方式 void f(int x)
2.传递变量指zhen void f(int *x)
3.引用形参 void f (int &x)

11.在销毁派生类对象是先调用派生类的析构函数,在调用基类的析构函数

12.iomanip中定义的操纵符包括:setfill(ch)用ch填充空白
setprecision(n)将浮点精度值为n
setw(w)
showpotin设置小数点

流对象cin,cin是输入流对象
void init()是构造函数

#第四份
1.树是简单的非线性结构,所以二叉树是一种非线性结构

2.循环队列的对头指针与队尾指针都是不固定的,随着入队与出队操作要进行变化,因为循环利用的队列结构所以对头指针有时可能大约队尾指针,也可能小于队尾指针

3.算法的空间复杂度是指算法在执行过程中所需的内存空间

4.N-S图提出了用方框图来代替传统的程序流程

5.PAD是问题分析图,他是继承程序流程图和方框图后提出的有一种主要用于描述软件详细设计的图形表示工具

6.数据库管理系统是数据库的机构,他是一种系统软件,负责数据库中数据组织,数据操纵,数据维护,控制及保护和数据服务等,是一种在操作系统之上的系统软件

7.E-R图中实体集用矩形,属性用椭圆,联系用菱形

8.singed short in =short

short in 为2个字节 int为四个字节 shourt 为2个字节

9.运算符重载为成员函数时,会省略一个参数,如果无参数,表明是一元运算符。一元运算符既可以作为成员函数重载,也可以作为非成员函数的重载。二元运算符如果作为非成员函数,则参数表必须有两个参数。

10.如果没有定义构造函数,编译器将生成一个缺省的构造函数和拷贝函数,如果已经定义了构造函数和拷贝函数,编译器不会生成任何构造函数,如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数

11.模板包括函数模板和类模板

12.没有指明是那种继承方式,那么默认为私有继承

13.cin用来接收字符串时,遇“空格”,“TAB”’“回车”时都会结束

14.作为虚基类的类可以被实例化

作为派生类应当向基类的构造函数传递参数

15.只有类的非静态成员函数才隐含this指针,其作用域是类内部,当类的非静态成员函数访问类的非静态成员时,编译器会自动将对象本身的地址作为一个隐含参数传递给函数,而不必一定写上this

16.在受保护继承中,基类的公用成员和保护成员在派生类中成了保护成员,其私有成员仍为基类私有

#第五份
1.继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。广义的说,继承是指能够直接获得已有的性质和特征,而不必重复定义他们,所以说继承是指类之间共享属性和操作的机制

2.在软件开发中,需求分析阶段产生的主要文档是:软件需求规格说明书

  1.  层次模型的基本结构是树形结构
     
     网状模型是一个不加任何条件限制的无向图
     
     关系模型采用二维表来表示
    

所以三钟数据库的划分原则是数据间的联系方式

4.数据库系统的三级模式是概念模式,外模式和内模式

概念模式是数据系统中的全局数据逻辑结构的描述,是全体用户的公共数据视图

外模式也成子模式或用户模式,他是用户的数据视图给每个用户的局部数据描述

内模式又称物理模式,他给出了数据库物理存储结构与物理存取方式

5.一般函数进行调用时,要将程序执行权转到被调用函数中,然后在返回到调用他的函数中,而内联函数在调用时,是将调用表达式用内联函数体来替换可以避免函数调用时间的开销,从而提高运行速度

6.静态数据成员,静态数据成员可以初始化;但只能在类体外进行初始化,其一般形式

数据类类名 函数::初值

3种继承方式中,派生类继承了基类的私有成员,但不能被直接访问,可以通过派生类的友元函数去访问基类的私有成员

8.C++标准数据流的对象分别是 cout,cin,cerr,clog

#第六份
1.算法是指解题方案的准确而完整的描述,算法不等于程序,也不等于计算方法。设计算法时不仅要考虑数据对象的运算和操作还要考虑算法的控制结构

2.线性结构应满足:有且只有一个根节点与每个结点最多有一个前件,也最多有一个后件。

3.有一个以上的根节点的数据结构一定是非线性结构

4.循环链表和双向链表都是线性结构的数据结构

5.软件生命周期可以分为软件定义,软件开发与软件运行维护三个阶段。
主要活动阶段是:可行性研究与计划阶段,需求分析,软件设计,软件实现,软件测试,运行和维护

6.度:所有结点中度最大的度就是树的度,
深度为主线路元素的个数。

7.程序调试的任务是诊断和改正程序中的错误。

8.数据字典是在需求分析阶段建立,在数据库设计过程中不断修改,充实和完善

9.面向对象基本方法的基本概念有对象,类和实例,消息,继承和多态性

10.主函数对全局变量可重新赋值

11.函数形参的生存期一般在函数执行整个函数中存在,静态变量的生存期和整个程序的运行期相同

12.赋值运算符只能作为类的成员函数重载

13.C++规定有的运算符(如赋值运算符,下标运算符,函数调用符())必须定义为类的成员函数

14.友元函数不属于类的成员函数,所有重载为友元函数需要两个参数,通过参数传递的方式得到参加运算的两个对象。

15.虚函数的的是静态成员函数,但可以是友元函数

16.当基类中没有定义任何一个构造函数(编译器会自动生成缺省构造函数),在派生类构造函数的定义中可以省略对基类构造函数的定义

17.派生类的构造函数初始化按照参数列表初始化顺序

18.ios::in是以输入方式打开文件,如果没有则不会创建一个新文件

19.iomanip 实现输入输出的各种格式控制

#第七份
1.在实际应用中,队列的顺序存储结构一般采用循环队列
的形式

2.在线性表的链式存储结构中,个数据结点的存储序号是不连续的,并且各节点的存储空间中的位置关系与逻辑关系也不一致。
线性链表中的数据的插入和删除都不需要移动表中的元素,只需要改变节点的指针域即可

3.实体完整性约束要求关系的主键中属性值不能为空值

4.软件危机主要表现在:(1)软件需求的增长得不到满足(2)软件开发成本和进度无法控制(3)软件质量难以保证(40)软件不可维护或维护程度非常低(5)软件的成本不断提高(6)软件开发生产率的提高赶不上硬件的发展和应用需求的增长

5.需求分析阶段的工作有:需求获取;需求分析;编写需求规格说明书;需求评审

6.(1)系统结构图是对软件系统结构的总体设计的图形显示。在需求分析阶段,已经从系统开发的角度出发,吧系统功能逐次分割成层次结构,是在概要设计阶段用到
(2)PAD图是在详细设计阶段用到
(3)程序流程图是对程序流程的图形表示,在详细设计过程中用到。
(4)数据流程图结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于他只反映系统必须必须完成的逻辑功能,是一种功能模型,在可行性研究阶段用到

7.在类体中定义的成员函数,C++系统会自动将他们作为内联函数处理,而在类外定义的成员函数,系统并不把他们作为默认内联函数,内联函数可以用return

8.–的运算符函数调用 a.operator–()

9.在共有继承的情况下,允许派生类中新定义的成员函数直接访问基类成员只包括共有成员和保护成员

10.C+初始化类成员时,是按照声明的顺序初始化的,而不是按照出现在初始化列表中的顺序

11cin是一个标准输入流类

12.虚拟类型参数出现在模板函数的形参表中时,可以省略模板实参

#第八份
1.栈是先进后出的数据结构,所以栈顶元素最后入栈却最先被删除。栈底元素最先入栈却最后被删除

2.栈:在整个过程中栈底指针不变,入栈与出栈操作均由栈顶指针的变化来操作

3.软件按功能可以分为:应用软件,系统软件,支撑软件。
操作系统,编译程序汇编程序,网络软件,数据库管理系统都属于系统软件。

4.数据定义语言:负责数据的模式定义与数据的物理存取构建;
数据操纵语言:负责数据的操纵,包括查询及增删改等操作;
数据控制语言:负责数据完整性,安全性的定义与检查

5.'x’为字符常量"x"为字符串

6.函数的返回类型可以是普通常量型的,可以返回指针以及自定义类型,但是不能包括关键字true

7.重载是返回类型不一定是void

8.分清指针对象和指针

9.setw()每次之前都得设置一下

10.函数读取的字符长度是受限制的,getline()不是完全读取键盘输入的字符串的

#第九份
大小写很重要

1.单链表/线性表:在定义的链表中,若只含有一个指针域来存放下一个元素地址;
线性表:带链的栈可以用手机计算机存储空间中所有空闲的存储节点;
双向链表:在单链表中的节点中增加一个指针域指向他的直接前件;也是线性结构的链表
循环链表:属于线性链表
二叉链表是二叉树的屋里实现,不属于线性结构

2.在关系数据库中,用来表示实体间联系的是二维表;
关系模式实体间的联系采用二维表来表示,简称表
网状模型实体间的联系是网状结构
层次模型实体间的联系是树状结构

3.黑盒测试方法: 等价类划分法,边界值分析法和错误推测法
白盒测试方法:语句覆盖,逻辑覆盖,路劲覆盖

4.函数参数顺序:默认 参数靠右

5.考析构函数,&只是取前面的地址,没有实际占用空间,所以不执行析构函数

6.类模板的成员函数都是模板函数
类模板中可以有多个类型参数

7模板实例化的时候只申明数组没有实例化只能算一个

#三种继承
**public protected private **

1.当public 继承时: 基类的public类型成员会被继承城到派生类的public中,而基类中的protected 也会继承到派生类的protected中

2.protected继承: 无论基类的protected 还是 public 的成员都会被继承到派生类的protected中

3.private继承: 基类的public 和protected都会继承到派生类的private中

###protected and private不能再类外部使用

#第十份
1.程序执行的效率与数据的存储结构,数据的逻辑结构,程序的控制结构,所处理的数据量等有关。

2.白盒测试法主要有逻辑覆盖,基本路劲测试等
逻辑覆盖测试包括语句覆盖,路径覆盖,判定覆盖,条件覆盖,判断—条件覆盖

3.对象之间进行通信的构造叫做消息
多态性是指同一个操作可以是不同对象的行为
对象不一定有继承性
封装性是指从外面看只能看到对象的外部特征,而不知道也无序知道数据的具体结构以及实现操作

4.数据库系统的特点为高共享,低冗余,独立性高,具有完整性等

5.数据库设计过程主要包括需求分析,概念结构设计,逻辑结构分析,数据库物理设计,数据库实施,数据库运行和维护阶段

6.将运算符重载为类成员函数,如果是一元运算符,其参数就是默认的this,而如果是二元运算符,其参数有且仅有一个参数。

7.“-”既可以作为一元运算符,又可以作为二元运算符被重载

8.构造函数是自动调用

9.派生类构造函数要负责调用基类的构造函数
派生类可以继承基类的私有成员,但是不能直接访问

10.派生类的成员函数不能访问基类的私有成员

11.&将会调用基类的函数

12.int*p=数组+1 :相当于 int *p=数组【1】

#第十一份

1.冒泡排序法:是在扫描过程中逐次比较相邻两个元素的大小,最坏的情况是每次比较都要将相邻的两个元素互换

2.软件指的是计算机系统中与硬件相互依赖的另一部分,包括程序,数据和有关的文档

3.开发阶段:包括分析,设计和实施两类任务。
其中分析,设计包括需求分析,总体设计和详细设计三个阶段
实施则包括编码和测试两个阶段

4.结构化方法软件需求分析工具主要有数据流图,数据字典,判定树和判定表。

5.在关系模型中,每一个二维表称为一个关系

6.C++程序开发包括编辑,编译,链接,运行和调试。
编译完成后链接之前会生成后缀为obj的目标文件

7.\n,\r为转义字符,只占一个字节

8.double a = a/3; a=0;我去,失误,2/3=0

9.类型转换运算符的重载 operator 类型名(){}

10.析构函数不可以重载;析构函数不仅仅是在函数名之前加’~’,他不带任何返回类型,没有返回值

11.函数重载属于编译时多态,不是运行时多态

12.当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。so 友元函数就不行了

13.当定义一个派生类,一个函数的参数是基类,放进去派生类,只会执行派生类的第一个virtual函数,第二个只会执行基类的virtual函数

14.函数模板是一个抽象函数,使用模板定义的函数可以有返回值,函数模板的虚拟类型参数并不是函数参数。

15 .left,right,setfill是一次性的

#友元函数
可以直接访问类的私有成员
#内联函数
提高函数运行速度,但是函数体积变大了

#第十二份

1.算法的时间复杂度,是指执行算法所需要的计算工作量

2.线性表的顺序存储结构具有如下两个基本特征:
(1)线性表中的所有元素所占的存储空间是连续的;
(2)线性表中各数据元素在存储空间中是按逻辑顺序一次存放的。用一组任意的存储单元来依次存放线性表的节点,这组存储单元既可以是连续的,也可以是不连续的,甚至是零散分布在内存中的任意位置上的。

3.软件测试主要包括单元测试,集成测试,确认测试,系统测试。

4.extern定义的变量表示已经在别的地方定义,这里这是引用,所以不会为之分配空间

5.重载一元运算符,只能有一个操作数

6.重载<<应该重载为友元成员函数,第一个参数为ostream& os

7.Fraction operator /(Fraction);这个是重载为友元函数,友元函数不属于类的成员函数,需要两个参数。

二叉树:叶子节点总比节点为二的多一个

#第十三份

1.数据的逻辑结构有两个要素:
(1)数据元素的集合,通常记为D;
(2)D上的关系,它反映了D中各数据元素之间的前后件关系,通常记为R
即一个数据结构可以表示成 B=(D,R) 其中B表示为数据结构
为了反映D中各数据元素之间的前后件关系,一般用二元组来表示。
例如 a和b为D中的两个数据,则二元组(a,b)表示a是b的前件,b是a的后件
如果一个非空的数据结构满足下列两个条件:1)有且只有一个分界点 2)每个结点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构。付过一个数据结构不是线性结构,则称之为非线性结构。

2.在循环队列中,当front= rear时,不能确定是队列满还是队列空。在实际使用循环队列时,为了能区分队列满还是队列空,通常还需要增加一个标志s。当s=0是表示队列空,当s=1且front = rear时表示队列满、

3.带链的栈是具有栈属性的链表。线性链表的存储单元是不连续的,为把存储空间中一些离散的空闲存储节点利用起来,吧所有空闲的结点组织利用起来,把所有的空闲的结点组织成一个带链的栈,称为可利用栈。线性链表执行删除操作运算时,被删除的结点可以“回收”到可利用的栈,对应于可利用栈的入栈运算,线性链表执行插入运算时,需要一个新的结点,可以在可利用栈中取栈顶结点,对应于可利用的退栈运算。可利用栈的入栈运算和退栈运算只需要改动top指针即可。当top=bottom=20时链栈中的元素个数为1。

4.模块独立性的概念是抽象,模块化,信息隐蔽和局部化的直接结果。

5.黑盒测试方法也称为功能测试或数据驱动测试:等价类划分法,边界值分析法,错误推测法和因果图等。

6.数据模型按照不同的应用层次分为3中类型:
(1)概念数据模型: 实体联系模型(E-R模型),面向对象模型及谓词模型
(2)逻辑数据模型:层次模型,网状模型,关系模型和面向对象模型。
(3)物理数据模型:

7.在二维表中凡能唯一表示元组的最小属性集称为该表的键或码。
表A中的某属性集是某表B的键,则称该属性集为A的外键或外码。

8.关系模型中可以有三类完整性约束:实体完整性约束,参照完整性约束和用户定义的完整性约束。
实体完整性约束是指若属性M是关系的主键,则属性M中的属性值不能为空值。

9.若X—>Y,但Y不完全函数依赖X,则称Y对X部分函数依赖。

10."abcd"有5个字符(包括结尾的空字符)可以这样子: char *str= “abcde”;

11.“-”之多有两个造作书如果作为成员函数重载,那么形参之多只有一个操作数。如果有两个参数,那肯定不是成员函数

12.常对象是指对象的所有成员的值都不能被修改,常成员函数是指只能引用本类的数据成员,而不能修改他们的成员函数;常成员函数可以被常对象调用,也可以被普通对象调用。但是常对象不能访问普通成员函数。

13.每个类中都有一个复制构造函数。
参数为空的构造函数属于默认的构造函数,但有参数且参数有默认值得构造函数也属于默认构造函数。

14.友元函数是该函数可以访问对应类的非公有成员,他本身不属于类的成员。
在类定义体内部实现的成员函数属于内联函数,在类定义涕为实现的不属于内联函数。

15.构造函数没有返回值
构造函数支持函数的重载,调用时根据参数类型或函数的const属性调用不同的构造函数。
每个类都有构造函数。

16.当静态成员函数不属于任何类对象,他独立于类的任意对象而存在,由有类对象所共享,他没有this指针,只有类的非静态成员函数才有this指针。
this指针只能在类的非静态成员函数中使用
this指针存储着对象的地址
成员函数不能定义this指针,他是有编译器隐含定义的
在构造函数中对象还没有完成生成,但着不意味着对象什么都没有,所以构造函数中也有this指针,通常尽量避免在构造函数中使用this指针。

17.在定义类中,不能定义 类加对象

#第十份

1.程序可以作为算法的一种描述方法

2.对象的基本特点是:标识唯一性,分类性,多态性,封装性,模块独立性好。
类时具有共同属性,共同方法的对象的集合,是关于对象的抽象描述,反映属于该对象类型的所有对象的性质
对象具有的性质,类也具有。

3.数据模型通常由数据结构,数据操作及数据约束3部分组成。

4.循环队列为Q(1:m){代表元素的下标是1-m},初始状态为front = rear = m.经过入队也退栈,
front = 30,rear = 10,现在 队列中有 m-30+10+1 = m-19 个元素,比较次数为m
m-20次

5.double重载必须为成员函数,不能有返回类型,形参列表为空。

6.friend 与类的访问权限有关,const与类的访问权限无关

7.构造函数也属于内联函数

8.类如果没有建立构造函数的话,系统会自动生成默认构造函数,和复制构造函数,那么类中就有两个构造函数。如果建立了构造函数,那么函数就没有默认构造函数,那么如果用数组的形式初始化类,如果声明三个,而初始化了两个,那么会出现错误.

#第十五份

1.算法的时间复杂度是指执行算法所需要的计算工作量。为了能够比较客观的反映出一个算法的效率,在度量一个算法的工作量时,不仅与所使用的计算机程序设计语言以及程序编织者无关,而且还应该与算法实现过程中的许多细节无关。谓词,可以用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。算法所执行的基本运算次数还和问题的规模有关;对应一个固定的规模,算法所执行的基本运算次数还可能与特定的输入有关。

  1. 堆排列最坏情况时间下的时间复杂度为O(nlog2n);
    希尔排序 O(n1.5)
    快速排序,冒泡排序 O(n2)

3.结构化程序的三种基本结构是 顺序,选择和循环;

4.模块的扇出是指本模块的指数下层模块的个数,或者说是有一个模块直接调用的其他模块数。

5.用字符串初始化字符数组,长度会加一,有"\0"

你可能感兴趣的:(C++备战)