南开大学12秋学期《面向对象程序设计》在线作业

所属学校:南开大学 科目:面向对象程序设计 2015-03-17 19:14:34
12秋学期《面向对象程序设计》在线作业
试卷总分:100
单选题
判断题
一、单选题(共 35 道试题,共 70 分。)
V
1. 结构化程序设计方法以()为中心进行分析和设计。
A. 结构
B. 模块
C. 对象
D. 类
满分:2 分
2. 在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是()。
A. 派生类的对象可以直接访问基类的所有成员
B. 派生类的对象可以初始化基类的引用
C. 派生类的对象不可以直接访问基类中的私有成员
D. 派生类的对象的地址可以赋给指向基类的指针
满分:2 分
3. 下列运算符中,()在C++中不能重载。
A. ?:
B. +
C. -
D. =
满分:2 分
4. 在使用类创建对象时,系统会自动调用该对象的()完成对象中数据成员的初始化等操作。
A. 友元函数
B. 虚函数
C. 构造函数
D. 析构函数
满分:2 分
5. 下列关于拷贝构造函数的描述中,错误的是()。
A. 一个类可以定义多个拷贝构造函数
B. 若未定义拷贝构造函数,则系统会提供一个默认拷贝构造函数
C. 当类中有指针成员变量时,通常要为这个类定义一个拷贝构造函数来实现深拷贝
D. 拷贝构造函数中的参数按引用方式传递
满分:2 分
6. 将一个函数声明为某类的友元函数后,则在函数中不可以直接访问该类的()。
A. 公有成员
B. 私有成员
C. 保护成员
D. 都可访问
此题选: D 满分:2 分
7. 已知“int a=10,*p;int * r=p; r= a;*p=20;cout a;”,则输出为()。
A. 10
B. 20
C. 不确定值
D. 程序有错误
满分:2 分
8. 派生类中的成员不能访问基类中的()。
A. 私有成员
B. 公有成员
C. 保护成员
D. 以上都可以
满分:2 分
9. 程序在调用重载函数时,根据()区分到底要调用哪个函数。
A. 函数名
B. 返回值类型
C. 参数个数和类型
D. 以上都可以
满分:2 分
10. 类对象占用内存的大小与()有关。
A. 数据成员
B. 成员函数
C. 数据成员和成员函数
D. 私有成员
满分:2 分
11. 类aClass的定义如下: class aClass {public: aClass(){} aClass(int i){value=new int(i);} int *value; } 若要对类中的value赋值,则下面的语句中,正确的是()。
A. aClass my; my.value=10;
B. aClass my; *my.value=10;
C. aClass my; my.*value=10;
D. aClass my(10);
此题选: D 满分:2 分
12. 下面描述中,错误的是()。
A. 公有继承时,基类中的public成员在派生类中仍是public的
B. 公有继承时,基类中的private成员在派生类中仍是private的
C. 公有继承时,基类中的protected成员在派生类中仍是protected的
D. 私有继承时,基类中的public成员在派生类中是private的
满分:2 分
13. 对A、B两个类进行多重继承得到派生类C,则创建派生类C的对象时,从基类B中继承过来的成员变量由()类的构造函数进行初始化。
A. A
B. B
C. C
D. 都可以
满分:2 分
14. 基类的()在私有继承时在派生类中为私有成员函数,在公有和保护继承时在派生类中为保护成员函数。
A. 私有成员函数
B. 保护成员函数
C. 公有成员
D. 保护数据成员
满分:2 分
15. 抽象类不能定义对象,但可以声明抽象类的()。
A. 指针或引用
B. 函数返回类型
C. 显式转换
D. 以上都是
此题选: D 满分:2 分
16. 下面叙述中错误的是()。
A. 派生类可以使用private派生
B. 对基类成员的访问必须是无二义性的
C. 基类成员的访问能力在派生类中维持不变
D. 赋值兼容规则也适用于多继承的组合
满分:2 分
17. 有关带默认参数的函数的描述正确的是()。
A. 只能在函数定义时设置默认参数值
B. 只能在函数声明时设置默认参数值
C. 函数调用时,必须使用默认的参数值,不能给出新的实参值
D. 设置默认参数时,应该设置最右边的若干个参数的默认值
此题选: D 满分:2 分
18. 将一个string类对象赋予新值,应该使用string类的()函数。
A. assign
B. insert
C. swap
D. find
满分:2 分
19. 以下为重载函数的一组函数声明的是()。
A. void print(int); void print(double);
B. void fun(int); int fun(int);
C. int max(int,int); int min(int,int);
D. void mm(); int mm();
满分:2 分
20. 下列关于运算符重载的描述中,正确的是()。
A. 运算符重载可以改变操作数的个数
B. 运算符重载可以改变运算符的优先级
C. 运算符重载可以改变运算符的结合性
D. 运算符重载可以使运算符实现特殊功能
此题选: D 满分:2 分
21. 下列关于构造函数调用顺序的描述中,正确的是()。
A. 创建派生类对象时,先调用基类的构造函数,后调用派生类的构造函数
B. 创建基类对象时,先调用基类的构造函数,后调用派生类的构造函数
C. 创建派生类对象时,先调用派生类的构造函数,后调用基类的构造函数
D. 创建基类对象时,先调用派生类的构造函数,后调用基类的构造函数
满分:2 分
22. 面向对象程序设计方法以()为中心进行分析和设计。
A. 结构
B. 模块
C. 对象
D. 类
满分:2 分
23. 在一个C++源文件中使用了cin和cout,那么在这个源文件中必须包含()文件。
A. iostream
B. fstream
C. stdio.h
D. stdlib.h
满分:2 分
24. 运算符重载的目的是()。
A. 提高程序的效率
B. 提高代码复用能力
C. 简化程序,减少目标代码
D. 使程序代码直观易读
此题选: D 满分:2 分
25. 假定MyClass为一类,执行MyClass a,b(2),*p[2];语句时会自动调用该类构造函数()次。
A. 2
B. 3
C. 4
D. 5
满分:2 分
26. 下列关于类和对象的叙述中,错误的是()。
A. 一个类只能有一个对象
B. 对象是类的具体实例
C. 类是某一类对象的抽象
D. 类和对象的关系是一种数据类型与变量的关系
满分:2 分
27. 已知“float *p; p=new float[2];”,若分配成功,则指针p在堆中获得的字节数为()。
A. 2
B. 4
C. 8
D. 不确定
满分:2 分
28. 下列虚基类的声明中,正确的是()。
A. class virtual B:public A
B. virtual class B:public A
C. class B: public A virtual
D. class B: virtual public A
此题选: D 满分:2 分
29. 下列关于继承的描述中,错误的是()。
A. 基类中的析构函数不能被派生类继承
B. 基类中的保护成员在派生类中无法直接访问
C. 派生类的成员除了包括派生类中自己定义的成员外,还包括它从基类继承的成员
D. 在公有继承方式下基类中公有成员和保护成员的访问权限到派生类保持不变
满分:2 分
30. 下面对静态数据成员的描述中,正确的是()。
A. 静态数据成员可以在类体内进行初始化
B. 静态数据成员不可以被该类的对象调用
C. 静态数据成员不能受private控制符的作用
D. 静态数据成员可以直接用类名访问
此题选: D 满分:2 分
31. 变量的引用,其含义是指该变量的()。
A. 值
B. 类型
C. 别名
D. 地址
满分:2 分
32. 若类中有指针成员变量,则应编写(),使得在对象销毁时能够自动调用该函数释放指针成员变量所指向的内存空间。
A. 友元函数
B. 虚函数
C. 构造函数
D. 析构函数
此题选: D 满分:2 分
33. 已知“float *p; p=new float[2];”,若要释放p所指向的堆中的这些字节,下列语句正确的是()。
A. delete p;
B. delete p[];
C. delete []p;
D. delete p[2];
满分:2 分
34. 虚函数必须是类的()。
A. 友元函数
B. 成员函数
C. 构造函数
D. 析构函数
满分:2 分
35. 对于拷贝构造函数,正确的描述是()。
A. 在C++语言中,如果不自定义类的拷贝构造函数,则每个类都有默认的拷贝构造函数
B. 必须为每个类定义拷贝构造函数
C. 如果要使用拷贝构造函数,则必须在类中先定义
D. 当定义了类的构造函数时,如果要使用拷贝构造函数,则必须定义拷贝构造函数
满分:2 分
12秋学期《面向对象程序设计》在线作业
试卷总分:100
单选题
判断题
二、判断题(共 15 道试题,共 30 分。)
V
1. 假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为: AB operator+(AB ,AB );
A. 错误
B. 正确
满分:2 分
2. 在C++中,可以声明虚构造函数和虚析构函数。
A. 错误
B. 正确
满分:2 分
3. 要使语句“MyClass a;”能够编译通过,必须在定义MyClass类时编写无参构造函数。
A. 错误
B. 正确
满分:2 分
4. 在派生类构造函数的成员初始化列表中,可以包含基类构造函数的调用。
A. 错误
B. 正确
满分:2 分
5. 以友元方式重载运算符时,形参列表中至少有一个参数必须是自定义数据类型。
A. 错误
B. 正确
满分:2 分
6. 抽象类虽然也是一种数据类型,但它不能建立对象,只能作为基类被其他类继承。
A. 错误
B. 正确
满分:2 分
7. 在一个类中声明了某个静态数据成员,并在类外给出其定义和初始化后,若未定义该类的对象,该静态数据成员则不存在。
A. 错误
B. 正确
满分:2 分
8. 基类类型的指针可以指向其派生类对象。
A. 错误
B. 正确
满分:2 分
9. C++语言类定义中默认的访问权限是public。
A. 错误
B. 正确
满分:2 分
10. 一个类的静态数据成员被该类的所有对象共享。
A. 错误
B. 正确
满分:2 分
11. 在C++程序中,有且仅能有一个主函数,且其函数名必须是main。
A. 错误
B. 正确
满分:2 分
12. 类中所提供的成员函数可以直接访问该类的私有成员。
A. 错误
B. 正确
满分:2 分
13. 私有继承中,对于基类中的所有成员,派生类的成员函数都不可直接访问。
A. 错误
B. 正确
满分:2 分
14. a为MyClass类对象,“static void SetRate(double r){...}”是MyClass类的静态成员函数,则执行语句“a.SetRate(0.05);”时,SetRate成员函数中的this指针指向对象a的地址。
A. 错误
B. 正确
满分:2 分
15. 定义一个虚基类后,则该虚基类后继类层次中的类都需要调用虚基类的构造函数对虚基类中定义的成员变量进行初始化。
A. 错误
B. 正确
满分:2 分
版权声明

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

分享: