77范文网 - 专业文章范例文档资料分享平台

2012面向对象程序设计试题集(2)

来源:网络收集 时间:2019-04-02 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

D. 构造函数不能重载,析构函数也不能重载; 下列有关类的说法不正确的是( )。 A. 对象是类的一个实例

B. 任何一个对象只能属于一个具体的类 C. 一个类只能有一个对象

D. 类与对象的关系和数据类型与变量的关系相似 ( )的功能是对象进行初始化。

A.析构函数 B. 数据成员 C.构造函数 D.静态成员函数 关于友元的描述中,( )是错误的。 A. 友元函数是成员函数,它被说明在类体内 B. 友元函数可直接访问类中的私有成员 C. 友元函数破坏封装性,使用时尽量少用 D. 友元类中的所有成员函数都是友元函数

为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为( )。

A.public B. protected C.private D. static 下面对静态数据成员的描述中,正确的是( )。 A.静态数据成员是类的所有对象共享的数据 B.类的每一个对象都有自己的静态数据成员 C.类的不同对象有不同的静态数据成员值 D.静态数据成员不能通过类的对象调用 下列表达方式正确的是( )。

A.class P{ B. class P{ public: public: int x=15; int x;

void show(){cout<

f=25; void Seta (int x) {a=x;} 以下叙述中不正确的是( ):

A.一个类的所有对象都有各自的数据成员,它们共享函数成员; B. 在一个类中可以声明另一个类的对象作为它的数据成员; C. 类与对象的关系和数据类型与变量的关系相似; D. 一个对象可以属于多个类。

对于一个功能不太复杂,并且要求加快执行速度,选用( )合适

A.内置函数 B.重载函数 C.递归调用 D.嵌套调用

Sample是一个类,执行下面语句后,调用Sample类的构造函数的次数是 ( ) Sample a[2], *p = new Sample;

A.0 B. 1 C. 2 D.3

已知函数FA调用FB,若要把这两个函数定义在同一个文件中,则( ) A.FA必须定义在FB之前 B.FB必须定义在FA之前

C.若FA定义在FB之后,则FA的原型必须出现在FB的定义之前 D.若FB定义在FA之后,则FB的原型必须出现在FA的定义之前

下列有关运算符函数的描述中,错误的是( ) A.运算符函数的名称总是以operator为前缀 B.运算符函数的参数可以是对象

C.运算符函数只能定义为类的成员函数

D.在表达式中使用重载的运算符相当于调用运算符重载函数 下面描述中,正确的是( )。 A.virtual可以用来声明虚函数

B.含有纯虚函数的类是不可以用来创建对象的,因为它是虚基类 C.既使基类的构造函数没有参数,派生类也必须建立构造函数 D.静态数据成员可以通过成员初始化列表来初始化

下列对基类和派生类关系的描述中,错误的是( )。 A.派生类是基类的具体化 B.派生类是基类的子集 C.派生类是基类定义的延续 D.基类是派生类的抽象

C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是( )。 A.增加了一些新的运算符 B.允许函数重载,并允许设置缺省参数 C.规定函数说明符必须用原型 D.引进了类和对象的概念 下列表示引用的方法中,( )是正确的。 已知:int k=1000;

A.int &x=k; B.char &y; C.int &z=1000; D.float &t=&k; 下面对于友元函数描述正确的是( )。

A.友元函数的实现必须在类的内部定义 B.友元函数是类的成员函数

C.友元函数破坏了类的封装性和隐藏性 D.友元函数不能访问类的私有成员 假定AB为一个类,则执行“AB a(4) , b[3] , * p[2] ;”语句时,自动调用该类构造函数的次数为( )。

A.3 B.4 C.6 D.9

以下不属于构造函数特征的是( )

A. 构造函数名与类名相同 B. 构造函数可以重载

C. 构造函数可以设置默认参数 D. 构造函数必须指定函数类型 下列定义中,X是一个类, ( )是定义指向对象数组的指针p。 A.X *p[4] B.X (*p)[4] C.( X*) p[4] D.X *p[] 假定X为一个类,则该类的复制构造函数的声明语句为( )。 A.My Class(My Class x) B.My Class&(My Class x) C.My Class(My Class &x) D.My Class(My Class *x) 以下正确的说法是( )。

A.实参和其对应的形参各占用独立的存储单元。 B.实参和其对应的形参共占用一个存储单元。

C.只有当实参和与其对应的形参同名时才共占用存储单元。 D.形参是虚拟的,不占用存储单元。

下列关于多态性的描述,错误的是( )。

A.C++语言的多态性分为编译时的多态性和运行时的多态性 B.编译时的多态性可通过函数重载实现 C.运行时的多态性可通过模板实现

D.实现运行时多态性的机制称为动态绑定

对C++编译器区分重载函数无任何意义的信息是( ) A.参数类型 B.参数个数 C.返回值类型 D..参数顺序

关于new运算符的下列描述中,( )是错误的。 A.它可以用来动态创建对象和对象数组

B.使用它创建对象或对象数组,可以使用运算符DELETE删除 C.使用它创建对象时要调用构造函数

D.使用它调用对象数组时不 许指 定初始值

如果一个类至少有一个纯虚函数,那么就称该类为( )。

A.抽象类 B.派生类 C.纯基类 D.以上都不对 有如下程序:

#include using namespace std; class A{ public:

virtual void f() {cout<<1;} void g() {cout<<2;} }; class B: public A{

public: virtual void f() {cout<<3;} void g() {cout<<4;} };

void show(A &a) {a.f(); a.g();} int main() {

B b; show(b); return 0; } 运行时的输出结果是( ) A.12 B.34 C.14 D.32

下列虚基类的声明中,正确的是( )

A. class virtual B:public A B. virtual class B:public A C. class B:public A virtual D. class B: virtual public A 派生类的对象对它的基类成员中( )是可以访问的。 A.公有继承的公有成员 B.公有继承的私有成员 C.公有继承的保护成员 D.私有继承的公有成员 已知数组arr的定义如下: int arr[5] = {1,2,3,4,5};

下列语句中输出结果不是2的是( )

A.cout << *arr+1 <

#include using namespace std; class A{ public:

virtual void f() {cout<<1;} void g() {cout<<2;} };

class B: public A{

public: virtual void f() {cout<<3;} void g() {cout<<4;} };

void show(A &a) {a.f(); a.g();} int main() { B b; show(b); return 0; }

运行时的输出结果是( )

A.12 B.34 C.14 D.32 有如下程序段: int i=4; int j=1; int main() { int i=8,j=i;

cout<

运行时的输出结果是( )

A.44 B.41 C.88 D.81

下列情况中,不会调用拷贝构造函数的是( )。 A.用一个对象去初始化同一类的另一个新对象时 B.将类的一个对象赋予该类的另一个对象时

C.函数的形参是类的对象,调用函数进行形参和实参结合时 D.函数的返回值是类的对象,函数执行返回调用时 下面对静态数据成员的描述中,正确的是( )。

A.静态数据成员是类的所有对象共享的数据 B.类的每一个对象都有自己的静态数据成员 C.类的不同对象有不同的静态数据成员值 D.静态数据成员不能通过类的对象调用

下面的函数调用

fun(a+b,3,max(n-1)*b)

则fun 的实参个数是( )。 A.3 B.4 C.5 D.6 已知函数fun的原型为 int fun(int ,int ,int)

下列重载函数原型中错误的是( )

A.char fun(int,int); B.double fun(int,int,double); C.int fun(int,char *); D.float fun(int,int,int); 下面描述中,正确的是( )。 A.virtual可以用来声明虚函数

B.含有纯虚函数的类是不可以用来创建对象的,因为它是虚基类 C.即使基类的构造函数没有参数,派生类也必须建立构造函数 D.静态数据成员可以通过成员初始化列表来初始化 有如下类定义: class MyBase{ int k; public:

MyBase(int n=0):k(n){} int value()const{return k;} };

class MyDerived: MyBase{ int j; public:

MyDerived(int i): j(i){} int getK()const {return k;} int gutj()const{return j;} };

编译时发现有一处语法错误,对这个错误最佳准确的描述是( ) A.在类MyDerived 的定义中,基类名MyBase 前缺少关键字public、protected 或private B.函数getK 试图访问基类的私有成员变量k C.类MyDerived 缺少一个无参的构造函数

D.类MyDerived 的构造的数没有对基数数据成员k 进行初始化 关于多继承二义性的描述,( )是错误的。

A.派生类的多个基类中存在同名成员时,派生类对这个成员访问可能出现二义性 B.派生类和它的基类中出现同名函数时,将可能出现二义性 C.一个派生类是从具有共同的间接基类的两个基类派生来的,派生类对该公共基类的访问可能出现二义性

D.解决二义性最常用的方法是作用域运算符对成员进行限定 有如下的运算重载函数定义:

double operator+(int i, int k){return double(i+k);}

但定义有错误,对这个错误的最准确的描述是( )。

A.+只能作为成员函数重载,而这里的+是作为非成员函数重载的

B.两个int 型参数的和应该是int 型,而这里将+的返回类型声明为double C.没有将运算符重载函数声明为某个类的友元

D.C++已经提供了求两个int 型数据之和运算符+,不能再定义同样的运算符

关于友元的描述中,( )是错误的。

A.友元函数是成员函数,它被说明在类体内 B.友元函数可直接访问类中的私有成员 C.友元函数破坏封装性,使用时尽量少用 D.友元类中的所有成员函数都是友元函数 class Parents{

public: int publicData; private: int privateData;};

class ChildA: public Parents{/*类体略*/}; class ChildB: private Parents{/*类体略*/}; ChildA a; ChildB b;

下面语句中正确的是:( )

A. cout<

C.返回值类型 D.常成员函数关键字const 下面的程序段的运行结果为( ) char str[] = \cout << *(p+2) << endl;

A)98 B)无输出结果 C)字符’b’的地址 D)字符’b’ 已知表达式++a中的“++”是作为成员函数重载的运算符,则与++a等效的运算符函数调用形式为( ) A.a.operator++(1) B.operator++(a) C.operator++(a,1) D.a.operator++()

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库2012面向对象程序设计试题集(2)在线全文阅读。

2012面向对象程序设计试题集(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/566462.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: