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

《面向对象》练习题

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

一、单项选择题

1. 类的构造函数被自动调用执行的情况是在定义该类的() A. 成员函数时 B. 数据成员时 C. 对象时 D. 友元函数时

2. 假定一个类的构造函数为“A(int i=4, int j=0) {a=i;b=j;}”, 则执行“A x (1);”语

句后,x.a和x.b的值分别为() A. 1和0

B. 1和4 C. 4和0 D. 4和1

3. 所谓多态性是指 ()

A. 不同的对象调用不同名称的函数 B. 不同的对象调用相同名称的函数 C. 一个对象调用不同名称的函数 D. 一个对象调用不同名称的对象

4. 构造函数不具备的特征是() A. 构造函数的函数名与类名相同 B. 构造函数可以重载

C. 构造函数可以设置默认参数 D. 构造函数必须指定类型说明

5. 在公有继承的情况下,基类的公有或保护成员在派生类中的访问权限() A. 受限制 B. 保持不变 C. 受保护 D. 不受保护

6. C++对C语言做了很多改进,即从面向过程变成为面向对象的主要原因是() A. 增加了一些新的运算符

B. 允许函数重载,并允许设置缺省参数 C. 规定函数说明符必须用原型 D. 引进了类和对象的概念

7. 在类中说明的成员可以使用关键字的是() A. public B. extern C. cpu

D. register

8. C++语言中所有在函数中定义的变量,连同形式参数,都属于() A. 全局变量 B. 局部变量 C. 静态变量 D. 函数

9. 在私有继承的情况下,基类成员在派生类中的访问权限() A. 受限制 B. 保持不变 C. 为共有 D. 为保护

10. 使用引用作为函数参数,下列说法正确的是() A. 实参是形参的备份 B. 实参与形参无联系 C. 形参是实参的备份 D. 实参与形参是同一对象

11. C++的继承性允许派生类继承基类的()

A. 部分特性,并允许增加新的特性或重定义基类的特性 B. 部分特性,但不允许增加新的特性或重定义基类的特性 C. 所有特性,并允许增加新的特性或重定义基类的特性 D. 所有特性,但不允许增加新的特性或重定义基类的特性

12. 以下基类中的成员函数表示纯虚函数的是() A. virtual void tt()=0 B. void tt(int)=0

C. virtual void tt(int) D. virtual void tt(int){}

二、填空题(请在每小题的空格中填上正确答案。错填、不填均无分。) 1. 抽象类中至少要有一个_纯虚__函数。 2. 编译时的多态性通过_重载__函数实现。

3. 基类的公有成员在派生类中的访问权限由_继承方式__决定。

4. 假设类X的对象x是类Y的成员对象,则“Y Obj”语句执行时,先调用类___的构造函数。 5. 下列程序段的输出结果是___。

6. C++中有两种继承:单继承和_多重继承__。

7. C++语言中如果调用函数时,需要改变实参或者返回多个值,应该采取引用___方式。 8. 将指向对象的引用作为函数的形参,形参是对象的引用,实参是 _对象名__。

三、改错题 1. class ABC

{int a; public:

ABC(int aa)a(aa){} ABC(int aa):a(aa){}; };

2.

class Aton {int X,Y; protected: int zx,zy; public:

void init(int i,int j){zx=i;zy=j;} Aton(int i,int j,int n=0,int m=0) {X=i,Y=j,zx=m,zy=n; }

添加int getX(){return X}; };

void main()

{Aton A(25,20,3,5); A.init(5,9);

cout<

3.

class Bas {public:

~Bas(){cout<<\virtual void f()=0; };

class Dev:public Bas {public:

~Dev(){cout<<\virtual void f(){cout<<\};

void main()

{Bas *a=new Bas(); Bas *a; Dev p; a=&p; a->f(); }

4. 以下程序实现交换a,b变量的值,请用下横线标出错误所在行并给出修改意见。 void swap(int &a,int &b)

{a=a+b; b=a-b; a=a-b; }

void main() {int a=19,b=15;

cout<<\swap(&a,&b); swap(a,b); cout<<\}

5.

void main() {int i(3),j(8);

int * const p=&i; int *p=&i; cout<<*p<

cout<<*p<

四、完成程序题

1. 在下面程序的底画线处填上适当的字句,使该程序执行结果为40。

class Test { public:

static int x______; Test (int i=0) {x=i+x;} int Getnum()

{return Test::x+7;} };

int Test::x=33_______; void main() {Test test;

cout<

五、程序分析题

1. 运行程序,写出程序执行的结果。

void main() {int a,b,c; char ch;

cin>>a>>ch>>b>>c;//从键盘上输入1.5×c×10×20,×表示一个空格 cout<

2. 给出下面程序输出结果。

class A {public: A()

{cout<<\virtual ~A()

{cout<<\virtual void f()

{cout<<\void g() {f();} };

class B:public A {public: B()

{f();cout<<\~B()

{cout<<\};

class C:public B {public: C()

{cout<<\~C()

{cout<<\void f()

{cout<<\};

void main() {A *a=new C; a->g(); delete a; }

As cons. As f(). Bs cons. Cs cons. Cs f(). Cs des. Bs des. As des.

六、程序设计题

1. 已知交通工具类定义如下。

要求:(1)实现这个类;(2)定义并实现一个小车类car,是它的公有派生类,小车本身的私有 属性有载人数,小车的函数有init(设置车轮数,重量和载人数),getpassenger(获取载人数 ),print(打印车轮数,重量和载人数)。 class vehicle {protected:

int wheels;//车轮数 float weight;//重量 public:

void init(int wheels,float weight); int get_wheels(); float get_weight(); void print(); };

void vehicle::init(int wheels,float weight) {this->wheels=wheels; this->weight=weight; cout<

int vehicle::get_wheels() {return wheels; }

float vehicle::get_weight() {return weight;}

void vehicle::print()

{cout<<\车轮数:\重量:\

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库《面向对象》练习题在线全文阅读。

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