2023年面向对象程序设计考前复习题及答案.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2023年面向对象程序设计考前复习题及答案.doc》由会员分享,可在线阅读,更多相关《2023年面向对象程序设计考前复习题及答案.doc(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、简答题1、传统的结构化程序设计的优点和缺陷是什么?优点:(1)这种程序设计方法力求算法描述准确。(2)对每一子过程模块容易进行程序对的性证明。缺陷:(1)这种程序设计方法本质上是面向“过程”的,而“过程”和“操作”又是不稳定和多变的,因此不能直接反映人类求解问题的思绪。(2)程序代码可重用性差。程序中除少数标准库函数外,每设计一个程序时,程序员几乎从零做起。即使重用代码,通常也是通过拷贝或编辑重新生成一份。(3)维护程序的一致性困难。该种方法将数据与对数据进行解决的程序代码分离。 2、什么是对象?每个对象都具有属性(Attribute)和方法(Method)这两方面的特性。对象的属性描述了对象
2、的状态和特性,对象的方法说明了对象的行为和功能,并且对象的属性值只应由这个对象的方法来读取和修改,两者结合在一起就构成了对象的完整描述。 3、什么是消息?在面向对象的程序设计中,由于对象描述了客观实体,它们之间的联系通过对象间的联系来反映。当一个对象需要此外一个对象提供服务时,它向对方发出一个服务请求,而收到请求的对象会响应这个请求并完毕指定的服务。这种向对象发出的服务请求就称为消息。4、什么是多态性?所谓多态性是指当程序中的其他部分发出同样的消息时,按照接受消息对象的不同可以自动执行类中相应的方法。其好处是,用户不必知道某个对象所属的类就可以执行多态行为,从而为程序设计带来更大方便。 5、什
3、么是面向对象的程序设计方法?这种方法将设计目的从模拟现实世界的行为转向了模拟现实世界中存在的对象及其各自的行为。 在OOP中,将“对象”作为系统中最基本的运营实体,整个程序即由各种不同类型的对象组成,各对象既是一个独立的实体,又可通过消息互相作用,对象中的方法决定要向哪个对象发消息、发什么消息以及收到消息时如何进行解决等。 6、面向对象方法的特点是什么?(1)OOP以“对象”或“数据”为中心。由于对象自然地反映了应用领域的模块性,因此具有相对稳定性,可以被用作一个组件去构成更复杂的应用,又由于对象一般封装的是某一实际需求的各种成分,因此,某一对象的改变对整个系统几乎没有影响。(2)引入了“类”
4、(class)的概念。类与类以层次结构组织,属于某个类的对象除具有该类所描述的特性外,还具有层次结构中该类上层所有类描述的所有性质,OOP中称这种机制为继承。(3)OOP方法的模块性与继承性,保证了新的应用程序设计可在原有对象的数据类型和功能的基础上通过重用、扩展和细化来进行,而不必从头做起或复制原有代码,这样,大大减少了重新编写新代码的工作量,同时减少了程序设计过程中犯错的也许性,达成了事半功倍的效果。 7、面向对象的程序设计方法与结构化程序设计方法的比较(1)传统的结构化程序设计方法以过程为中心构造应用程序,数据和解决数据的过程代码是分离的、互相独立的实体,设计出的程序可重用代码少,且当代
5、码量增长时维护数据和代码的一致性困难。(2)面向对象程序设计方法中,对象所具有的封装性和继承性使得代码重用成为也许,并大大减少了程序犯错的也许性。(3)面向对象方法吸取了结构化程序设计方法的优点,同时引入了新概念、新机制并建立了比传统方法更高层次的抽象。二、选择题略 三、填空题(1)类是一个支持集成的抽象数据类型,而对象是类的 【1】 。【参考答案】【1】实例(2)在C+语言的面向对象程序设计框架中, 【2】 是程序的基本组成单元。【参考答案】【2】类(3)C+语言程序的注释可以出现在程序中的任何地方,一个注释以 【3】 作为开始和结束的标记。【参考答案】 【3】/* */(4)以下程序的输出
6、结果是 【4】 。#include iostream.hvoid fun() static int a;a+=2;cout a ; void main() int cc;for(cc=1;cc4;cc+)fun();cout bc);coutd; 【参考答案】【11】 0(10)假如要把返回值为void的函数A声明为类B的友元函数,则应在类B的定义中加入的语句是 【12】 。【参考答案】【12】friend void A( );(11)假如类B继承了类A,则称类A为类B的基类,类B称为类A的 【13】 。【参考答案】【13】派生类(12)将x+y中的+运算符用友元函数重载应写为 【14】 。【
7、参考答案】【14】operator+(x,y)(13)已知程序的结果为1 2 3,请填空。#includetemplateclass A public:T x,y,z;void display()cout x y z; ;void main() Aa1;【15】【16】【17】a1.display(); 【参考答案】【15】a1.x=1 【16】a1.y=2 【17】a1.z=3(14)下列程序段的输出结果是 【18】 。cout fixed 509. endl;【参考答案】【18】509.123457四、综合应用题1. 使用VC6打开考生文献夹下的工程kt15_3。此工程包含一个kt15_3
8、.cpp,其中定义了类A、A1和A2,其中A1类由A类公有派生,A2类由A1类公有派生。上述三个类的定义并不完整,请按规定完毕下列操作,将程序补充完整。(1)定义类A的构造函数,该构造函数有一个整型的参数x,在构造函数中请将x赋值给数据成员a。请在注释“/*1*”之后添加适当的语句。(2)定义类A1的构造函数,该构造函数有两个整型参数x和y,在构造函数中请将x赋值给数据成员b,将y作为基类A构造函数的参数值传入。请在注释“/*2*”后添加适当的语句。(3)定义类A2的构造函数,该构造函数有三个整型的参数x,y和z,在构造函数中请将x赋值给数据成员c,将y和z分别赋值给基类A1构造函数的参数x和
9、y。请在注释“/*3*”之后添加适当的语句。(4)完毕类A2的成员函数show的定义,该函数调用基类成员函数,输出基类数据成员a和b及类A2自身的数据成员c的值,上述三个值在输出时以空格隔开。请在注释“/*4*”之后添加适当的语句。注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。程序输出结果如下:96962源程序文献kt15_3.cpp清单如下:#includeclassA inta; public: /*1* intgeta()returna; ;classA1:publicA intb; public: /*2* intgetb()returnb; ;classA2:publi
10、cA1 intc; public: /*3* voidshow() /*4* ;voidmain() A2a(2,6,9); couta.geta()endl; couta.getb()endl; a.show(); 【参考答案】(1)A(int x) a=x;(2)A1(int x,int y) : A(y)b=x;(3)A2(int x,int y,int z):A1(y,z)c=x;(4)coutgeta() getb() ; coutcn;五、阅读程序题(写出程序运营结果)1 .#include #include class Student public: Student(char *
11、pName=No name) cout构造新同学:pNameendl; strncpy(name, pName, sizeof(name); namesizeof(name)-1=0; Student(Student &s) cout构造copy of s.nameendl; strcpy(name, copy of ); strcat(name,s.name); Student() cout析构 nameendl; protected: char name40; ;class Tutor public: Tutor(Student &s):student(s) cout构造指导教师 n; p
12、rotected: Student student; ;void main() Student st1; Student st2(zhang); Tutor tutor(st2); 2. #include iostream.h class B1protected: int b1; public: B1(int val1) b1=val1; coutbase1 is calledendl; ;class B2 protected: int b2; public: B2(int val2) b2=val2; coutbase2 is calledendl; ;class D: public B1,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 面向 对象 程序设计 考前 复习题 答案
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内