17秋学期《面向对象程序设计》在线作业2.docx

上传人:b****1 文档编号:1062633 上传时间:2022-10-16 格式:DOCX 页数:14 大小:18.49KB
下载 相关 举报
17秋学期《面向对象程序设计》在线作业2.docx_第1页
第1页 / 共14页
17秋学期《面向对象程序设计》在线作业2.docx_第2页
第2页 / 共14页
17秋学期《面向对象程序设计》在线作业2.docx_第3页
第3页 / 共14页
17秋学期《面向对象程序设计》在线作业2.docx_第4页
第4页 / 共14页
17秋学期《面向对象程序设计》在线作业2.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

17秋学期《面向对象程序设计》在线作业2.docx

《17秋学期《面向对象程序设计》在线作业2.docx》由会员分享,可在线阅读,更多相关《17秋学期《面向对象程序设计》在线作业2.docx(14页珍藏版)》请在冰豆网上搜索。

17秋学期《面向对象程序设计》在线作业2.docx

17秋学期《面向对象程序设计》在线作业2

17秋学期《面向对象程序设计》在线作业

试卷总分:

100得分:

100

一、单选题(共35道试题,共70分)

1.在一个C++源文件中使用了cin和cout,那么在这个源文件中必须包含()文件。

A.iostream

B.fstream

C.stdio.h

D.stdlib.h

满分:

2分

正确答案:

A

 

2.在保护继承中,基类中的私有成员作为派生类的()。

A.公有成员

B.私有成员

C.保护成员

D.不可访问

满分:

2分

正确答案:

D

 

3.有如下类声明:

classSample{intx;};则Sample类成员x是Sample类的()。

A.公有数据成员

B.保护数据成员

C.私有数据成员

D.以上选项都不正确

满分:

2分

正确答案:

C

 

4.抽象类不能定义对象,但可以声明抽象类的()。

A.指针或引用

B.函数返回类型

C.显式转换

D.以上都是

满分:

2分

正确答案:

D

 

5.单目运算符作为类成员函数重载时()。

A.有形参

B.没有形参

C.有实参

D.以上都不正确

满分:

2分

正确答案:

B

 

16.在C++中,通过()的机制可以对原有的类进行扩充和完善以适应新的需要。

A.继承

B.封装

C.多态

D.重载

满分:

2分

正确答案:

A

 

7.如果一个类至少有一个纯虚函数,那么就称该类是()。

A.抽象类

B.虚基类

C.派生类

D.以上都不对

满分:

2分

正确答案:

A

 

21.有关带默认参数的函数的描述正确的是()。

A.只能在函数定义时设置默认参数值

B.只能在函数声明时设置默认参数值

C.函数调用时,必须使用默认的参数值,不能给出新的实参值

D.设置默认参数时,应该设置最右边的若干个参数的默认值

满分:

2分

正确答案:

D

 

9.下列关于虚函数的说明中,正确的是()。

A.从虚基类继承的函数都是虚函数

B.虚函数不得是静态成员函数

C.只能通过指针或引用调用虚函数

D.抽象类中的成员函数都是虚函数

满分:

2分

正确答案:

B

 

10.下列关于赋值运算符重载的说法中正确的是()。

A.返回值一般是以引用方式返回的对象,而函数体中总是用语句“return*this;”返回this指针所指向的对象

B.赋值运算符只能以非成员函数的方式重载

C.赋值运算符既可以以成员函数的方式重载,又可以以非成员函数的方式重载

D.以上均不正确

满分:

2分

正确答案:

A

 

14.已知“inta=10;int&r=a;r=r+20;cout<

A.10

B.20

C.30

D.不确定值

满分:

2分

正确答案:

C

 

12.友元重载运算符obj1>obj2被C++编译器解释为()。

A.operator>(obj1,obj2)

B.>(obj1,obj2)

C.obj1.operator>(obj2)

D.obj2.operator>(obj1)

满分:

2分

正确答案:

A

 

30.结构化程序设计方法以()为中心进行分析和设计。

A.结构

B.模块

C.对象

D.类

满分:

2分

正确答案:

B

 

14.已知“float*p;p=newfloat[2];”,若分配成功,则指针p在堆中获得的字节数为()。

A.2

B.4

C.8

D.不确定

满分:

2分

正确答案:

C

 

1.类对象占用内存的大小与()有关。

A.数据成员

B.成员函数

C.数据成员和成员函数

D.私有成员

满分:

2分

正确答案:

A

 

3.抽象类的作用主要是()。

A.直接用作基类

B.直接用作指针

C.引用的基类型

D.包括以上各项

满分:

2分

正确答案:

D

 

17.在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是()。

A.派生类的对象可以直接访问基类的所有成员

B.派生类的对象可以初始化基类的引用

C.派生类的对象不可以直接访问基类中的私有成员

D.派生类的对象的地址可以赋给指向基类的指针

满分:

2分

正确答案:

A

 

18.在派生类中重新定义虚函数时,除了(),其他方面都应与基类中相应的虚函数保持一致。

A.函数名

B.参数

C.函数体

D.返回值类型

满分:

2分

正确答案:

C

 

19.基类的()在私有继承时在派生类中为私有成员函数,在公有和保护继承时在派生类中为保护成员函数。

A.私有成员函数

B.保护成员函数

C.公有成员

D.保护数据成员

满分:

2分

正确答案:

B

 

13.关于纯虚函数和抽象类的描述中,错误的是()。

A.纯虚函数是一种特殊的虚函数,它没有具体的实现。

B.抽象类是指具有纯虚函数的类。

C.一个基类中有纯虚函数,该类的派生类一定不再是抽象类。

D.抽象类作为基类来使用,其纯虚函数的实现由派生类给出。

满分:

2分

正确答案:

C

 

21.下列关于运算符重载正确的是()。

A.运算符重载可以改变运算符的操作数个数

B.运算符重载可以改变运算符的优先级

C.运算符重载可以改变运算符的结合性

D.运算符重载不可以改变语法结构

满分:

2分

正确答案:

D

 

22.将一个函数声明为某类的友元函数后,则在函数中不可以直接访问该类的()。

A.公有成员

B.私有成员

C.保护成员

D.都可访问

满分:

2分

正确答案:

D

 

23.假定MyClass为一类,执行MyClassa,b

(2),*p[2];语句时会自动调用该类构造函数()次。

A.2

B.3

C.4

D.5

满分:

2分

正确答案:

A

 

24.对A、B两个类进行多重继承得到派生类C,则创建派生类C的对象时,从基类B中继承过来的成员变量由()类的构造函数进行初始化。

A.A

B.B

C.C

D.都可以

满分:

2分

正确答案:

B

 

25.“#include”是()预处理命令。

A.宏定义

B.文件包含

C.条件编译

D.工程配置

满分:

2分

正确答案:

B

 

26.虚函数必须是类的()。

A.友元函数

B.成员函数

C.构造函数

D.析构函数

满分:

2分

正确答案:

B

 

10.在使用类创建对象时,系统会自动调用该对象的()完成对象中数据成员的初始化等操作。

A.友元函数

B.虚函数

C.构造函数

D.析构函数

满分:

2分

正确答案:

C

 

28.静态数据成员初始化在()进行,而且前面不加static,以免与一般静态变量或对象相混淆。

A.类体内

B.类体外

C.构造函数内

D.内联函数内

满分:

2分

正确答案:

B

 

29.使用string类,必须在程序中包含头文件()。

A.string.h

B.string

C.cstring.h

D.cstring

满分:

2分

正确答案:

B

 

30.类MyClass的定义如下:

classMyClass{public:

MyClass(){value=0;}SetVariable(inti){value=i;}private:

intvalue;}则对下列语句序列正确的描述是()。

MyClass*p,my;p=&my;

A.语句p=&my;是把对象my赋值给指针变量p

B.语句MyClass*p,my;会调用两次类MyClass的构造函数

C.对语句*p.SetVariable(5)的调用是正确的

D.语句p->SetVariable(5)与语句my.SetVariable(5)等价

满分:

2分

正确答案:

D

 

26.多继承的构造函数顺序可分为如下4步:

①所有非虚基类的构造函数按照它们被继承的顺序构造。

②所有虚基类的构造函数按照它们被继承的顺序构造。

③所有子对象的构造函数按照它们声明的顺序构造。

④派生类自己的构造函数体这四个步骤的正确顺序是()。

A.④③①②

B.②④③①

C.②①③④

D.③④①②

满分:

2分

正确答案:

C

 

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);

满分:

2分

正确答案:

D

 

28.在一个类中,可以对一个操作符进行()重载。

A.1种

B.2种

C.3种

D.多种

满分:

2分

正确答案:

D

 

34.下列关于构造函数调用顺序的描述中,正确的是()。

A.创建派生类对象时,先调用基类的构造函数,后调用派生类的构造函数

B.创建基类对象时,先调用基类的构造函数,后调用派生类的构造函数

C.创建派生类对象时,先调用派生类的构造函数,后调用基类的构造函数

D.创建基类对象时,先调用派生类的构造函数,后调用基类的构造函数

满分:

2分

正确答案:

A

 

35.下列关于类和对象的叙述中,错误的是()。

A.一个类只能有一个对象

B.对象是类的具体实例

C.类是某一类对象的抽象

D.类和对象的关系是一种数据类型与变量的关系

满分:

2分

正确答案:

A

 

二、判断题(共15道试题,共30分)

1.假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为:

ABoperator+(AB&,AB&);

A.错误

B.正确

满分:

2分

正确答案:

A

 

8.在C++中,允许从一个类派生出任意多个类,但不允许某个类同时从多个类派生。

A.错误

B.正确

满分:

2分

正确答案:

A

 

3.基类类型的指针可以指向其派生类对象。

A.错误

B.正确

满分:

2分

正确答案:

B

 

14.在C++程序中,有且仅能有一个主函数,且其函数名必须是main。

A.错误

B.正确

满分:

2分

正确答案:

B

 

6.在派生类构造函数的成员初始化列表中,可以包含基类构造函数的调用。

A.错误

B.正确

满分:

2分

正确答案:

B

 

15.要使语句“MyClassa;”能够编译通过,必须在定义MyClass类时编写无参构造函数。

A.错误

B.正确

满分:

2分

正确答案:

A

 

2.构造函数不能被派生类继承。

A.错误

B.正确

满分:

2分

正确答案:

B

 

11.一个类的静态数据成员被该类的所有对象共享。

A.错误

B.正确

满分:

2分

正确答案:

B

 

4.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1