19春地大《面向对象程序设计》在线作业二[答案]满分答案
地大《面向对象程序设计(新)》在线作业二-0009
试卷总分:100 得分:0
一、 单选题 (共 15 道试题,共 60 分)
1.当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为
A.ios::in
B.ios::out
C.ios::int | ios::out
D.没有
2.下列有关函数重载的叙述中,错误的是()
A.函数重载就是用相同的函数名定义多个函数
B.重载函数的参数列表必须不同
C.重载函数的返回值类型必须不同
D.重载函数的参数可以带有默认值
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);
4.类的析构函数的作用是()
A.一般成员函数的初始化
B.类的初始化
C.对象的初始化
D.删除类创建的对象
5.假定AB为一个类,则该类的拷贝构造函数的声明语句为
A.AB?&(AB??x)
B.AB(AB??x)
C.AB(AB??&)
D.AB(AB?*?x)
6.下列程序的执行结果为()。 #include void main() { int a=3,b=0; int*p=&a: b=+a++; cout<<*P<<”,”<<endl }
A.3,4
B.4,3
C.3,4
D.4,4
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
8.类C是以多重继承的方式从类A和类B继承而来的,类A和类B无公共的基类,那么()
A.类C的继承方式只能采用public继承
B.可改用单继承的方式实现类C的同样功能
C.类A和类B至少有一个是抽象类
D.类A和类B至少有一个是虚基类
9.下列有关模板的叙述中,正确的是()
A.函数模板不能含有常规形参
B.函数模板的一个实例就是一个函数定义
C.类模板的成员函数不能是模板函数
D.用类模板定义对象时,绝对不能省略模板实参
10.下列程序的运行结果为()。#include void print(double a) { cout<<++a; } void print(int a,int b) { cout<<b<<a } void main() { print(1.2); cout<<” ”; print(3,4); }
A.1.2?34
B.2.2?34
C.1.2?43
D.2.2?43
11.类B是通过public继承方式从类A派生而来的,且类A和类B都有完整的实现代码,那么下列说法正确的是()
A.类B中具有pubic可访问性的成员函数个数一定不少于类A中public成员函数的个数
B.一个类B的实例对象占用的内存空间一定不少于一个类A的实例对象占用的内存空间
C.只要类B中的构造函数都是public的,在main函数中就可以创建类B的实例对象
D.类A和类B中的同名虚函数的返回值类型必须完全一致
12.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是()
A.友元函数
B.虚函数
C.构造函数
D.析构函数
13.下面描述中,表达错误的是()
A.公有继承时基类中的public成员在派生类中仍是public的
B.公有继承是基类中的private成员在派生类中仍是private的
C.公有继承时基类中的protected成员在派生类中仍是protected的
D.私有继承时基类中的public成员在派生类中是private的
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)
15.设int * p2=&x,* p1=a;p2= *b;则a和b的类型分别是()
A.int * 和int
B.int * 和int **
C.int 和int *
D.int * 和int *
19春地大《面向对象程序设计》在线作业二[答案]多选题答案
二、 多选题 (共 5 道试题,共 20 分)
1.关于公共静态数据成员,下面说法正确的是()
A.在main函数之前创建
B.跟某个具体对象无关
C.可以用类名和成员名直接访问
D.需要在类体外初始化
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;
3.关于构造函数说法正确的是()
A.函数名只能是类名
B.返回类型可以是任意的
C.参数个数和类型可以是任意的
D.在对象创建时自动调用
4.模板定义中的类型参数可以用作()
A.局部变量类型
B.函数参数类型
C.函数返回值类型
D.数据成员类型
5.关于类中重载赋值运算符的正确说法是()
A.由编译器提供的缺省赋值函数具有public访问性并且执行按位赋值
B.在重载派生类的赋值操作时,不但要实现派生类中数据成员的赋值,还要负责基类中数据成员的赋值
C.只有在类中含有指针数据成员或引用数据成员时,才需要重载类的赋值操作
D.通过修改类A的声明或定义,可以禁止用户在类A对象间进行任何赋值操作
三、 判断题 (共 5 道试题,共 20 分)
1.静态成员变量所有的对象拥有一份拷贝
A.错误
B.正确
2.显式类型转换可以把一个变量转换成另外一种数据类型
A.错误
B.正确
3.多态的实现分为两类:编译时的多态和运行时的多态
A.错误
B.正确
4.C++程序的执行只能从main()函数开始,并在main()中结束
A.错误
B.正确
5.虽然抽象类的析构函数可以是纯虚函数,但要实例化其派生类对象,仍必须提供抽象基类中析构函数的函数体
A.错误
B.正确
19春地大《面向对象程序设计》在线作业二[答案]历年参考题目如下: