C++程序设计19秋在线作业2题目
试卷总分:100 得分:100
一、单选题 (共 20 道试题,共 60 分)
1.在声明类时,下面的说法正确的是()。
A.没有用private、public、protected定义的数据成员是公有成员
B.数据成员的数据类型可以是register
C.可以在类的声明中给数据成员赋初值
D.private、public、protected可以按任意顺序出现
2.类的析构函数是在()被调用的。
A.类创建时
B.删除对象时
C.创建对象时
D.不自动调用
3.下面对类的构造函数的定义是() 。
A.void X::X( 参数 )
B.int X::X( 参数 )
C.float X::X( 参数 )
D.X::X( 参数 )
4.重载赋值操作符时,应声明为()函数。
A.虚
B.成员
C.多态
D.友元
5.关于虚函数的描述中,()是正确的。
A.虚函数是一个非成员函数
B.虚函数是一个static类型的成员函数
C.派生类的虚函数与基类的虚函数具有不同的参数个数和类型
D.基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数
6.下列()的调用方式是引用调用。
A.形参是指针,实参是地址值
B.形参是引用,实参是变量
C.形参是变量,实参是地址值
D.形参和实参都是变量
7.进行文件操作需包含头文件()。
A.stdlib.h
B.stdio.h
C.ostream.h
D.fstream.h
8.若已定义了person类及person类的两个对象p1和p2,则执行语句”p1=p2;”将调用p1的()。
A.赋值运算符重载函数
B.析构函数
C.构造函数
D.拷贝构造函数
9.编译时的多态性通过使用() 实现。
A.重载函数
B.虚函数
C.析构函数
D.构造函数
10.对虚函数的调用()。
A.不一定使用动态联编
B.一定使用静态联编
C.一定使用指针
D.一定使用动态联编
11.下面叙述不正确的是()。
A.对基类成员的访问必须是无二义性的
B.基类的保护成员在私有派生类中仍然是保护的
C.基类的保护成员在公有派生类中仍然是保护的
D.基类的保护成员在保护派生类中仍然是保护的
12.假设已经有定义char*const name=”chen”; 下面的语句中正确的是()。
A.name=new char (‘q’) ;
B.name=new char[5];
C.name=”lin”;
D.name[3]= ‘q’;
13.以下有关继承的叙述正确的是()。
A.派生类是基类的组合
B.派生类对象除了能访问自己的成员以外,不能访问基类中的所有成员
C.构造函数和析构函数都能被继承
D.基类的公有成员一定能被派生类的对象访问
14.下面的叙述中,错误的是()。
A.析构函数可以定义为虚函数
B.构造函数可以定义为虚函数
C.当基类的析构函数定义为虚函数时,其派生类的析构函数也一定是虚函数
D.对虚析构函数的调用可以采用动态联编
15.面向对象的程序设计语言必须具备的关键要素是()。
A.抽象、封装、继承和多态性
B.抽象、封装和继承性
C.抽象和封装
D.抽象和多态性
16.建立包含有对象成员的派生类对象时,自动调用构造函数的执行顺序依次为()的构造函数。
A.自己所属类、对象成员所属类、基类
B.对象成员所属类、基类、自己所属类
C.基类、自己所属类、对象成员所属类
D.基类、对象成员所属类、自己所属类
17.假定classA为一个类,如果用户未定义析构函数,则系统为该类定义的默认析构函数为()。
A.void classA::~classA(){}
B.classA::~classA(int=0){}
C.classA::~classA(){}
D.classA::classA(){}
18.静态数据成员的初始化必须在()。
A.静态成员函数内
B.类外
C.类内
D.在构造函数内
19.下列关于纯虚函数的描述中,正确的是()。
A.纯虚函数是一种特殊的虚函数,它是个空函数
B.具有纯虚函数的类称为虚基类
C.具有纯虚函数的类不能创建类对象
D.一个基类中说明有纯虚函数,其派生类一定要实现该纯虚函数
20.运算符重载函数必须以特殊的关键字()开始。
A.virtual
B.template
C.static
D.operator
二、判断题 (共 20 道试题,共 40 分)
21.构造函数是可以被派生类继承的。
22.要对文件进行读写操作,必须在文件开头包含头文件fstream.h
23.在C++中,构造派生类对象时,总是先从基类的初始化开始的。
24.重载函数是基于不同的数据类型完成类似的操作,而函数模板则是对不同的数据类型完成相同的操作。
25.私有静态数据成员不能被类外部函数访问,也不能用对象进行访问。
26.静态的成员函数没有隐含的this指针 ,所以它们只能访问静态的数据成员。
27.公有继承方式下,基类成员的访问权限在派生类中保持不变。
28.C++中的函数就是面向对象理论中的消息。
29.C++不允许定义有默认参数的函数。
30.一个派生类继承多个基类称为多继承。
31.重载函数至少在参数个数、参数类型或参数顺序上要有所不同。
32.get()和put()函数的功能是一次读写一个字符,而read()和write()函数是一次读写一个数据块。
33.构造函数和析构函数都可以是虚函数。
34.操纵符函数setw(n)只对下一个输出有效。
35.C++允许通过重载的方式改变运算符的优先级和结合性。
36.若有声明:class C: public A,B{};则类C公有继承自类A、私有继承自类B。
37.赋值号两边的数据类型不一致时,将无法进行赋值运算。
38.C++编译器不能够区分重载的无参函数和缺省参数的函数。
39.一个类的友元一定是另一个类的成员函数。
40.类是C++中自定义的数据类型。