您的当前位置:首页正文

地大《面向对象程序设计》在线作业二1答案

2024-03-19 来源:好走旅游网


地大《面向对象程序设计(新)》在线作业二-0009

试卷总分:100 得分:0

一、 单选题 (共 15 道试题,共 60 分)

1.当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为

A.ios::in

B.ios::out

C.ios::int | ios::out

D.没有

正确答案:D

2.下列有关函数重载的叙述中,错误的是()

A.函数重载就是用相同的函数名定义多个函数

B.重载函数的参数列表必须不同

C.重载函数的返回值类型必须不同

D.重载函数的参数可以带有默认值

正确答案:C

3.设void f1(int * m,long & n);int a;long b;则以下调用合法的是()

A.f1(a,b);

B.f1(&a,b);

C.f1(a,&b);

D.f1(&a,&b);

正确答案:B

4.类的析构函数的作用是()

A.一般成员函数的初始化

B.类的初始化

C.对象的初始化

D.删除类创建的对象

正确答案:D

5.假定AB为一个类,则该类的拷贝构造函数的声明语句为

A.AB?&(AB??x)

B.AB(AB??x)

C.AB(AB??&)

D.AB(AB?*?x)

正确答案:C

6.下列程序的执行结果为()。 #include void main() { int a=3,b=0; int*p=&a: b=+a++; cout<<*P<<”,”<A.3,4

B.4,3

C.3,4

D.4,4

正确答案:B

7.如果有如下语句 char str[20]; cin >> str; cout << str; 执行时输入的是“this is a test line!”,则输出的内容是()

A.this is a test line!

B.this is a test line

C.this is atest

D.this

正确答案:D

8.类C是以多重继承的方式从类A和类B继承而来的,类A和类B无公共的基类,那么()

A.类C的继承方式只能采用public继承

B.可改用单继承的方式实现类C的同样功能

C.类A和类B至少有一个是抽象类

D.类A和类B至少有一个是虚基类

正确答案:B

9.下列有关模板的叙述中,正确的是()

A.函数模板不能含有常规形参

B.函数模板的一个实例就是一个函数定义

C.类模板的成员函数不能是模板函数

D.用类模板定义对象时,绝对不能省略模板实参

正确答案:B

10.下列程序的运行结果为()。#include void print(double a) { cout<<++a; } void print(int a,int b) { cout<A.1.2?34

B.2.2?34

C.1.2?43

D.2.2?43

正确答案:D

11.类B是通过public继承方式从类A派生而来的,且类A和类B都有完整的实现代

码,那么下列说法正确的是()

A.类B中具有pubic可访问性的成员函数个数一定不少于类A中public成员函数的个数

B.一个类B的实例对象占用的内存空间一定不少于一个类A的实例对象占用的内存空间

C.只要类B中的构造函数都是public的,在main函数中就可以创建类B的实例对象

D.类A和类B中的同名虚函数的返回值类型必须完全一致

正确答案:B

12.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是()

A.友元函数

B.虚函数

C.构造函数

D.析构函数

正确答案:C

13.下面描述中,表达错误的是()

A.公有继承时基类中的public成员在派生类中仍是public的

B.公有继承是基类中的private成员在派生类中仍是private的

C.公有继承时基类中的protected成员在派生类中仍是protected的

D.私有继承时基类中的public成员在派生类中是private的

正确答案:B

14.在下面的函数声明中,存在着语法错误的是

A.void??BC(int??a?,?int)

B.void??BD(int?,?int)

C.void??BE(int?,?int=5)

D.int??BF(int??x?;?int??y)

正确答案:D

15.设int * p2=&x,* p1=a;p2= *b;则a和b的类型分别是()

A.int * 和int

B.int * 和int **

C.int 和int *

D.int * 和int *

正确答案:B

二、 多选题 (共 5 道试题,共 20 分)

1.关于公共静态数据成员,下面说法正确的是()

A.在main函数之前创建

B.跟某个具体对象无关

C.可以用类名和成员名直接访问

D.需要在类体外初始化

正确答案:ABCD

2.类A中有唯一的一个公有成员函数f,对于类A的一个对象a,执行语句 a.f(100);成功,那么f 的函数原型可以为

A.A& f( int, int=50);

B.void f(int&) const;

C.const A * f(const int );

D.A f( const int&) const;

正确答案:ACD

3.关于构造函数说法正确的是()

A.函数名只能是类名

B.返回类型可以是任意的

C.参数个数和类型可以是任意的

D.在对象创建时自动调用

正确答案:ACD

4.模板定义中的类型参数可以用作()

A.局部变量类型

B.函数参数类型

C.函数返回值类型

D.数据成员类型

正确答案:ABCD

5.关于类中重载赋值运算符的正确说法是()

A.由编译器提供的缺省赋值函数具有public访问性并且执行按位赋值

B.在重载派生类的赋值操作时,不但要实现派生类中数据成员的赋值,还要负责基类中数据成员的赋值

C.只有在类中含有指针数据成员或引用数据成员时,才需要重载类的赋值操作

D.通过修改类A的声明或定义,可以禁止用户在类A对象间进行任何赋值操作

正确答案:ABD

三、 判断题 (共 5 道试题,共 20 分)

1.静态成员变量所有的对象拥有一份拷贝

A.错误

B.正确

正确答案:B

2.显式类型转换可以把一个变量转换成另外一种数据类型

A.错误

B.正确

正确答案:B

3.多态的实现分为两类:编译时的多态和运行时的多态

A.错误

B.正确

正确答案:B

4.C++程序的执行只能从main()函数开始,并在main()中结束

A.错误

B.正确

正确答案:B

5.虽然抽象类的析构函数可以是纯虚函数,但要实例化其派生类对象,仍必须提供抽象基类中析构函数的函数体

A.错误

B.正确

正确答案:B

因篇幅问题不能全部显示,请点此查看更多更全内容