西安交通大学18年3月课程考试《面向对象程序设计》作业考核试题(满分答案
西安交通大学18年3月课程考试《面向对象程序设计》作业考核试题-0001
试卷总分:100 得分:0
一、 单选题 (共 30 道试题,共 60 分)
1.在一个类的定义中,包含有( )成员的定义。
A.数据
B.函数
C.数据和函数
D.数据或函数
正确答案:----
2.采用重载函数的目的是( )。
A.函数模板也是一个具体类型的函数
B.函数模板的类型参数与函数的参数是同一个概念
C.通过使用不同的类型参数,函数模板可以生成不同类型的函数定义
D.用函数模板定义的函数没有类型
专业答案:----
3.关于getline()函数的下列描述中,错误的是( )。
A.该函数中所使用的终止符只能是换行符
B.该函数读取字符串时,遇到终止符时便停止
C.该函数读取的字符串长度是受限制的
D.该函数可以用来从键盘上读取字符串
专业答案:----
4.设置虚基类的目的是()。
A.简化程序
B.消除二义性
C.提高运行效率
D.减少目标代码
正确选项:----
正确答案:----
5.假定AB为一个类,则执行“AB*p=new AB(1,2);”语句时共调用该类构造函数的次数为( )。
正确答案:----
A.0
B.1
C.2
D.3
专业答案:----
6.下列说法错误的是_____。
A.在类中不能对所定义的数据成员进行初始化;
B.类的公有成员函数是类与外界的接口;
C.同一个类的两个对象占用相同的内存空间;
D.类实现数据隐藏。
专业答案:----
7.下面关于引用的说法错误的是( )。
A.引用是被引用对象的别名
B.对引用的修改就是对被引用对象的修改,反之亦然
C.引用不一定立即初始化
D.引用不能建立数组
专业答案:----
8.对于动态分配内存空间描述正确的是( )。
A.使用new运算符分配的内存空间的长度必须是常量
B.delete运算符可以释放动态的存储空间和静态的存储空间
正确答案:----
C.用new分配的内存空间是不连续的
D.delete运算符只能以释放由new分配的动态存储空间
正确答案:----
9.构造函数不具备的特征是( )。
A.构造函数的函数名与类名相同
B.构造函数可以重载
C.构造函数可以设置默认参数
D.构造函数必须指定类型说明
正确答案:----
10.下列关于运算符重载的描述中,______是正确的。
A.运算符重载可以改变运算数的个数;
B.运算符重载可以改变优先级;
C.运算符重载可以改变结合性;
D.运算符重载不可以改变语法结构。
正确答案:----
11.如果一个类至少有一个纯虚函数,那么就称该类为_____。
A.抽象类
B.虚基类
C.派生类
D.以上都不对
正确答案:----
12.类的析构函数的作用是( )。
A.一般成员函数
B.类的初始化
C.对象的初始化
D.对象释放后的操作
正确选项:----
13.下列函数中,_____不能重载。
A.一般的成员函数
B.一般的非成员函数
C.析构函数
D.构造函数
正确答案:----
14.下面的类中,( )不是由抽象基类ios直接派生出来的。
A.istream
B.ostream
C.iostream
D.fstreambase
正确答案:----
15.下面概念不正确的选项是( )
A.构造函数的名字必须与类名相同
B.析构函数和构造函数都不能有返回参数
C.析构函数可以被重载
D.析构函数可以成为虚拟函数
专业答案:----
16.关于静态成员,正确的说法是()。
A.静态成员函数可以直接访问该类中的非静态成员
B.非静态成员函数不能直接访问该类中的静态成员
C.静态数据成员同其它数据成员一样通过构造函数进行初始化
D.静态成员在任何对象创建之前就已经创建
正确答案:----
17.为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择( )。
A.内置函数
B.重载函数
C.递归函数
D.函数模板
正确答案:----
18.下面是四条顺序出现的声明语句,非法的初始化语句是()。
A.int i = –1;
正确答案:----
B.const int ic=i;
C.const int *pc=⁣
D.int *const cpi=⁣
正确答案:----
19.以下关于函数模板的论述中,正确的是()。
A.一旦定义了函数模板,就不能再定义同名的重载函数
B.从同一个函数模板实例化后得到的多个模板函数属于函数重载;
C.函数模板中只有一种参数;
D.在定义函数模板时,template语句与函数模板定义语句之间可以有别的语句。
专业答案:----
20.下列关于运算符重载的描述中,错误的是( )。
A.运算符重载不可以改变操作数的个数
B.运算符重载不可以改变运算符的功能
C.运算符重载不可以改变结合方向
D.运算符重载不可以改变运算优先级
正确选项:----
21.下列关于成员函数特征的描述中,( )是错误的。
A.成员函数一定是内置函数
B.成员函数可以重载
C.成员函数可以设置参数的默认值
D.成员函数可以是静态的
正确答案:----
22.在关键字public后面定义的成员为类的( )成员。
A.私有
B.公用
C.保护
D.任何
正确选项:----
专业答案:----
23.假定一个二维数组的定义语句为“ int a [3][4]={{3,4),{2,8,6));”,则元素a[1][2] 的值为( )。
正确选项:----
A.2
B.4
C.6
D.8
专业答案:----
24.若一个类中含有纯虚函数,则该类称为( )。
A.基类
B.虚基类
C.抽象类
D.派生类
正确选项:----
25.关于继承中出现的二义性的描述中,______是错误的。
A.一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性;
B.解决二义性的最常用的方法是对成员名的限定法;
C.在单继承情况下,派生类中对基类成员的访问也会出现二义性;
D.一个派生类是从两个基类派生出来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,也可能出现二义性;
专业答案:----
26.实现运行时的多态性要使用( )。
A.重载函数
B.析构函数
C.构造函数
D.虚函数
专业答案:----
27.设置虚基类的目的是( )
A.简化程序
B.消除二义性
C.提高运行效率
D.减少目标代码
28.在类作用域中能够通过直接使用该类的( )成员名进行访问。
A.私有
B.公用
C.保护
D.任何
29.关于构造函数,下列说法不正确的是( )。
A.构造函数名字和类名相同
B.构造函数在创建对象时自动执行
C.构造函数无任何函数返回类型
D.构造函数有且只有一个
专业答案:----
30.假设已经定义好了一个类student,现在要定义类derived,它是从student私有派生的,定义类derived的正确写法是( )。
专业答案:----
A.“class derived::student prived {// …} ;”
专业答案:----
B.“class derived:student public {// …} ;”
正确选项:----
C.“class derived:private student{// …} ;”
正确答案:----
D.“class derived::student public stuednt {// …} ;”
正确选项:----
西安交通大学18年3月课程考试《面向对象程序设计》作业考核试题(多选题答案
二、 判断题 (共 20 道试题,共 40 分)
1.C++只能用于面向对象程序设计,不适用于面向过程程序设计。( )
A.错误
B.正确
2.将运算符“+”函数重载为类的成员函数,交换律不适用。( )
专业答案:----
A.错误
B.正确
3.友元函数说明在类体内,它是一种成员函数。( )
A.错误
B.正确
4.引用和指针都可作函数参数。( )
A.错误
B.正确
5.析构函数必须指定返回类型以及函数参数。( )
A.错误
B.正确
6.在类的继承层次结构中,在不同的层次中不能出现名字相同、参数个数和类型都相同而功能不同的函数。( )
A.错误
B.正确
7.使用new运算符创建数组时,可以为该数组指定初始值( )。
A.错误
B.正确
8.在用class定义一个类时,如果不加声明,数据成员和成员函数默认的访问权限是public。( )
A.错误
B.正确
9.不可以定义抽象类的对象。( )
A.错误
B.正确
10.构造函数可以重载。( )
A.错误
B.正确
11.使用字符串流时必须打开文件。( )
A.错误
B.正确
12.私有继承的派生类不能访问基类中的私有成员,但公用继承的派生类可以访问基类中的私有成员。( )
A.错误
B.正确
13.在声明派生类时,派生类把基类的的构造函数也一起继承过来。( )
A.错误
B.正确
14.在调用构造函数时不必给出实参的构造函数称为默认构造函数。一个类只能有一个默认构造函数。( )
A.错误
B.正确
15.不能通过派生类对象引用从私有基类继承过来的任何成员。( )
A.错误
B.正确
16.友元类必须被说明为公用成员。( )
A.错误
B.正确
17.变量必须先定义后赋值。( )
A.错误
B.正确
18.若类Y是类X的私有派生类,类Z是类Y的公用派生类,则类Z不能访问类X 的公用成员和保护成员。( )
A.错误
B.正确
19.字符串"sdfgh"的长度是5。( )
正确选项:----
A.错误
B.正确
20.在设计类时一般把数据成员设置为私有的,把函数成员设置为公用的,从而实现了公用接口和私有实现的分离。( )
A.错误
B.正确
西安交通大学18年3月课程考试《面向对象程序设计》作业考核试题(历年参考题目如下: