西交《面向对象程序设计》在线作业
试卷总分:100 得分:100
一、单选题 (共 30 道试题,共 60 分)
1.函数重载是指( )。
A.两个或两个以上的函数取相同的函数名,但形参的个数或类型不同
B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同
C.两个以上的函数名字不同,但形参的个数或类型相同
D.两个以上的函数取相同的函数名,并且函数的返回类型相同
2.下列程序段不会发生二义性的是( )。
A.intfun(doublep){…;}
B.intfun(floatp){…;} floatfun(floatp){…;}floatfun(unsignedp){…;} intx;intx; x=fun(0);x=fun(0);
C.intfun(inti,intj=2){…;}
D.intfun(inti=2,intj=2){…;} floatfun(inti){…;}intfun(int*p){…;} cout<<fun(5);cout<<fun(5);
3.下列说法错误的是()。
A.在类中不能对所定义的数据成员进行初始化;
B.类的公有成员函数是类与外界的接口
C.同一个类的两个对象占用相同的内存空间;
D.类实现数据隐藏。
4.假定一个类的构造函数为 “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
5.由C++源程序文件编译而成的目标文件的缺省扩展名为()。
A.cpp
B.exe
C.obj
D.lik
6.假定AB为一个类,则执行“AB*p=new AB(1,2);”语句时共调用该类构造函数的次数为( )。
A.0
B.1
C.2
D.3
7.下面的类中,( )不是由抽象基类ios直接派生出来的。
A.istream
B.ostream
C.iostream
D.fstreambase
8.能够释放对象所占资源的是( )。
A.析构函数
B.数据成员
C.构造函数
D.静态成员函数
9.派生类的构造函数的成员初始化列表中,不能包含()。
A.基类的构造函数;
B.派生类中子对象的初始化;
C.基类的子对象初始化;
D.派生类中一般数据成员的初始化;
10.如果表达式a+b中的“+”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为( )。
A.operator+(b)
B.operator+(a)
C.operator+(a,b)
D.operator(a+b)
11.在关键字private后面定义的成员为类的( )成员。
A.私有
B.公用
C.保护
D.任何
12.下面是四条顺序出现的声明语句,非法的初始化语句是()。
A.int i = –1;
B.const int ic=i;
C.const int *pc=⁣
D.int *const cpi=⁣
13.一个类的析构函数通常被定义为该类的()成员。
A.私有
B.保护
C.公用
D.友元
14.关于运行时多态的下列描述中,()是错误的。
A.运行时多态是以虚函数为基础的;
B.运行时多态是在运行时确定所调用的函数代码的;
C.用基类指针或引用所标识的派生类对象来操作虚函数才能实现运行时多态;
D.运行时多态是在编译时确定操作函数的。
鹏作业答案请进open5.net或请联系QQ/微信:18866732
15.下列关于类的访问控制机制说法错误的是()。
A.静态数据成员通常都定义为公有类型。
B.一个对象的私有成员对于同类的另一个对象是可见的
C.友元机制破坏了类的封装性。
D.基类的保护成员对派生类新定义的成员函数是可见的。
16.C++的继承性允许派生类继承基类的( )。
A.部分特性,并允许增加新的特性或重定义基类的特性
B.部分特性,但不允许增加新的特性或重定义基类的特性
C.所有特性,并允许增加新的特性或重定义基类的特性
D.所有特性,但不允许增加新的特性或重定义基类的特性
17.面向对象软件开发中使用的OOA表示( )。
A.面向对象分析
B.面向对象设计
C.面向对象语言
D.面向对象方法
18.构造函数不具备的特征是( )。
A.构造函数的函数名与类名相同
B.构造函数可以重载
C.构造函数可以设置默认参数
D.构造函数必须指定类型说明
19.设置虚基类的目的是( )。
A.简化程序;
B.消除二义性;
C.提高运行效率;
D.减少目标代码;
20.使用如setfill()的操作符对数据进行格式输出时,应包含( )头文件。
A.iostream
B.fstream
C.iomanip
D.stdlib
21.若需要使类中的一个指针成员指向一块动态存储空间,则通常在( )函数中完成。
A.析构
B.构造
C.任一成员
D.友元
22.下列关于私有继承的说法中正确的是()。
A.基类成员对派生类新定义的成员函数是不可见的;
B.基类成员对派生类新定义的成员函数是可见的;
C.只有基类成员中的公有成员对派生类新定义的成员函数是可见的;
D.基类成员中的保护成员对派生类新定义的成员函数是可见的。
23.继承机制的作用是( )。
A.信息隐藏
B.数据封装
C.定义新类
D.数据抽象
24.假定AB为一个类,则执行AB x;语句时将自动调用该类的( )
A.有参构造函数
B.无参构造函数
C.拷贝构造函数
D.赋值构造函数
25.派生类可以访问其基类的( )。
A.公用成员
B.保护成员
C.私有派生
D.公用和保护成员
26.下列说法不正确的是( )。
A.在类中,成员的默认访问特性是私有的。
B.类封装了数据和操作。
C.类实质上是一种数据类型。
D.在类的定义中,必须包含private、public
E.protected三种存取方式对应得部分。
27.关于new运算符的下列描述中,_____是错误的。
A.他可以用来动态创建对象和对象数组
B.使用它创建的对象或对象数组,可以使用运算符delete删除
C.使用它创建对象时要调用构造函数
D.使用它创建对象数组时必须指定初始值
28.对于类模板,其类型形参可以作为______。
A.成员函数的形参类型
B.成员函数的返回类型
C.数据成员的类型
D.其他三种均可
29.在公有继承的情况下,基类成员在派生类中的访问权限( )
A.受限制
B.保持不变
C.受保护
D.不受保护
30.在公用继承的情况下,基类成员在派生类中的访问权限( )
A.受限制
B.保持不变
C.受保护
D.不受保护
二、判断题 (共 20 道试题,共 40 分)
31.析构函数必须指定返回类型以及函数参数。( )
32.对于从基类继承的虚函数,派生类也可以不进行重定义。( )
33.引用可以不初始化。( )
34.C++只能用于面向对象程序设计,不适用于面向过程程序设计。( )
35.纯虚函数是在基类中说明的虚函数,它在该基类中必须定义具体的操作内容。( )
36.将运算符“+”函数重载为类的成员函数,交换律不适用。( )
37.字符串”sdfgh”的长度是5。( )
38.在类的继承层次结构中,在不同的层次中不能出现名字相同、参数个数和类型都相同而功能不同的函数。( )
39.C++语言支持封装性和继承性,不支持多态性。( )。
40.在C++中,在文件中只能用“#include <iostream>包含头文件iostream,而不能用“#include <iostream.h>包含头文件iostream。( )
41.变量必须先定义后赋值。( )
42.引用和指针都可作函数参数。( )
43.使用虚函数可以避免多重继承产生的二义性。( )
44.关系运算符可以用来比较两个字符的大小,也可用来比较两个字符串的大小。( )
45.若类Y是类X的私有派生类,类Z是类Y的公用派生类,则类Z不能访问类X 的公用成员和保护成员。( )
46.成员函数中调用的虚函数可能实现动态联编。( )
47.运算符重载以后,其优先级和结合性都不能改变。( )
48.派生类能够继承基类的析构函数。( )
49.抽象类中只能有一个纯虚函数。( )
50.程序运行过程出现异常是由于语法错误引起的。( )
转载请注明:奥鹏作业之家 » 【奥鹏】21秋西交《面向对象程序设计》在线作业