计算机二级c++考试

1,在需求分析阶段可以使用DFD图和,数据字典DD,以及判定树与判定表。

2,指向常量的指针可以不初始化:const double *point; 指针常量需要初始化:double *const point;

3,单目运算符--->成员函数,双目运算符(除了=,(),->,[ ])--->)友元函数

4,需要调用拷贝构造函数:1 函数的参数是类的对象;2 函数的返回值是类的对象;3 定义一个新的对象,用另一个对他初始化;

5,常对象只能调用它的常成员函数

6,程序中的typename都可以替换成class; 但是class不可以替换成typename;

7,任意一颗 二叉树度为0的叶子节点总比度为2的叶子节点多1;

8,模块化的耦合性,内聚性;耦合性:各个模块之间互相联系的紧密程度;内聚性:模块内部各个元素结合的紧密程度;最好做到高内聚低耦合;

9,投影运算:对于关系内的域指定可以引入新的运算;

10,不能被重载的5个运算符:  .    *     ::      ?:    sizeof  

11,派生类是从已有的类复制他的属性,函数;若基类未缺省构造函数,则在派生类中要重新定义;建立派生类对象时,先调用基类的构造函数,再调用派生类;销毁派生类对象时,先销毁派生类,再基类;

12,对象指针不调用构造函数*p[4];

10,静态成员函数:静态成员函数由于没有this指针,所以只能访问静态成员(静态变量和函数),但是可以被一般对象调用;

11,常成员函数:用const定义,在常成员函数中不得修改任何类中的数据成员的值,只能引用本类中的数据,它可以被常对象和一般对象调用;

12,常对象:常对象中的数据成员必须是常变量,且要有初值,但是常对象的成员函数不一定是常成员函数,不过,常对象只能调用常成员函数;

13,纯虚函数:虚函数定义在基类,如果这个虚函数无意义,而是留给派生类定义,则它在基类中称为纯虚函数,定义时无函数体,在末尾要加=0;

13,抽象类:含有纯虚函数的类是抽象类;

13,PAD是问题分析图,软件设计需求方面;E-R是数据库的关系图:shi'ti实体集用矩形,椭圆是属性,联系是菱形;

14,只有类的非静态成员函数才有隐含的this指针,其作用域是类的内部;

15,虚基类:派生类的基类的基类是这个派生类的虚基类;

15,构造函数只能用初始化列表来初始化常数据成员;

16,虚函数:在基类中用virtual定义,在派生类中再次定义的函数,不得是静态成员函数;

17,派生类:基类如果是缺省的构造函数,或者未定义任何构造函数,派生类可以省略对基类构造函数的调用;

17,内联函数:这个函数一般比较短小,被调用的时候主函数不会跳转到这个函数中,而是直接将这个函数的代码下载到自己函数主体中。

在函数定义前加上inline就行:inline void  function(){};

18,传递参数时,若形参是指*针,则实参对应是地址引&用;若形参是地址引用,对应实参是值;

19,运算符重载的时候会省略一个参数,所以如果是一元运算符则只有一个参数;一元运算符可以作为成员函数和非成员函数,

二元运算符作为非成员函数,必须有两个参数;

19,必须以类的成员函数重载的运算符有:=  [ ]  ()  new delete

18,运算符函数:可以定义为类的友元函数和成员函数;

18,   友元函数重载时,参数列表为1,说明是1元,为2说明是2元。

        成员函数重载时,参数列表为空,是一元,参数列表是1,为2元。

19,this:只有类的非静态成员函数有,友元函数不是类的成员函数;

20,友元函数:虽然不是类的成员函数,但是可以访问类的成员;

21,const定义的常量在超出其作用域之后其空间会被释放,而static定义的静态常量在函数执行后不会释放其存储空间。

22,引用静态成员函数两种方法:1,类名::静态成员函数名(Constants::getPI()),  2,对象名.静态成员函数名(object.getPI());

23,拷贝构造函数:也称复制构造函数,当对象的参数是另一个对象时,调用。一般的形式为:

class  类名

{

类名(形参参数){构造函数的声明}

类名(类名&对象名){拷贝构造函数的声明};

}

class  ClassName

{

ClassName(int x){  };

ClassName( ClassName&obj){  };

}

24,虚基类:B继承至A,两者都有一个相同的虚基类,B调用同样的函数,若函数中的参数是普通的值,则执行的函数来自A,若参数是地址引用,则执行的函数来自于B;

25,初始化构造函数列表:一个类可以有多个构造函数,构造函数是为了初始化对象的数据成员,创建对象时根据传入的参数不同调用不同的构造函数

class   Lei{

public:

int x, y;

Lei(): x(8), y(9) { };  

//相当于

Lei(){      x=8;     y=9;          }}

26,二叉树的高度和深度是一个意思:指最多的根到子树的层数;

27,二叉树的度:就是开了几个叉;

28,叶子结点:就是度为0的结点;比如满二叉树的最后一排都是叶子结点;叶子结点总比度为2的结点多1;

29,自然连接:将两个集合中属性组相同的合并到一起,不相同的属性舍弃;

30,对象数组:避免重复实例化相同的对象,Classname  obj[ 3] ;表示实例化3个obj;

31,常变量和静态数据成员:常变量是不能被修改值,必须初始化的常量;静态变量是被所有对象拥有,可以修改的变量;

32,类的数据成员不能在声明类的时候初始化;

33,指针数组对象不执行构造函数:*obj[3];

