ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:27.51KB ,
资源ID:425974      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/425974.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(面向对象程序设计习题.docx)为本站会员(b****0)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

面向对象程序设计习题.docx

1、面向对象程序设计习题1面向对象程序设计中的数据隐藏指的是参考答案为:DA输入数据必须输入XX口令B数据经过加密处理C. 对象内部数据构造上建有防火墙D对象内部数据构造的不可访问性解析输入数据必须输入XX口令和数据经过加密处理都不是面向对象程序设计的特征;对象内部数据构造上也不可能建有防火墙,所以它们都不是面向对象程序设计中所指的数据隐藏。面向对象程序设计系统中的封装单位是对象,对象之间只能通过接口进展信息交流,外部不能对对象中的数据随意地进展访问,这就造成了对象内部数据构造的不可访问性,也使得数据被隐藏在对象中。这就是面向对象程序设计中的数据隐藏所指。2以下各项中符合函数重载必须满足的条件的是

2、参考答案为:DA 必须有不同的参数个数B对应的参数类型必须不一样C. A和B必须同时满足DA和B只要满足一个即可解析我们知道,在同一个作用域中,要实现函数重载必须满足的条件的是: 有不同的参数个数;或者 对应的参数有不一样的数据类型,即和中只要有一个满足就可以了。当然两者都满足更好,但这不是必须的。3以下带缺省值参数的函数说明中,正确的说明是参考答案为:AAint Fun(int x,int y=2,int z=3);Bint Fun(int x=1,int y,int z=3);C. int Fun(int x,int y=2,int z);Dint Fun(int x=1,int y,in

3、t z=3);解析在带缺省值参数的函数说明中,正确的说明应该是无缺省值的参数依次排列在参数表的左边,排完无缺省值的参数后,再依次排列带缺省值的参数。从所给出的四个选项来看,只有“int Fun(int x,int y=2,int z=3)符合这条规定,其它的都不符合。4有如下的对类“CSample的说明,其中 是错误的。 class CSample 参考答案为:AAint a=23;BCSample();public:CCSample(int val);D CSample();解析在上面对类“CSample说明中,“CSample()和“CSample(int val)是该类重载的构造函数、“

4、 CSample()是该类的析构函数,这三个语句都是正确的。错误的语句是“int a=23”,因为它违反了在类的声明不管是引用性声明,还是定义性声明中都不能以赋值表达式的形式给它的数据成员进展初始化。5类A中的一个成员函数的说明如下:void Set(A &a);那么该函数的参数“A &a的含义是参考答案为:CA指向A的指针为aB将变量a的地址赋给类AC类A对象引用a用作函数的形参D变量A与a按位与后作函数参数解析因为A是一个类,所以“A &a表示a是类A的对象,但因为对象a的前缀了符号“&,那么“&a表示是类A的对象引用。所以“A &a的含义是类A对象引用a用作函数的形参。6假设类A和类B的

5、定义如下:class A public:int i,j;void get();class B:A int i,j;protected:int k;public: void make();void B:make() k=i*j; 那么其中是非法的表达式。参考答案为:DAvoid get();Bint k;Cvoid make();Dk=i*j;解析对于给定的四项中,前三项都是正确的,只有第四项是错误的。因为,类B是类A的私有派生类缺省访问类型,所以A中的公类型的数据成员在类B中成为了私有数据成员,但函数“void B:make()既然是类B的成员函数,那么既可访问类A中的公有数据成员,也能访问类

6、B中的私有数据成员,那么表达式“k=i*j;造成了访问的二义性,即其中的i和j,到底是取自类A呢?还是取自类B呢?7下面的主程序中,语句 是错误的。class A int i;public:virtual void fun()=0;A(int a) i=a; ;class B int j;public:void fun() coutsalary;Cx=worker.salary; 其中worker为具有类类型的对象DLocation &rA=A1;int x=rAGetX(); Location为已定义的类,A1为对象解析因pointer为指向类对象的指针,所以“pointer-salary是

