西交17年3月课程《面向对象程序设计》作业考核答案
西安交通大学17年3月课程考试《面向对象程序设计》作业考核试题一、单选题:
1.C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是( )。 (满分:2)
A. 增加了一些新的运算符
B. 允许函数重载,并允许设置缺省参数
C. 规定函数说明符必须用原型
D. 引进了类和对象的概念
2.如果一个类至少有一个纯虚函数,那么该类称为( ).。 (满分:2)
A. 抽象类
B. 虚基类
C. 派生类
D. 以上都不对
3.假定AB为一个类,则执行 “AB r1=r2;”语句时将自动调用该类的( )。 (满分:2)
A. 无参构造函数
B. 带参构造函数
C. 赋值重载函数
D. 拷贝构造函数
4.带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化( )。 (满分:2)
A. 与虚基类下面的派生类个数有关
B. 多次
C. 二次
D. 一次
5.派生类的构造函数的成员初始化列表中,不能包含( )。 (满分:2)
A. 基类的构造函数;
B. 派生类中子对象的初始化;
C. 基类的子对象初始化;
D. 派生类中一般数据成员的初始化;
6.由C++目标文件连接而成的可执行文件的缺省扩展名为( )。 (满分:2)
A. cpp
B. exe
C. obj
D. lik
7.以下叙述中正确的是( ) (满分:2)
A. 使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值
B. 使用const定义的常量名有类型之分,其值在程序运行时是不可改变的
C. 在程序中使用内置函数使程序的可读性变差
D. 在定义函数时可以在形参表的任何位置给出缺省形参值
8.下列不是C++基本数据类型的是( )。 (满分:2)
A. int
B. string
C. char
D. void
9.下列函数中,( )不能重载。 (满分:2)
A. 一般的成员函数
B. 一般的非成员函数
C. 析构函数
D. 构造函数。
10.关于继承中出现的二义性的描述中,( )是错误的。 (满分:2)
A. 一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性;
B. 解决二义性的最常用的方法是对成员名的限定法;
C. 在单继承情况下,派生类中对基类成员的访问也会出现二义性;
D. 一个派生类是从两个基类派生出来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,也可能出现二义性;
11.cout是某个类的标准对象,该类是( )。 (满分:2)
A. ostream
B. istream
C. stdout
D. stdin
12.假定AA为一个类,a为该类私有的数据成员,GetValue( )为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的格式为( )。 (满分:2)
A. x.a
B. x.a( )
C. x>GetValue( )
D. x.GetValue( )
13.下列( )的调用方式是引用调用。 (满分:2)
A. 形参和实参都是变量
B. 形参是指针,实参是地址值
C. 形参是引用,实参是变量
D. 形参是变量,实参是地址值
14.下列关于成员函数特征的描述中,( )是错误的。 (满分:2)
A. 成员函数一定是内置函数
B. 成员函数可以重载
C. 成员函数可以设置参数的默认值
D. 成员函数可以是静态的
15.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字( )放在函数原型或函数头的前面。 (满分:2)
A. in
B. inline
C. inLine
D. InLiner
16.对于类中定义的成员,其隐含访问权限为( )。 (满分:2)
A. public
B. ptotected
C. private
D. static
17.对类对象成员的初始化是通过构造函数中给出的( )实现的。 (满分:2)
A. 函数体
B. 参数初始化表
C. 参数表
D. 参数初始化表或函数体
18.关于静态成员,正确的说法是( )。 (满分:2)
A. 静态成员函数可以直接访问该类中的非静态成员
B. 非静态成员函数不能直接访问该类中的静态成员
C. 静态数据成员同其它数据成员一样通过构造函数进行初始化
D. 静态成员在任何对象创建之前就已经创建
19.定义析构函数时,应该注意( )。 (满分:2)
A. 其名与类名完全相同
B. 返回类型是void类型
C. 无形参,也不可重载
D. 函数体中必须有delete语句
20.为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择( )。 (满分:2)
A. 内置函数
B. 重载函数
C. 递归函数
D. 函数模板
21.派生类的成员函数可以直接访问基类的( )成员。 (满分:2)
A. 所有
B. 公有和保护
C. 保护和私有
D. 私有
22.若需要使类中的一个指针成员指向一块动态存储空间,则通常在( )函数中完成。 (满分:2)
A. 析构
B. 构造
C. 任一成员
D. 友元
23.假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为( )。 (满分:2)
A. x(a)
B. x
C. x->a
D. x.a
24.在成员函数中进行双目运算符重载时,其参数表中应带有( )个参数。 (满分:2)
A. 0
B. 1
C. 2
D. 3
25.关于构造函数,下列说法不正确的是( )。 (满分:2)
A. 构造函数名字和类名相同
B. 构造函数在创建对象时自动执行
C. 构造函数无任何函数返回类型
D. 构造函数有且只有一个
26.C++编译系统确定调用是具体对象的过程称为关联。C++有( )关联。 (满分:2)
A. 1种
B. 2种
C. 3种
D. 4种
27.定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为( )。 (满分:2)
A. int *p=new int;
B. int *p=new int(30);
C. int *p=new ;
D. *p=new int;
28.当一个类对象离开它的作用域时,系统自动调用该类的( )。 (满分:2)
A. 无参构造函数
B. 带参构造函数
C. 拷贝构造函数
D. 析构函数
29.假定一个类对象数组为A,当离开它定义的作用域时,系统自动调用该类析构函数的次数为( )。 (满分:2)
A. 0
B. 1
C. n
D. n-1
30.假定AB为一个类,则执行 “AB a;”语句时调用该类无参构造函数的次数为( )。 (满分:2)
A. 0
B. 1
C. 9
D. 10
三、判断题:
1.重载函数不能改变运算符运算对象的个数。( ) (满分:2)
A. 错误
B. 正确
2.在类的继承层次结构中,在不同的层次中不能出现名字相同、参数个数和类型都相同而功能不同的函数。( ) (满分:2)
A. 错误
B. 正确
3.若类Y是类X的私有派生类,类Z是类Y的公用派生类,则类Z不能访问类X 的公用成员和保护成员。( ) (满分:2)
A. 错误
B. 正确
4.内置函数的定义必须出现在第一次调用内置函数之前。( ) (满分:2)
A. 错误
B. 正确
5.打开一个二进制文件时可以同时指定它既是输入文件又是输出文件。( ) (满分:2)
A. 错误
B. 正确
6.如果定义了一个类的对象数组,该数组有10个元素,则要调用10次构造函数来对每个元素初始化。( )。 (满分:2)
A. 错误
B. 正确
7.Iostream是抽象基类ios的直接派生类.。( ) (满分:2)
A. 错误
B. 正确
8.析构函数必须指定返回类型以及函数参数。( ) (满分:2)
A. 错误
B. 正确
9.使用new运算符创建数组时,可以为该数组指定初始值( )。 (满分:2)
A. 错误
B. 正确
10.C++语言支持封装性和继承性,不支持多态性。( )。 (满分:2)
A. 错误
B. 正确
11.私有继承的派生类不能访问基类中的私有成员,但公用继承的派生类可以访问基类中的私有成员。( ) (满分:2)
A. 错误
B. 正确
12.构造函数可以重载。( ) (满分:2)
A. 错误
B. 正确
13.C++允许用户可以定义新的运算符。例如,可将“**”定义为幂运算符。( ) (满分:2)
A. 错误
B. 正确
14.使用虚函数可以避免多重继承产生的二义性。( ) (满分:2)
A. 错误
B. 正确
15.不可以定义抽象类的对象。( ) (满分:2)
A. 错误
B. 正确
16.C++只能用于面向对象程序设计,不适用于面向过程程序设计。( ) (满分:2)
A. 错误
B. 正确
17.析构函数不能被继承。( ) (满分:2)
A. 错误
B. 正确
18.在声明派生类时,派生类把基类的的构造函数也一起继承过来。( ) (满分:2)
A. 错误
B. 正确
19.将字符串常量存放到字符串变量时,包含字符串本身和结束符“\0”。 (满分:2)
A. 错误
B. 正确
20.字符串"sdfgh"的长度是5。( ) (满分:2)
A. 错误
B. 正确
回复贴子下载标准答案
**** Hidden Message *****
页:
[1]