东北师范大学计算机科学与技术专业《C++程序设计》作业及答案6

在声明类时,下面的说法正确的是()。

A.可以在类的声明中给数据成员赋初值

B.数据成员的数据类型可以是register

C.private、public、protected可以按任意顺序出现

D.没有用private、public、protected定义的数据成员是公有成员

本题答案:
C
类的析构函数是在()被调用的。

A.类创建时

B.创建对象时

C.删除对象时

D.不自动调用

本题答案:
C
下面对类的构造函数的定义是() 。

A.void X∷X(参数)

B.X∷X(参数)

C.int X∷X(参数)

D.float X∷X(参数)

本题答案:
B
重载赋值操作符时,应声明为()函数。

A.友元

B.虚

C.成员

D.多态

本题答案:
C
关于虚函数的描述中,()是正确的。

A.虚函数是一个static类型的成员函数

B.虚函数是一个非成员函数

C.基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数

D.派生类的虚函数与基类的虚函数具有不同的参数个数和类型

本题答案:
C
下列()的调用方式是引用调用。

A.形参是引用,实参是变量

B.形参和实参都是变量

C.形参是变量,实参是地址值

D.形参是指针,实参是地址值

本题答案:
A
进行文件操作需包含头文件()。

A.fstream.h

B.ostream.h

C.stdio.h

D.stdlib.h

本题答案:
A
若已定义了person类及person类的两个对象p1和p2,则执行语句“p1=p2;”将调用p1的()。

A.构造函数

B.拷贝构造函数

C.析构函数

D.赋值运算符重载函数

本题答案:
D
编译时的多态性通过使用()实现。

A.构造函数

B.虚函数

C.重载函数

D.析构函数

本题答案:
C
对虚函数的调用()。

A.一定使用动态联编

B.一定使用静态联编

C.一定使用指针

D.不一定使用动态联编

本题答案:
D
下面叙述不正确的是()。

A.基类的保护成员在保护派生类中仍然是保护的

B.基类的保护成员在公有派生类中仍然是保护的

C.基类的保护成员在私有派生类中仍然是保护的

D.对基类成员的访问必须是无二义性的

本题答案:
C
假设已经有定义char*const name=“chen”; 下面的语句中正确的是()。

A.name[3]=‘q’

B.name=“lin”

C.name=new char[5]

D.name=new char (‘q’)

本题答案:
A
以下有关继承的叙述正确的是()。

A.构造函数和析构函数都能被继承

B.派生类是基类的组合

C.派生类对象除了能访问自己的成员以外,不能访问基类中的所有成员

D.基类的公有成员一定能被派生类的对象访问

本题答案:
B
下面的叙述中,错误的是()。

A.析构函数可以定义为虚函数

B.构造函数可以定义为虚函数

C.当基类的析构函数定义为虚函数时,其派生类的析构函数也一定是虚函数

D.对虚析构函数的调用可以采用动态联编

本题答案:
B
面向对象的程序设计语言必须具备的关键要素是()。

A.抽象和封装

B.抽象和多态性

C.抽象、封装、继承和多态性

D.抽象、封装和继承性

本题答案:
C
建立包含有对象成员的派生类对象时,自动调用构造函数的执行顺序依次为()的构造函数。

A.基类、自己所属类、对象成员所属类

B.对象成员所属类、基类、自己所属类

C.自己所属类、对象成员所属类、基类

D.基类、对象成员所属类、自己所属类

本题答案:
D
假定classA为一个类,如果用户未定义析构函数,则系统为该类定义的默认析构函数为()。

A.classA∷~classA(){}

B.classA∷classA(){}

C.classA∷~classA(int=0){}

D.void classA∷~classA(){}

本题答案:
A
静态数据成员的初始化必须在()。

A.类内

B.类外

C.在构造函数内

D.静态成员函数内

本题答案:
B
下列关于纯虚函数的描述中,正确的是()。

A.纯虚函数是一种特殊的虚函数,它是个空函数

B.具有纯虚函数的类称为虚基类

C.一个基类中说明有纯虚函数,其派生类一定要实现该纯虚函数

D.具有纯虚函数的类不能创建类对象

本题答案:
D
运算符重载函数必须以特殊的关键字()开始。

A.virtual

B.operator

C.template

D.static

本题答案:
B
构造函数是可以被派生类继承的。()

A.错误

B.正确

本题答案:
A
要对文件进行读写操作,必须在文件开头包含头文件fstream.h。()

A.错误

B.正确

本题答案:
B
在C++中,构造派生类对象时,总是先从基类的初始化开始的。()

A.错误

B.正确

本题答案:
B
重载函数是基于不同的数据类型完成类似的操作,而函数模板则是对不同的数据类型完成相同的操作。()

A.错误

B.正确

本题答案:
B
私有静态数据成员不能被类外部函数访问,也不能用对象进行访问。()

A.错误

B.正确

本题答案:
B
静态的成员函数没有隐含的this指针,所以它们只能访问静态的数据成员。()

A.错误

B.正确

公有继承方式下,基类成员的访问权限在派生类中保持不变。()

A.错误

B.正确

C++中的函数就是面向对象理论中的消息。()

A.错误

B.正确

C++不允许定义有默认参数的函数。()

A.错误

B.正确

一个派生类继承多个基类称为多继承。()

A.错误

B.正确

重载函数至少在参数个数、参数类型或参数顺序上要有所不同。()

A.错误

B.正确

get()和put()函数的功能是一次读写一个字符,而read()和write()函数是一次读写一个数据块。()

A.错误

B.正确

构造函数和析构函数都可以是虚函数。()

A.错误

B.正确

操纵符函数setw(n)只对下一个输出有效。()

A.错误

B.正确

C++允许通过重载的方式改变运算符的优先级和结合性。()

A.错误

B.正确

若有声明:class C: public A,B{}; 则类C公有继承自类A、私有继承自类B。()

A.错误

B.正确

赋值号两边的数据类型不一致时,将无法进行赋值运算。()

A.错误

B.正确

C++编译器不能够区分重载的无参函数和缺省参数的函数。()

A.错误

B.正确

一个类的友元一定是另一个类的成员函数。()

A.错误

B.正确

类是C++中自定义的数据类型。()

A.错误

B.正确