西安交通大学18年9月课程考试《面向对象程序设计》作业考核试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(单选题) 1: 下列说法错误的是()。
A: 在类中不能对所定义的数据成员进行初始化;
B: 类的公有成员函数是类与外界的接口
C: 同一个类的两个对象占用相同的内存空间;
D: 类实现数据隐藏。
正确答案:
(单选题) 2: 下面是四条顺序出现的声明语句,非法的初始化语句是()。
A: int i = –1;
B: const int ic=i;
C: const int *pc=⁣
D: int *const cpi=⁣
正确答案:
(单选题) 3: 当一个类对象离开它的作用域时,系统自动调用该类的( )。
A: 无参构造函数
B: 带参构造函数
C: 拷贝构造函数
D: 析构函数
正确答案:
(单选题) 4: 有关析构函数的说法不正确的是_____.
A: 析构函数有且只有一个
B: 析构函数和构造函数一样可以有形参
C: 析构函数无任何函数类型
D: 析构函数的作用是在对象被撤销时收回先前分配的内存空间
正确答案:
(单选题) 5: 下列哪个初始化是非法的(下面五个选项是顺序出现的声明语句)()
A: int i =-1;
B: const int ic=i;
C: const int *pc=⁣
D: int *const cpi=⁣
E: const int *const cpic=⁣
正确答案:
(单选题) 6: 下列语句中错误的是()。
A: “int *p=new int (10);”
B: “int *p=new int [10];”
C: “int *p=new int ;”
D: “int *p=new int (10)(0);”
正确答案:
(单选题) 7: 如果类A被说明成类B的友元,则( )
A: 类A的成员即类B的成员
B: 类B的成员即类A的成员
C: 类A的成员函数不得访问类B的成员
D: 类B不一定是类A的友元
正确答案:
(单选题) 8: 在一个类的定义中,包含有()成员的定义。
A: 数据
B: 函数
C: 数据和函数
D: 数据或函数
正确答案:
(单选题) 9: 定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为()。A: int *p=new int[30];
B: int *p=new int(30);
D: *p=new int[30];
正确答案:
(单选题) 10: 类的析构函数的作用是( )
A: 一般成员函数
B: 类的初始化
C: 对象的初始化
D: 删除对象创建的所有对象
正确答案:
(单选题) 11: 带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化_____。
A: 与虚基类下面的派生类个数有关;
B: 多次;
C: 二次;
D: 一次;
正确答案:
(单选题) 12: 下面关于引用的说法错误的是( )。
A: 引用是被引用对象的别名
B: 对引用的修改就是对被引用对象的修改,反之亦然
C: 引用不一定立即初始化
D: 引用不能建立数组
正确答案:
(单选题) 13: 下列对引用的陈述中不正确的是()。
A: 每一个引用都是其所引用对象的别名,因此必须初始化
B: 形式上针对引用的操作实际上作用于它所引用的对象
C: 一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行
D: 不需要单独为引用分配存储空间
正确答案:
(单选题) 14: 下面关于析构函数特征的描述正确的是()。
A: 一个类中可以定义多个析构函数
B: 析构函数名与类名相同
C: 析构函数不能指定返回类型
D: 析构函数可以有一个或多个参数
正确答案:
(单选题) 15: 以下叙述中正确的是()
A: 使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值
B: 使用const定义的常量名有类型之分,其值在程序运行时是不可改变的
C: 在程序中使用内置函数使程序的可读性变差
D: 在定义函数时可以在形参表的任何位置给出缺省形参值
正确答案:
(单选题) 16: 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择()。
A: 内置函数
B: 重载函数
C: 递归函数
D: 函数模板
正确答案:
(单选题) 17: 以下关于函数模板的论述中,正确的是()。
A: 一旦定义了函数模板,就不能再定义同名的重载函数
B: 从同一个函数模板实例化后得到的多个模板函数属于函数重载;
C: 函数模板中只有一种参数;
D: 在定义函数模板时,template语句与函数模板定义语句之间可以有别的语句。
正确答案:
(单选题) 18: 对于类中定义的成员,其隐含访问权限为()。
B: ptotected
C: private
D: static
正确答案:
(单选题) 19: 有如下的定义语句:int * array_ptr=new int[10]; int * pi;执行下面的哪个语句将使程序执行delete[ ] array_ptr 时出错()
A: (*array_ptr)++;
B: array_ptr++;
C: pi=array_ptr;
D: pi=array_ptr+3;
正确答案:
(单选题) 20: 假定一个类的构造函数为“B(int ax, int bx): a(ax), b(bx) {}”,执行“B x(1,2),y(3,4);x=y;”语句序列后x.a的值为()。
A: 1
B: 2
C: 3
D: 4
正确答案:
(单选题) 21: C++的输入输出不包括()。C
A: 标准的输入输出
B: 文件的输入输出
C: 字符串输入输出
D: 显示屏和打印机的输入输出
正确答案:
(单选题) 22: 假定一个二维数组的定义语句为“int a [3][4]={{3,4),{2,8,6));”,则元素a[1][2] 的值为( )。
A: 2
B: 4
C: 6
D: 8
正确答案:
(单选题) 23: 函数重载是指()。
A: 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同
B: 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同
C: 两个以上的函数名字不同,但形参的个数或类型相同
D: 两个以上的函数取相同的函数名,并且函数的返回类型相同
正确答案:
(单选题) 24: 在类作用域中能够通过直接使用该类的()成员名进行访问。
A: 私有
B: 公用
C: 保护
D: 任何
正确答案:
(单选题) 25: 假定一个类的构造函数为“A(int aa, int bb) {a=aa; b=aa*bb;}”,则执行“A x(4,5);”语句后,x.a和x.b的值分别为( )
A: 4和5
B: 5和4
C: 4和20
D: 20和5
正确答案:
(单选题) 26: 在C++中,抽象基类ios直接派生出()。
A: istream, ostream, ifstream,ofstream