西交《面向对象程序设计》在线作业-00002
试卷总分:100 得分:100
一、单选题 (共 30 道试题,共 60 分)
1.类中定义的成员默认为(??)访问属性。
A.public
B.private
C.protected
D.friend
2.下列程序段不会发生二义性的是_______。
A.int fun(double p){…;}
float fun(float p){…;}
int x;
x=fun(0);
B.int fun(float p){…;}
float fun(unsigned p){…;}
int x;
x=fun(0);
C.int fun(int i,int j=2){…;}
float fun(int i){…;}
cout<<fun(5);
D.int fun(int i=2,int j=2){…;}
int fun(int *p){…;}
cout<<fun(5);
3.关于基类和派生类的关系,()是错误的。
A.派生类对象属于基类;
B.可以用派生类指针指向派生类对象;
C.可以将基类对象赋值给派生类对象;
D.派生类对象指针可转换为基类指针。
4.用关键字( )标记的函数被称为虚函数。
A.virtual
B.private
C.public
D.protected
5.下列对派生类的描述中,( )是错的。
A.一个派生类可以作为另一个派生类的基类;
B.派生类至少有一个基类;
C.派生类的成员除了它自己的成员外,还包含了它的基类的成员;
D.派生类中继承的基类成员的访问权限到派生类保持不变;
6.有关析构函数的说法不正确的是_____.
A.析构函数有且只有一个
B.析构函数和构造函数一样可以有形参
C.析构函数无任何函数类型
D.析构函数的作用是在对象被撤销时收回先前分配的内存空间
7.如果类A被说明成类B的友元,则( )
A.类A的成员即类B的成员
B.类B的成员即类A的成员
C.类A的成员函数不得访问类B的成员
D.类B不一定是类A的友元
8.下列关于类的访问控制机制说法错误的是()。奥鹏作业答案请进open5.net或请联系QQ/微信:18866732
A.静态数据成员通常都定义为公有类型。
B.一个对象的私有成员对于同类的另一个对象是可见的
C.友元机制破坏了类的封装性。
D.基类的保护成员对派生类新定义的成员函数是可见的。
9.C++类体系中,不能被派生继承的有( )。
A.转换函数
B.构造函数
C.虚函数
D.静态成员函数
10.为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择( )。
A.内置函数
B.重载函数
C.递归函数
D.函数模板
11.用new运算符创建一个含有10个元素的一维整型数组的正确语句是( )。
A.int p = new int(10);
B.int p = new int[10];
C.int *p = new int [10];
D.int *p = new int(10);
12.下列程序段不会发生二义性的是( )。
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);
13.下述静态数据成员的特性中,()是错误的。
A.声明静态数据成员时前面要加修饰符static。
B.静态数据成员要在类体外进行初始化。
C.在程序中引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符。
D.静态数据成员是一个类的个别对象所共享的。
14.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字( )放在函数原型或函数头的前面。
A.in
B.inline
C.inLine
D.InLiner
15.若需要使类中的一个指针成员指向一块动态存储空间,则通常在( )函数中完成。
A.析构
B.构造
C.任一成员
D.友元
16.C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是( )。
A.增加了一些新的运算符
B.允许函数重载,并允许设置缺省参数
C.规定函数说明符必须用原型
D.引进了类和对象的概念
17.关于运算符重载,下列说法正确的是( )。
A.重载时,运算符的优先级可以改变。
B.重载时,运算符的结合性可以改变。
C.重载时,运算符的功能可以改变。
D.重载时,运算符的操作数个数可以改变。
18.用“>>”运算符从键盘输入多于一个数据时,各数据之间应使用( )符号作为分隔符。
A.空格或逗号
B.逗号或回车
C.逗号或分号
D.空格或回车
19.下列说法错误的是()。
A.在类中不能对所定义的数据成员进行初始化;
B.类的公有成员函数是类与外界的接口
C.同一个类的两个对象占用相同的内存空间;
D.类实现数据隐藏。
20.基类A中有成员函数fn1()、fn2(),在派生类B中重载了成员函数fn1()(即重新定义了fn1()),但没有重载其成员函数fn2()。如果在派生类B中调用基类A的成员函数fn1()(不是B中重载的数fn1())和fn2(),则正确的方式是( )。
A.A::fn1()和fn2();
B.fn1()和A::fn2();
C.A::fn1()和A::fn2();
D.fn1()和fn2();
21.说明内置函数的关键字是( )。
A.inline
B.virtual
C.define
D.static
22.类的析构函数的作用是( )
A.一般成员函数
B.类的初始化
C.对象的初始化
D.删除对象创建的所有对象
23.C++中声明常量的关键字是( )。
A.const
B.extern
C.public
D.enum
24.假定一个类的构造函数为 “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
25.由C++源程序文件编译而成的目标文件的缺省扩展名为()。
A.cpp
B.exe
C.obj
D.lik
26.在公用继承的情况下,基类成员在派生类中的访问权限( )
A.受限制
B.保持不变
C.受保护
D.不受保护
27.带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化_____。
A.与虚基类下面的派生类个数有关;
B.多次;
C.二次;
D.一次;
28.采用重载函数的目的是( )。
A.函数模板也是一个具体类型的函数
B.函数模板的类型参数与函数的参数是同一个概念
C.通过使用不同的类型参数,函数模板可以生成不同类型的函数定义
D.用函数模板定义的函数没有类型
29.假定变量x定义为“int x=5;”,要使rx成为x的引用(别名),rx应定义为( )。
A.int rx=x;
B.int rx=&x;
C.int *rx=&x;
D.int &rx=x;
30.使用如setfill()的操作符对数据进行格式输出时,应包含( )头文件。
A.iostream
B.fstream
C.iomanip
D.stdlib
二、判断题 (共 20 道试题,共 40 分)
31.派生类能够继承基类的析构函数。( )
32.在类的继承层次结构中,在不同的层次中不能出现名字相同、参数个数和类型都相同而功能不同的函数。( )
33.若类Y是类X的私有派生类,类Z是类Y的公用派生类,则类Z不能访问类X 的公用成员和保护成员。( )
34.析构函数不能被继承。( )
35.在设计类时一般把数据成员设置为私有的,把函数成员设置为公用的,从而实现了公用接口和私有实现的分离。( )
36.对于从基类继承的虚函数,派生类也可以不进行重定义。( )
37.友元函数说明在类体内,它是一种成员函数。( )
38.当一个成员函数被声明为虚函数后,其派生类中的具有相同参数类型和相同参数个数类型的相同类型的同名函数也是虚函数。( )
39.不可以定义抽象类的对象。( )
40.将运算符“+”函数重载为类的成员函数,交换律不适用。( )
41.在调用构造函数时不必给出实参的构造函数称为默认构造函数。一个类只能有一个默认构造函数。( )
42.打开一个二进制文件时可以同时指定它既是输入文件又是输出文件。( )
43.C++中的字符串输入输出通常指定一个字符数组作为存储空间,它只能输入输出string类数据。( )
44.变量必须先定义后赋值。( )
45.内置函数的定义必须出现在第一次调用内置函数之前。( )
46.C++只能用于面向对象程序设计,不适用于面向过程程序设计。( )
47.使用虚函数可以避免多重继承产生的二义性。( )
48.运算符重载以后,其优先级和结合性都不能改变。( )
49.构造函数可以重载。( )
50.使用字符串流时必须打开文件。( )
转载请注明:奥鹏作业之家 » 【奥鹏】22秋西交《面向对象程序设计》在线作业