西安交通大学18年9月课程考试《面向对象程序设计》作业考核试题 下载本文

内容发布更新时间 : 2024/11/17 6:46:17星期一 下面是文章的全部内容请认真阅读。

www.vu8o.com

??------------------------------------------------------------------------------------------------------------------------------

(单选题) 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); C: int *p=new [30];

www.vu8o.com

??------------------------------------------------------------------------------------------------------------------------------

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: 对于类中定义的成员,其隐含访问权限为()。 A: public

www.vu8o.com

??------------------------------------------------------------------------------------------------------------------------------

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 B: istream, ostream, istrstream,ostrstream

www.vu8o.com

??------------------------------------------------------------------------------------------------------------------------------

C: istream, ostream, iostream

D: istream, ostream, fstreambase,strstreambase 正确答案:

(单选题) 27: 在公有继承的情况下,基类成员在派生类中的访问权限( ) A: 受限制 B: 保持不变 C: 受保护 D: 不受保护 正确答案:

(单选题) 28: 类的析构函数是一个对象被( )时自动调用的。 A: 建立 B: 撤消 C: 赋值 D: 引用 正确答案:

(单选题) 29: 由C++源程序文件编译而成的目标文件的缺省扩展名为()。 A: cpp B: exe C: obj D: lik 正确答案:

(单选题) 30: 类的析构函数是在( )调用的。 A: 类创建时 B: 创建对象时 C: 删除对象时 D: 不自动调用 正确答案:

(判断题) 1: 使用虚函数无法避免多重继承产生的二义性。( ) A: 错误 B: 正确 正确答案:

(判断题) 2: 重载单目运算符作为类的成员函数,函数没有参数。( ) A: 错误 B: 正确 正确答案:

(判断题) 3: 运算符重载以后,其优先级和结合性都不能改变。( ) A: 错误 B: 正确 正确答案:

(判断题) 4: 构造函数可以重载。( ) A: 错误 B: 正确 正确答案:

(判断题) 5: 纯虚函数是在基类中说明的虚函数,它在该基类中必须定义具体的操作内容。( ) A: 错误 B: 正确 正确答案:

(判断题) 6: 引用可以不初始化。( ) A: 错误 B: 正确 正确答案:

(判断题) 7: C++只能用于面向对象程序设计,不适用于面向过程程序设计。( ) A: 错误

www.vu8o.com

??------------------------------------------------------------------------------------------------------------------------------

B: 正确 正确答案: (判断题) 8: 对使用默认参数的构造函数,如果在类外定义构造函数,应该在定义构造函数时指定默认值( )。 A: 错误 B: 正确 正确答案:

(判断题) 9: 在C++的异常处理方法中,try块和catch块必须作为一个整体出现。( ) A: 错误 B: 正确 正确答案:

(判断题) 10: 字符串\的长度是5。( ) A: 错误 B: 正确 正确答案:

(判断题) 11: 使用虚函数可以避免多重继承产生的二义性。( ) A: 错误 B: 正确 正确答案:

(判断题) 12: Iostream是抽象基类ios的直接派生类.。() A: 错误 B: 正确 正确答案: (判断题) 13: 在C++中,在文件中只能用“#include 包含头文件iostream,而不能用“#include 包含头文件iostream。( ) A: 错误 B: 正确 正确答案:

(判断题) 14: 对于从基类继承的虚函数,派生类也可以不进行重定义。( ) A: 错误 B: 正确 正确答案:

(判断题) 15: C++允许用户可以定义新的运算符。例如,可将“**”定义为幂运算符。( ) A: 错误 B: 正确 正确答案:

(判断题) 16: 使用new运算符创建数组时,可以为该数组指定初始值( )。 A: 错误 B: 正确 正确答案: (判断题) 17: 在用class定义一个类时,如果不加声明,数据成员和成员函数默认的访问权限是public。( ) A: 错误 B: 正确 正确答案:

(判断题) 18: 若类B是类A的私有派生类,类C是类B的私有派生类,则类C可访问类A的公用成员。( ) A: 错误 B: 正确 正确答案:

(判断题) 19: 打开一个二进制文件时可以同时指定它既是输入文件又是输出文件。( ) A: 错误 B: 正确 正确答案:

(判断题) 20: 使用字符串流时必须打开文件。( ) A: 错误