7、正确的访问数据成员的形式;因worker为具有类类型的对象,所以“worker.salary也是正确的访问数据成员的形式;因Location为已定义的类,A1为对象,所以“Location &rA=A1;int x=rAGetX();表示以对象A1初始化对象引用rA,然后由对象引用rA调用成员函数GetX()给变量x赋值,这样的访问成员函数的形式也是正确的;“*pointer.salary;中,因为运算符.的优先级高于运算符*的优先级,所以相当于“*pointer.salary;,那正确的形式应该是“*pointersalary;。故“*pointer.salary是不正确的访问。11C+ 对

8、 C 语言作了很多改良,即从面向过程变成为面向对象的主要原因是 ( )DA.增加了一些新的运算符 B. 允许函数重载,并允许设置缺省参数C. 规定函数说明符必须用原型 D. 引进了类和对象的概念12以下符号不能组成标识符的是 (A ) A. 连接符 B. 下划线 C. 大小写字母 D. 数字字符13类型修饰符 unsigned 不能修饰 (D ) A. char B. int C. long int D. float 14在 int a=3,int *p=&a ;中, *p 的值是 ( D) A. 变量 a 的地址值 B. 无意义 C. 变量 p 的地址值 D.3 15以下关于指针的操作中,错

9、误的选项是 (D ) A. 两个同类型的指针可以进展比拟运算 B. 可以用一个空指针赋给某个指针 C. 一个指针可以加上两个整数之差 D. 两个同类型的指针可以相加二,填空题不写解答过程,将正确的答案写在每题的空格内。错填或不填均无分。1面向对象程序设计中的多态性包括静态多态性和动态多态性,前者由_机制支持,而后者那么由_机制支持。答:函数重载、虚函数解析静态多态性又称编译时多态性,调用何函数应该在编译之前就知道了,所以必须由函数重载机制来支持。动态多态性又称运行时多态性,调用何函数只有在运行时才知道,所以由虚函数与指针或引用机制来支持。2由char const *str=stucture;所

10、以定义的指针称为_,关键字const 所修饰的是_。答:指向常量的指针、指针所指的字符串解析根据由*在修饰符“const中位置的不同,它所修饰的对象也不同,“const 表示所修饰的是指针所指的常量,该指针称为指向常量的指针;“* const表示所修饰的是指针本身,该指针称为常指针;“* const *那么表示所修饰的是指针本身和指针所指常量,该指针称为指向常量的常指针。3引入虚基类的目的是为了解决多重继承中的_和_问题。答:二义性、多占用空间解析在允许多重继承时可能出现两个问题,第一个是公有派生类中的成员通过不同基类调用它们上一级公共基类的同一成员,这就产生了调用的二义性;每一个基类都为它们

11、的上一级公共基类存有备份,这就引起了公共基类的重复存储,也就多占了存储空间。引入虚基类的目的是为了解决多重继承中的这两个问题。4构造函数与析构函数所调用的虚函数是_的函数,因此调用时实现的是_联编。答:所在类、静态解析在生成派生类的对象时,先调用基类的构造函数生成基类对象,再调用派生类的构造函数来生成派生类对象。所以当在构造函数中调用虚函数时,当调用基类的构造函数时,此时派生类还未生成,所以它只能调用自己的虚函数;调用派生类构造函数时,它也只能调用自己的虚函数,因为虚函数的调用是不能由派生类调用基类的。在析构派生类对象是时,先调用派生类的析构函数析构掉派生类对象,再调用基类的析构函数来析够掉基类的对象。所以当在析够构函数中调用虚函数时,派生类的析构函数调用的是它自己的虚函数原因同构造函数,基类的析构函数调用的也是它自己的虚函数,因为此时派生类对象以已被析构掉了。由上可见,当构造函数与析够函数调用虚函数时,它们调用的都是自己类的函数,因此调用时实现的是静态联编。7说明一个const成员函数又称常量成员函数的方法是,将const写在_之间,而且它修饰的是_。答:函数头与函数体、this指针解析为了说明一个常量成员函数的方法是,将const写在函数头的右圆括号与函数体的左花括号之间,而

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1