面向对象程序设计模拟

上传人:平*** 文档编号:9689545 上传时间:2017-10-04 格式:DOC 页数:7 大小:121.26KB
返回 下载 相关 举报
面向对象程序设计模拟_第1页
第1页 / 共7页
面向对象程序设计模拟_第2页
第2页 / 共7页
面向对象程序设计模拟_第3页
第3页 / 共7页
面向对象程序设计模拟_第4页
第4页 / 共7页
面向对象程序设计模拟_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《面向对象程序设计模拟》由会员分享,可在线阅读,更多相关《面向对象程序设计模拟(7页珍藏版)》请在金锄头文库上搜索。

1、一、单选题(每题 1 分,共 20 分)1.在 C+中,函数签名不包括( A)A.函数的返回类型 B.函数参数的个数C.函数参数类型 D.函数的名称 2.在 C+程序中,对象之间的相互通信通过( B )?A.继承实现 B.调用成员函数实现 C.封装实现 D.函数重载实现 3.对于任意一个类,析构函数的个数最多为( B ) A.0 B.1 C.2 D.3 4.语句 ofstream f, f.open(“a.txt”)的功能是建立流对象 f,试图打开文件 a.txt 并与之连接,并且( C ) A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件 B.若文件存在,将其置为空文件

2、;若文件不存在,打开失败 C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件 D.若文件存在,打开失败;若文件不存在,建立一个新文件 5.下面说法正确的是( B ) A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方 B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 C.类的内联函数必须在类体内定义 D.类的内联函数必须在类体外通过加关键字 inline 定义 6.可以用 p.a 的形式访问派生类对象 p 的基类成员 a,其中 a 是( D ) A.私有继承的公有成员 B.公有继承的私有成员 C.公有继承的保护成员 D.公有继承的公有成员 7.

3、在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是( C ) A.派生类的对象可以赋给基类的对象 B.派生类的对象可以初始化基类的引用 C.派生类的对象可以直接访问基类中的成员 D.派生类的对象的地址可以赋给指向基类的指针 8. 虚基类的主要作用是( B )A、 简化程序 B、消除二义性 C、提高运行效率 D、减少目标代码9. 以下关于模板类叙述正确的是( C ) 。A.模板类是一个具体类型类B.模板类的类型参数是具体的数据类型C. 通过使用不同的类型参数,模板类可以生成不同类型的类D. 能用模板类直接定义的对象10. 下列( C )的调用方式是引用调用。A. 形参和实参都是变量

4、 B.形参是指针,实参是地址值C. 形参是引用,实参是变量 D.形参是变量,实参是地址值11. 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择( A ) 。A. 内联函数 B.重载函数 C.递归函数 D.函数模板12. C+中,关于下列设置函数参数默认值的描述中, ( C )是正确的。A、 不允许设置函数参数的默认值B、 设置参数默认值只能在定义函数时设置C、 设置参数默认值时,应按照从右向左的顺序设置D、 设置参数默认值时,应该全部参数都设置13. 采用重载函数的目的是(D ) 。A. 实现共享 B. 减少空间C. 提高速度 D. 使用方便,提高可读性14. 关于消息,下

5、列说法中不正确的是( B ) 。A. 发送消息的对象请求服务,接受消息的对象提供服务B. 消息的发送者必须了解消息的接收者如何相应消息C. 在 C+中,消息的发送具体体现为对接收消息的对象的某个函数的调用D. 每个对象只能接收某些特定格式的消息15.关于封装,下列说法中不正确的是( D ) 。A. 通过封装,对象的全部属性和操作结合在一起,形成一个整体B. 通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见)C. 通过封装,每个对象都成为相对独立的实体D. 通过封装,对象的属性都是不可见的16.面向对象方法的多态性是指( C ) 。A. 一个类可以派生出多个特殊类B. 一个对象在不同的运行

6、环境中可以有不同的变体C. 针对一消息,不同的对象可以以适合自身的方式加以响应D. 一个对象可以是由多个其他对象组合而成的17在 C+中,容器是一种 ( D ).A标准类 B. 标准对象 C. 标准函数 D. 标准类模板18. 下列对抽象类的描述中,正确的是( D )A.可以说明虚函数 B.可以进行构造函数重载C.可以定义友元函数 D.不能说明其对象19. 关于 this 指针的说法错误的是( D )A.this 指针的值不可改变。B当创建一个对象后,this 指针就指向该对象。C成员函数拥有 this 指针。D静态成员函数拥有 this 指针。20.下列关于运算符重载的描述中,正确的是( D

7、 ) 。A.运算符重载可以改变运算量的个数B.运算符重载可以改变优先级C.运算符重载可以改变结合规则D.运算符重载不可以改变语法结构二、写出下列程序的执行结果:(每小题 5分,共 25分)1、/构造析构函数调用次序的class samplepublic:sample();sample(int);sample();void display();private:int x;sample:sample()x=0;coutclass vehicleint wheels;float weight;public:virtual void message()coutmessage();ptr=&obj1;p

8、tr-message();ptr=&obj2;ptr-message()3、/例外和操作符重载#include using namespace std;class Matrixdouble*elem;int row,col;public:Matrix(int r , int c)row=r;col=c;elem=new doublerow*col;double & operator( ) (int x,int y)if(x=row)throw string(“Row Out of Bounds”);if(y=col)throw string(“Col Out of Bounds”);retur

9、n elemcol*x+y;matrix() deleteelem; ;void main()Matrix m(5,5);int i,j; for( i=0;iusing namespace std;class Counterprivate:static int count;char ch;public:Counter(char c)count+;ch=c;Static int RC()return count;int Counter:count=10;void main()Counter c1(1),c2(2);coutusing namespace std;int& swap(int &x

10、, int & y)x=x+y;return y;void main()int a=2,b=3;cout(new C); 8、class AC public: virtual void m(double x) /.;class DC:public AC public: virtual void m() /;void main() AC* p=new DC;p-m();9、class Point public: bool operator+( Point &, Point &);bool Point:operator(Point&s1,Point &s2) 10、templateclass me

11、nu ;menu q1;四、问答题(每题 5分,共 15分)1、现定义一个 Clock 类如下:class Clockprivate:int hour,minute,seconds;public:Clock(void);Clock(int h,int m,int s); Clock(Clock &c);void main()Clock a(9,30,0); /(1)Clock b(a);/(2)Clock c; /(3)请回答(1) 、 (2 ) 、 (3)依次调用了哪个构造函数?2、分析下面的类体系。#include using namespace std;class A public:vo

12、id f(string s) m=s;string m; class B: public A public:void f(int t)m=t;int m; B b;回答下列问题(1) 对象 b 中访问数据成员 m 是否会引起二义性?(2) 写出通过对象 b 调用 f(string s)和 f(int t)的语句。3. 请举例说明转型构造函数的作用.五、程序设计(每道题 10分,共 20分)1、定义如下类:class Opairpublic:Opair(int x,int y)p1=x;p2=y;private: int p1,p2;重载操作符= ,实现两个 Opair 对象的比较。重载操作符

13、using namespace std;class Opair;ostream& operator(ostream&, Opair&);class Opairpublic:Opair(int x,int y)p1=x;p2=y;friend ostream& operator(ostream&, Opair&);bool operator=(Opair& i);private: int p1,p2;bool Opair:operator=(Opair& i)return p1 = i.p1 & p2 = i.p2;ostream& operator(ostream& out,Opair& c)return out p1= c.p1 endl p2= c.p2;void main()Opair a(2,3),b(3,2);if(a=b)couta 与 b 相等。endl;elsecouta 与 b 不相等。endl;coutaendlbendl;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号