13春中国地质大学《面向对象程序设计(新)》在线作业一

所属学校:中国地质大学 科目:面向对象程序设计(新) 2015-03-17 15:18:39
地大《面向对象程序设计(新)》在线作业一
试卷总分:100
单选题
多选题
判断题
一、单选题(共 15 道试题,共 60 分。)
V
1. 有如下程序: #include iostream using namespace std; class GA{ public; virtual int f(){retum l;} }; class GB: public GA{ public; virtual int f(){return 2;} }; void show(GA g){cout g.f();} void display(GA g){cout g.f();} int main(){ GA a: show(a); display(a);
A. 1111
B. 1211
C. 1112
D. 1212
满分:4 分
2. 在每个C++程序中都必须包含有这样一个函数,该函数的函数名为()
A. main
B. MAIN
C. name
D. Function
满分:4 分
3. 已知Value 是一个类,Value 是Value 的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是()
A. Value operator+(Value v, int i);
B. Value operator+(Value v=value, int i);
C. Value operator+(Value vint i=0);
D. Value operator+(Value v=value, int i=0);
满分:4 分
4. 在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是()
A. 派生类的对象可以赋给基类的对象
B. 派生类的对象可以初始化基类的引用
C. 派生类的对象可以直接访问基类中的成员
D. 派生类的对象的地址可以赋给指向基类的指针
满分:4 分
5. 已知函数f 的原型是void f(int *a, long b);,变量v1、v2 的定义是:int v1; loong v2;下列调用语句中正确的是
A. f(v1, v2);
B. f(v1, v2);
C. f( v1, v2);
D. f( v1, v2);
此题选: D 满分:4 分
6. 有如下类定义: class MyClass{ Int value; public; MyClass(int n): value (n) {} int gerValue()const{ return value;} }; 则类MyClass 的构造函数的个数是()
A. 1 个
B. 2 个
C. 3 个
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
此题选: D 满分:4 分
8. 在下面的函数声明中,存在着语法错误的是
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 满分:4 分
9. 对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是
A. 公有类型
B. 私有类型
C. 保护类型
D. 友元类型
此题选: D 满分:4 分
10. 当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为
A. ios::in
B. ios:ut
C. ios::int ios:ut
D. 没有
此题选: D 满分:4 分
11. 下列程序的运行结果为()。#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
此题选: D 满分:4 分
12. 执行语句 char ch[] = "Hello"; char * p = ch[0]; cout p; 结果是输出()
A. 一个地址
B. H
C. Hello
D. 乱码
满分:4 分
13. 有如下程序:   #include   class BASE{     char c;   public:     BASE(char n):c(n){}     virtual~BASE(){cout C;}   };   class DERIVED:public BASE{     char c;   public:     DERIVED(char n):BASE(n+1),c(n){}     ~DERIVED(){cout
A. XY
B. YX
C. X
D. Y
满分:4 分
14. 有如下类声明:class Base{protected;int amount;public;Base(int n=0): amount(n){}int getAmount()const { retum amount; }};class Derived: public Base {protected;int value;public;Derived(int m, int n): value(m). Base(n){}Int getData()const{ return value+amount; }};已知
A. x.value+ x.getAmount()
B. x.getData()-x.gctAmount()
C. x.getData()-x.amount
D. x.value+x.amount
满分:4 分
15. 假定AB为一个类,则该类的拷贝构造函数的声明语句为
A. AB (AB x)
B. AB(AB x)
C. AB(AB )
D. AB(AB * x)
满分:4 分
地大《面向对象程序设计(新)》在线作业一
试卷总分:100
单选题
多选题
判断题
二、多选题(共 5 道试题,共 20 分。)
V
1. 赋值运算符重载函数与拷贝构造函数的区别是什么()
A. 都是拷贝一个类的对象给另一个同类型的类的对象
B. 拷贝构造函数是用已存在的对象的各成员的当前值来创建一个相同的新对象
C. 赋值运算符重载函数要把一个已存在对象的各成员的当前值赋给另一个已存在的同类对象
满分:4 分
2. 关于构造函数说法正确的是()
A. 函数名只能是类名
B. 返回类型可以是任意的
C. 参数个数和类型可以是任意的
D. 在对象创建时自动调用
满分:4 分
3. 下面关于指针变量和引用变量的说法正确的是
A. 指针变量存放的是内存地址,并且可以置为0
B. 定义引用变量时,必须同时指明具体被引用的对象或变量
C. 使用取地址操作符,可以取得指针变量自身的地址,但取不到引用变量自身的地址
D. 类中的数据成员可以是指针变量,但不能是引用变量
满分:4 分
4. 以下哪些是面向对象程序设计的特征( )
A. 抽象
B. 封装
C. 继承
D. 多态
满分:4 分
5. 关于类中重载赋值运算符的正确说法是()
A. 由编译器提供的缺省赋值函数具有public访问性并且执行按位赋值
B. 在重载派生类的赋值操作时,不但要实现派生类中数据成员的赋值,还要负责基类中数据成员的赋值
C. 只有在类中含有指针数据成员或引用数据成员时,才需要重载类的赋值操作
D. 通过修改类A的声明或定义,可以禁止用户在类A对象间进行任何赋值操作
满分:4 分
地大《面向对象程序设计(新)》在线作业一
试卷总分:100
单选题
多选题
判断题
三、判断题(共 5 道试题,共 20 分。)
V
1. 抽象类不可以继承,只能派生
A. 错误
B. 正确
满分:4 分
2. 虽然抽象类的析构函数可以是纯虚函数,但要实例化其派生类对象,仍必须提供抽象基类中析构函数的函数体
A. 错误
B. 正确
满分:4 分
3. 类A是类B的友元,则类B一定是类A的友元
A. 错误
B. 正确
满分:4 分
4. 将类A所有构造函数的可访问性都限制为私有的,那么在main函数中不可能得到类A的实例对象
A. 错误
B. 正确
满分:4 分
5. 设int fp(char a,int b=0,double c=100.0);,则可以定义重载函数 int fp(char,int);
A. 错误
B. 正确
满分:4 分
版权声明

声明:有的资源均来自网络转载,版权归原作者所有,如有侵犯到您的权益 请联系本站我们将配合处理!

分享: