|

有关析构函数的说法正确的是( )。
A:析构函数可以有多个
B:析构函数和构造函数一样可以有形参
C:析构函数的功能是用来释放一个对象
D:析构函数的函数类型为void
下面说法正确的是( )。
A:内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
B:内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方
C:类的内联函数必须在类体内定义
D:类的内联函数必须在类体外用关键字inline定义
在一个具有n个顶点的有向图中,若所有顶点的出度之和为s,则所有顶点的度之和为( )。
A:s
B:s 1
C:s-1
D:2s
关于多继承二义性的描述中,错误的是()。
A:一个派生类的基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性
B:解决二义性的最常用的方法是对成员名的限定法
C:基类和派生类同时出现的同名函数,也存在二义性问题
D:一个派生类是从两个基类派生出来的,而这两个基类又有一个共同的基类, 对该基类成员进行访问时,可能出现二义性
对虚函数的调用()。
A:一定使用动态联编
B:一定使用静态联编
C:必须使用动态联编
D:不一定使用动态联编
下面关于类概念的描述中,( )是错误的。
A:类是抽象数据类型的实现
B:类是具有共同行为的若干对象的统一描述体
C:类是创建对象的样板
D:类就是C语言中的结构体类型
关于动态关联的下列叙述中,()是错误的。
A:动态关联是以虚函数为基础的
B:动态关联调用虚函数操作是指向对象的指针或引用
C:动态关联是在运行时确定所调用的函数代码的
D:动态关联是在编译时确定操作函数的
下列关于类的继承描述中,( )是错误的。
A:派生类可以访问基类的所有数据成员,也能调用基类的所有成员函数
B:派生类也是基类,但基类不一定具有派生类的全部属性和方法
C:继承描述类的层次关系,派生类可以具有与基类相同的属性和方法
D:一个基类可以有多个派生类,一个派生类可以有多个基类
下面程序段中,说法正确的是( )
class location{ public : int GetX(); };
class rectangle:private location { public: int GetW(); };
A:类rectangle的私有派生类是location
B:类rectangle中的public成员在类 location中是私有的
C:类location中的public成员在类 rectangle中是不可访问的
D:viod f( ) { Rectangle r; int X=r .GetX( ); } 其中int X = r .GetX( );是非法语句
下列运算符中,()运算符在C 中不能重载。
A:?:
B:
C:-
D:=
在二叉树中,若度为0的结点(即叶子结点)数为n0,度为2的结点数为n2,则( )。
A:n2-1
B:n2
C:n2 1
D:n2 2
关于类和对象不正确的说法是( )。
A:类是一种类型,它封装了数据和操作
B:对象是类的实例
C:一个类的对象只有一个
D:一个对象必属于某个类
已知X类,则当程序执行到语句 X array[3]; 时,调用了( )次构造函数。
A:0
B:1
C:2
D:3
友元访问类对象的成员时使用( )。
A:类的成员名
B:“this->成员名”的形式
C:“类名::成员名”的形式
D:“对象名.成员名”的形式
在一个无向图中,所有顶点的度之和等于图的边数的( )倍。
A:1
B:2
C:3
D:4
在多继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则()。
A:完全相同
B:完全不同
C:部分相同,部分不同
D:以上都不对
用于类中虚成员函数说明的关键字( )。
A:virtual
B:public
C:protected
D:private
在C 中,要实现动态联编,可以使用( )调用虚函数。
A:类名
B:派生类指针
C:对象名
D:基类指针
read函数的功能是从输入流中读取( )。
A:一个字符
B:当前字符
C:一行字符
D:指定若干个字符
在一个单链表中,若pFirst指向链表的第一个结点,则在第一个结点前插入一个新结点s应执行( )。
A:s->next=pFirst;pFirst->next=s;
B:s->next=pFirst;pFirst=s;
C:s->next=pFirst->next;pFirst=s;
D:pFirst->next=s;s->next=pFirst;
下列说法中正确的是( )。
A:一个成员函数在类体外定义,则该成员函数默认是内联函数
B:一个成员函数在类体中定义,则该成员函数默认是内联函数
C:在类体外定义成员函数需要使用::运算符指明该成员函数属于哪个类
D:类体外定义的成员函数默认为公有成员函数
下列的模板说明的头中,正确的是( )。
A:template <typename T1, typename T2>
B:template <class T1, T2>
C:template <class T1, class T2>
D:template <typename T1; typename T2>
基类中的保护成员可能是派生类的( )。
A:public成员
B:private成员
C:protected成员
D:友元成员
下面描述中,正确的是( )。
A:在基类定义的public成员在公有继承的派生类中可见,也能在类外被访问
B:在基类定义的public和protected成员在私有继承的派生类中可见,在类外可以被访问
C:在基类定义的public和protected成员在保护继承的派生类中可见
D:在派生类中不可见的成员要变成可访问的,需要进行访问声明
下面对构造函数的错误描述是( )。
A:系统可以提供默认的构造函数
B:构造函数可以有参数,所以可以有返回值
C:构造函数不可以重载
D:构造函数可以设置默认参数
用于输入输出的运算符包括( )。
A:<<
B:
C:->
D:>>
下面关于自定义类的运算符重载的说法中,正确的是( )。
A:可以根据需要重新定义重载的运算符的优先级和结合性
B:重载运算符的操作数个数不能改变
C:运算符重载要求至少有一个运算数是自定义类型
D:运算符重载有成员重载和友元重载两种形式
下列关于函数模板的描述中,正确的是( )。
A:函数模板和普通函数重载时,函数调用会优先调用符合要求的普通函数
B:函数模板和普通函数重载时,函数调用会优先调用符合要求的函数模板
C:函数模板的主要作用是减少可执行程序文件的尺寸
D:函数模板的主要作用是简化程序编写
函数模板可以与()重载。
A:函数模板
B:普通函数
C:类模板
D:普通类
下列说法中正确的是( )。
A:成员函数的声明必须放在类体中
B:成员函数的声明可以放在类体中也可以放在类体外
C:成员函数的实现必须放在类体中
D:成员函数的实现可以放在类体中也可以放在类体外
下列函数中,可以作为虚函数的是( )。
A:普通成员函数
B:构造函数
C:静态成员函数
D:析构函数
已知in是ifstream对象,则下列语句正确的是( )。
A:in.seekg(5);
B:in.seekg(5, ios::beg);
C:in.seekg(5, ios::end);
D:in.seekg(-5);
当类的继承方式为公有继承时,基类的()成员的访问属性在派生类中不变
A:公有成员
B:保护成员
C:私有成员
D:友元成员
下列描述正确的是( )。
A:多态性是通过动态绑定实现的
B:多态性是通过静态绑定实现的
C:动态绑定是在程序执行时进行绑定
D:静态绑定是在程序执行时进行绑定
下面属于析构函数特征的是( )。
A:析构函数可以重载
B:对象销毁前会自动调用析构函数
C:如果定义一个类时没有定义析构函数,则系统会提供一个默认析构函数~<类名>(){}
D:析构函数的函数类型为void
由于顺序表示非完全二叉树时空间利用率较低,因此,二叉树的顺序表示在实际中应用不多。
A:对
B:错
线性表的链式存储结构是可以用不连续的的存储单元来存储线性表中的数据元素。
A:对
B:错
对象数组的元素可以是不同类的对象。
A:对
B:错
已知一棵二叉树的先序遍历序列和中序遍历序列可以唯一地构造出该二叉树。
A:对
B:错
一个抽象类的派生类可以用于创建对象。
A:对
B:错
可以在类的构造函数中对静态数据成员进行初始化。
A:对
B:错
从一个结点到其后继结点之间的连线称为一个分支;从一个结点X到另一个结点Y所经历的所有分支构成结点X到结点Y的路径;一条路径上的分支数目称为路径长度;从树的根结点到其他各个结点的最长路径长度称为树的路径长度。
A:对
B:错
有向图和无向图都有生成树
A:对
B:错
线性结构的数据在进行元素插入、删除等操作后可能会变成非线性结构。
A:对
B:错
一个静态成员函数无论是公有还是私有,都可以通过类名直接访问。
A:对
B:错
只有有向图才有连通分量,无向图没有。
A:对
B:错
运算符重载实际上是对已有的运算符重新定义其功能。
A:对
B:错
构造函数可以被继承。
A:对
B:错
在线性表的链式存储结构中,插入和删除操作时,元素移动次数与插入和删除元素的位置有关。
A:对
B:错
多重继承中的二义性问题是由于一个派生类从不同基类中继承了同名成员变量或相同函数原型的成员函数。
A:对
B:错
|
|