17秋学期《面向对象程序设计》在线作业2Word文件下载.docx
- 文档编号:15356784
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:14
- 大小:18.29KB
17秋学期《面向对象程序设计》在线作业2Word文件下载.docx
《17秋学期《面向对象程序设计》在线作业2Word文件下载.docx》由会员分享,可在线阅读,更多相关《17秋学期《面向对象程序设计》在线作业2Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
};
则Sample类成员x是Sample类的()。
A.公有数据成员
B.保护数据成员
C.私有数据成员
D.以上选项都不正确
C
4.抽象类不能定义对象,但可以声明抽象类的()。
A.指针或引用
B.函数返回类型
C.显式转换
D.以上都是
5.单目运算符作为类成员函数重载时()。
A.有形参
B.没有形参
C.有实参
D.以上都不正确
B
16.在C++中,通过()的机制可以对原有的类进行扩充和完善以适应新的需要。
A.继承
B.封装
C.多态
D.重载
7.如果一个类至少有一个纯虚函数,那么就称该类是()。
A.抽象类
B.虚基类
C.派生类
D.以上都不对
21.有关带默认参数的函数的描述正确的是()。
A.只能在函数定义时设置默认参数值
B.只能在函数声明时设置默认参数值
C.函数调用时,必须使用默认的参数值,不能给出新的实参值
D.设置默认参数时,应该设置最右边的若干个参数的默认值
9.下列关于虚函数的说明中,正确的是()。
A.从虚基类继承的函数都是虚函数
B.虚函数不得是静态成员函数
C.只能通过指针或引用调用虚函数
D.抽象类中的成员函数都是虚函数
10.下列关于赋值运算符重载的说法中正确的是()。
A.返回值一般是以引用方式返回的对象,而函数体中总是用语句“return*this;
”返回this指针所指向的对象
B.赋值运算符只能以非成员函数的方式重载
C.赋值运算符既可以以成员函数的方式重载,又可以以非成员函数的方式重载
D.以上均不正确
14.已知“inta=10;
int&
r=a;
r=r+20;
cout<
<
a;
”,则输出为()。
A.10
B.20
C.30
D.不确定值
12.友元重载运算符obj1>
obj2被C++编译器解释为()。
A.operator>
(obj1,obj2)
B.>
C.obj1.operator>
(obj2)
D.obj2.operator>
(obj1)
30.结构化程序设计方法以()为中心进行分析和设计。
A.结构
B.模块
C.对象
D.类
14.已知“float*p;
p=newfloat[2];
”,若分配成功,则指针p在堆中获得的字节数为()。
A.2
B.4
C.8
D.不确定
1.类对象占用内存的大小与()有关。
A.数据成员
B.成员函数
C.数据成员和成员函数
D.私有成员
3.抽象类的作用主要是()。
A.直接用作基类
B.直接用作指针
C.引用的基类型
D.包括以上各项
17.在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是()。
A.派生类的对象可以直接访问基类的所有成员
B.派生类的对象可以初始化基类的引用
C.派生类的对象不可以直接访问基类中的私有成员
D.派生类的对象的地址可以赋给指向基类的指针
18.在派生类中重新定义虚函数时,除了(),其他方面都应与基类中相应的虚函数保持一致。
A.函数名
B.参数
C.函数体
D.返回值类型
19.基类的()在私有继承时在派生类中为私有成员函数,在公有和保护继承时在派生类中为保护成员函数。
A.私有成员函数
B.保护成员函数
C.公有成员
D.保护数据成员
13.关于纯虚函数和抽象类的描述中,错误的是()。
A.纯虚函数是一种特殊的虚函数,它没有具体的实现。
B.抽象类是指具有纯虚函数的类。
C.一个基类中有纯虚函数,该类的派生类一定不再是抽象类。
D.抽象类作为基类来使用,其纯虚函数的实现由派生类给出。
21.下列关于运算符重载正确的是()。
A.运算符重载可以改变运算符的操作数个数
B.运算符重载可以改变运算符的优先级
C.运算符重载可以改变运算符的结合性
D.运算符重载不可以改变语法结构
22.将一个函数声明为某类的友元函数后,则在函数中不可以直接访问该类的()。
D.都可访问
23.假定MyClass为一类,执行MyClassa,b
(2),*p[2];
语句时会自动调用该类构造函数()次。
B.3
C.4
D.5
24.对A、B两个类进行多重继承得到派生类C,则创建派生类C的对象时,从基类B中继承过来的成员变量由()类的构造函数进行初始化。
A.A
B.B
C.C
D.都可以
25.“#include<
iostream>
”是()预处理命令。
A.宏定义
B.文件包含
C.条件编译
D.工程配置
26.虚函数必须是类的()。
A.友元函数
C.构造函数
D.析构函数
10.在使用类创建对象时,系统会自动调用该对象的()完成对象中数据成员的初始化等操作。
B.虚函数
28.静态数据成员初始化在()进行,而且前面不加static,以免与一般静态变量或对象相混淆。
A.类体内
B.类体外
C.构造函数内
D.内联函数内
29.使用string类,必须在程序中包含头文件()。
A.string.h
B.string
C.cstring.h
D.cstring
30.类MyClass的定义如下:
classMyClass{public:
MyClass(){value=0;
}SetVariable(inti){value=i;
}private:
intvalue;
}则对下列语句序列正确的描述是()。
MyClass*p,my;
p=&
my;
A.语句p=&
是把对象my赋值给指针变量p
B.语句MyClass*p,my;
会调用两次类MyClass的构造函数
C.对语句*p.SetVariable(5)的调用是正确的
D.语句p->
SetVariable(5)与语句my.SetVariable(5)等价
26.多继承的构造函数顺序可分为如下4步:
①所有非虚基类的构造函数按照它们被继承的顺序构造。
②所有虚基类的构造函数按照它们被继承的顺序构造。
③所有子对象的构造函数按照它们声明的顺序构造。
④派生类自己的构造函数体这四个步骤的正确顺序是()。
A.④③①②
B.②④③①
C.②①③④
D.③④①②
23.类aClass的定义如下:
classaClass{public:
aClass(){}aClass(inti){value=newint(i);
}int*value;
}若要对类中的value赋值,则下面的语句中,正确的是()。
A.aClassmy;
my.value=10;
B.aClassmy;
*my.value=10;
C.aClassmy;
my.*value=10;
D.aClassmy(10);
28.在一个类中,可以对一个操作符进行()重载。
A.1种
B.2种
C.3种
D.多种
34.下列关于构造函数调用顺序的描述中,正确的是()。
A.创建派生类对象时,先调用基类的构造函数,后调用派生类的构造函数
B.创建基类对象时,先调用基类的构造函数,后调用派生类的构造函数
C.创建派生类对象时,先调用派生类的构造函数,后调用基类的构造函数
D.创建基类对象时,先调用派生类的构造函数,后调用基类的构造函数
35.下列关于类和对象的叙述中,错误的是()。
A.一个类只能有一个对象
B.对象是类的具体实例
C.类是某一类对象的抽象
D.类和对象的关系是一种数据类型与变量的关系
二、判断题(共15道试题,共30分)
1.假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为:
ABoperator+(AB&
AB&
);
A.错误
B.正确
8.在C++中,允许从一个类派生出任意多个类,但不允许某个类同时从多个类派生。
3.基类类型的指针可以指向其派生类对象。
14.在C++程序中,有且仅能有一个主函数,且其函数名必须是main。
6.在派生类构造函数的成员初始化列表中,可以包含基类构造函数的调用。
15.要使语句“MyClassa;
”能够编译通过,必须在定义MyClass类时编写无参构造函数。
2.构造函数不能被派生类继承。
11.一个类的静态数据成员被该类的所有对象共享。
4.C++语言类定义中默认的访问权限是public。
7.在派生类对象销毁时,系统除了会自动调用派生类的析构函数,还会自动调用基类的析构函数。
11.抽象类不能定义对象,但可以声明抽象类的指针或引用。
5.在一个类中声明了某个静态数据成员,并在类外给出其定义和初始化后,若未定义该类的对象,该静态数据成员则不存在。
13.以友元方式重载运算符时,形参列表中至少有一个参数必须是自定义数据类型。
9.对虚函数的调用,系统都是采用动态
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向对象程序设计 17 学期 面向 对象 程序设计 在线 作业