东师19秋《C ++》 程序设计19春在线作业2.docx
《东师19秋《C ++》 程序设计19春在线作业2.docx》由会员分享,可在线阅读,更多相关《东师19秋《C ++》 程序设计19春在线作业2.docx(6页珍藏版)》请在冰豆网上搜索。
![东师19秋《C ++》 程序设计19春在线作业2.docx](https://file1.bdocx.com/fileroot1/2022-11/15/15f97ed2-0029-47ce-a37e-9a1f1ab8f7c1/15f97ed2-0029-47ce-a37e-9a1f1ab8f7c11.gif)
东师19秋《C++》程序设计19春在线作业2
东师19秋《C++》程序设计19春在线作业2
试卷总分:
100得分:
100
一、单选题(共20道试题,共60分)
1.在声明类时,下面的说法正确的是()。
A.没有用private、public、protected定义的数据成员是公有成员
B.数据成员的数据类型可以是register
C.可以在类的声明中给数据成员赋初值
D.private、public、protected可以按任意顺序出现
答案:
D
2.类的析构函数是在()被调用的。
A.类创建时
B.删除对象时
C.创建对象时
D.不自动调用
答案:
B
3.下面对类的构造函数的定义是()。
A.voidX:
:
X(参数)
B.intX:
:
X(参数)
C.floatX:
:
X(参数)
D.X:
:
X(参数)
答案:
D
4.重载赋值操作符时,应声明为()函数。
A.虚
B.成员
C.多态
D.友元
答案:
B
5.关于虚函数的描述中,()是正确的。
A.虚函数是一个非成员函数
B.虚函数是一个static类型的成员函数
C.派生类的虚函数与基类的虚函数具有不同的参数个数和类型
D.基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数
答案:
D
6.下列()的调用方式是引用调用。
A.形参是指针,实参是地址值
B.形参是引用,实参是变量
C.形参是变量,实参是地址值
D.形参和实参都是变量
答案:
B
7.进行文件操作需包含头文件()。
A.stdlib.h
B.stdio.h
C.ostream.h
D.fstream.h
答案:
D
8.若已定义了person类及person类的两个对象p1和p2,则执行语句"p1=p2;"将调用p1的()。
A.赋值运算符重载函数
B.析构函数
C.构造函数
D.拷贝构造函数
答案:
A
9.编译时的多态性通过使用()实现。
A.重载函数
B.虚函数
C.析构函数
D.构造函数
答案:
A
10.对虚函数的调用()。
A.不一定使用动态联编
B.一定使用静态联编
C.一定使用指针
D.一定使用动态联编
答案:
A
11.下面叙述不正确的是()。
A.对基类成员的访问必须是无二义性的
B.基类的保护成员在私有派生类中仍然是保护的
C.基类的保护成员在公有派生类中仍然是保护的
D.基类的保护成员在保护派生类中仍然是保护的
答案:
B
12.假设已经有定义char*constname="chen";下面的语句中正确的是()。
A.name=newchar('q');
B.name=newchar[5];
C.name="lin";
D.name[3]='q';
答案:
D
13.以下有关继承的叙述正确的是()。
A.派生类是基类的组合
B.派生类对象除了能访问自己的成员以外,不能访问基类中的所有成员
C.构造函数和析构函数都能被继承
D.基类的公有成员一定能被派生类的对象访问
答案:
A
14.下面的叙述中,错误的是()。
A.析构函数可以定义为虚函数
B.构造函数可以定义为虚函数
C.当基类的析构函数定义为虚函数时,其派生类的析构函数也一定是虚函数
D.对虚析构函数的调用可以采用动态联编
答案:
B
15.面向对象的程序设计语言必须具备的关键要素是()。
A.抽象、封装、继承和多态性
B.抽象、封装和继承性
C.抽象和封装
D.抽象和多态性
答案:
A
16.建立包含有对象成员的派生类对象时,自动调用构造函数的执行顺序依次为()的构造函数。
A.自己所属类、对象成员所属类、基类
B.对象成员所属类、基类、自己所属类
C.基类、自己所属类、对象成员所属类
D.基类、对象成员所属类、自己所属类
答案:
D
17.假定classA为一个类,如果用户未定义析构函数,则系统为该类定义的默认析构函数为()。
A.voidclassA:
:
~classA(){}
B.classA:
:
~classA(int=0){}
C.classA:
:
~classA(){}
D.classA:
:
classA(){}
答案:
C
18.静态数据成员的初始化必须在()。
A.静态成员函数内
B.类外
C.类内
D.在构造函数内
答案:
B
19.下列关于纯虚函数的描述中,正确的是()。
A.纯虚函数是一种特殊的虚函数,它是个空函数
B.具有纯虚函数的类称为虚基类
C.具有纯虚函数的类不能创建类对象
D.一个基类中说明有纯虚函数,其派生类一定要实现该纯虚函数
答案:
C
20.运算符重载函数必须以特殊的关键字()开始。
A.virtual
B.template
C.static
D.operator
答案:
D
二、判断题(共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.若有声明:
classC:
publicA,B{};则类C公有继承自类A、私有继承自类B。
答案:
正确
37.赋值号两边的数据类型不一致时,将无法进行赋值运算。
答案:
错误
38.C++编译器不能够区分重载的无参函数和缺省参数的函数。
答案:
正确
39.一个类的友元一定是另一个类的成员函数。
答案:
错误
40.类是C++中自定义的数据类型。
答案:
正确