34,对象在离开其作用域时被销毁,析构函数在对象被销毁时执行;

35,静态数据成员初始化必须在类体外,格式:

   int  Classname::变量名=6;

36,模板函数:templateT fun(T x){ return x}; 模板函数中注意形参,以及返回值是否和函数定义类型相同;

37,ios::in是以输入方式打开文件,若文件不存在,不会新建一个;

38,类C继承自类A,类B在类C中定义了一个变量;如果类C执行构造函数的初始化列表中如果有A的构造函数,C定义的变量,那么它的执行顺序是,先执行A的操作,然后执行B,最后是C;

39,基类指针指向派生类对象:

     基类A的派生类是B,classB : publicA{},  有这样一个定义:A   *p=new  B(); 

那么,*p只能调用基类中的成员函数,不能调用派生类才有的成员函数,但是如果基类中存在虚函数,那么*p调用的是派生类中与虚函数对应的函数。

40,类的指针调用类的成员函数时,用->,  而不是.  另外,类的构造函数要对类的数据成员初始化,就是将类中的变量在构造函数中做赋值操作;

41,抽象类不可以作为对象的类型,void fun (  Classname  obj){  }是错误的,但是可以void fun (Classname *obj)或者void fun(Classname  &obj),因为指针可以指向抽象类的派生类,派生类不一定是抽象类;

41,抽象类只能作为派生类的基类,不能定义对象,但可以定义指针。在派生类实现该纯虚函数后,定义抽象类对象的指针,并指向或引用子类对象。

42,在类外创建构造函数,成员函数;

A::A(){};

void A::count(){ };

在类外静态变量要初始化:

int  A::age=12;

43,定义一个派生类对象,首先初始化它的基类成员,派生类成员的初始化,依赖它的声明顺序而不是依赖初始化列表的顺序,定义一个派生类对象,首先初始化它的基类成员;

44,一般填空题要求释放指针空间,直接看下面哪个函数带有*,然后delete [ ]name;

45,栈底在下面,栈顶在上面,第一个数据先入栈底,栈顶元素第一个出,栈底元素最后一个被删除。

46,枚举:若定义的一些数中有一个变量被初始化为一个确切的数值,则其后面跟随的变量是比它大一的自然数,以此类推;

47,内联函数被发明出来是为了取代宏;

48,在类体内定义的函数,注意是定义,不是声明,系统默认是内联函数,在类外定义需要加inline;

49,若构造函数的参数中是已经初始化 的变量,当定义的对象中未初始化参数,则使用构造函数的,若对象有初始化参数,则使用对象的;

50,公有继承的时候可以调用基类的保护成员,不能调用私有成员;

51,输入流getline()是将输入的字符串保存到str中,直到遇到终结符delim

52,软件结构图  支持软件系统的详细设计;

53,“a”是字符串,’a'才是字符常量;

54,关系模型实体间的联系用二维表,网状模型实体间的联系用网状结构,层次模型实体间的联系用树状结构;

55,投影是从一个表中选择几列做子表,选择是从一个表中选择几行做子表,选择不会丢失属性;

56,等价类划分法,边界值分析法,错误推测法属于黑盒测试(不需要知道程序代码如何实现,关注功能);

57,函数模板:如果某几个函数的函数体相同,可以使用这个模板简化代码:

template   

T max(T a,T b,Tc){   return  a+b+c;}

template是表示这个是模板,class和typename表示变量类型,  T表示(int,double...)  ,max是函数体

比如  :

int  min(int a, char  b,  double c){ return a+b+c }就和模板函数格式相同,调用的时候直接:

int a,char b, int c;

max(a,b,c);只要和模板函数的格式相同就行。

58,运算符重载为成员函数格式:

    <函数类型> operator <运算符>(<参数表>)

    {

     <函数体>

    }

运算符重载为类的友元函数的一般格式为:

    friend <函数类型> operator <运算符>(<参数表>)

   {

     <函数体>

    }

当运算符重载为类的成员函数时,函数的参数个数比原来的操作数要少一个,友元函数参数个数无变化;

59,运算符--重载为非成员函数:

int&  opreater --(int&)

60,度为0 的叶子结点比度为2的节点多1,如果告诉你二叉树中度为0和度为1的节点数,那么就可以求出此二叉树的所有节点数;因为二叉树的度大于0,小于3;

61,除了栈排序,常见的普通排序最坏情况下都要比较n(n-1)/2次;

62,编译obj,链接cpp,运行exe

63,析构函数不能带任何参数和返回值;

64,若是公有继承,派生类可以在类内访问基类的保护成员,不可以在类外访问;

65,setw()表示总宽度,(后面紧跟的内容有效),left,right表示左对齐,右对齐;setfill()表示以什么内容填满;

cout<

cout<

66,关系中,R-(R交S)=T  的方式是差;

67,计算机二级上机考试时,监考老师会讲如何打开哪个文件,操作题程序如何保存,要认真听,各个考场大同小异。我们考试首先打开后缀名为.sln的文件,进入vc++界面以后,左侧边栏有资源管理,点击展开,点击源文件,选择main.cpp开始修改程序。修改完毕后直接点击保存,然后点击上方绿色三角形开始调试,调试的时候,由于程序最后一句是return 0,所以调试的小

黑窗会一闪而过,如果想看调试结果,可以在return语句前加,int a;cin>>a;当然,最后要把这两句删除。然后保存,退出就ok了。

你可能感兴趣的:(计算机二级c++考试)