已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
习题11-1 面向对象程序设计与面向过程程序设计相比有什么优点?答:优点有:(1)写程序不再是从计算机的角度考虑问题,而是站在人类思维的角度;(2)程序的可拓展性比其他不是面向对象的好;(3)能最大限度波爱护已有程序的代码。1-2 简述C+语言程序的特点。答:C+语言是在C语言的基础上发展而来,但它比C语言更容易学习和掌握,它与C的最大区别是把函数放进了结构中,并引入了新的关键词类。C+完美的体现了面向对象的各种特性。1-3 C+与C语言的关系如何?它们的本质区别是什么?答:C+语言是基于C语言的基础上发展起来的。它们的关系十分密切,很多语句之间是通用的。它们的本质区别是C语言是面向过程的编程语言,而C+是面向对象的编程语言。1-3 组件编程有什么优点?答:组件编程的优点是它把对象技术应用于系统设计,对面向对象的程序设计的实现过程做了进一步抽象。它强调真正的软件可重用性和高度的互操作性。习题22-1 结构与联合有何区别?答:联合是有别于以前任何一种数据类型的特殊数据类型,它是多个成员的一个组合体,但与结构体不同,联合体的成员被分配在同一段内存空间中,它们的开始地址相同,使得同一段内存由不同的变量共享。2-2 struct和class区别是什么?答:C+中,struct和class基本是一直的,唯一不同在于,struct中缺省权限public,class缺省权限private,即在struct和class没有写public时,struct默认为public,class默认为private。2-3 什么是内联函数?内联函数的优点是什么?答:C+提供一种提高效率的方法,即变异时将调用函数的代码直接嵌入到主函数中,而不是将流程转出去,这种嵌入到主函数的函数叫内联函数。使用内联函数可以节省运行时间,提高函数的执行效率。2-4 什么是函数重载?编译系统如何区别同名函数的不同版本?答:C+允许用同一函数名定义多个函数,这函数的参数个数和参数类型不同,这就是函数的重载。在编译时,编译系统会根据同名函数的参数不同等对名字做处理。2-5 什么是“引用”?申明和使用“引用”要注意哪些?答;引用就是某一变量的一个别名,对引用的操作与对变量直接操作是完全一样。申明和使用引用要注意:(1)不同有NULL引用,引用必须与合法的存储单元关联;(2)引用被创建的同时,必须初始化;(3)一旦引用被初始化,就不能改变引用关系,但指定对象其内容可以改变。27 简述C+函数3种调用的方式实现机制,特点及其实参,形参格式。答:在C+中,有按值传递,地址传递,引用传递3种的函数调用方式,按值传递的过程为:首先计算出实参表达式值,给对应的形参变量分配一个存储空间,该空间大小等于形参类型,然后把求出的实参的值一一存入形参变量的存储空间中,成为形参变量的初值。种种传递是把实参表达式的值传递给对应的形参变量,使用这种方式,调用函数不对实参进行操作。而抵制传世是如果函数定义时将形参说明成指针,对这样的函数进行调用时需要指定地址形式的实参。2-8 写出下面程序的输出Union int i; char x2;a;Void main(0 a.x0=10;a. x1=1;printf(“%d”,a.i);答:输出是 2662-10 写出下面程序的输出struct A char t:4; Char k:4; Unsigned short i:8; Unsigned long m;Main(0 struct A a;a.t=b; printf(“%x”,a.t);答:输出是 2习题33-1 New delete与malloc free的联系与区别是什么?答;在程序开发中的内存的动态分配与管理是一个让开发者头痛的问题,在C中,一般通过malloc和free来进行内存分配和回收,而在C+中,new和delete已经完全包含malloc和free的功能,并且更为强大。它们的区别是malloc和free是库函数而不是运算符,不在编译器控制权限之内,而new和delete是运算符。New出来的指针式直接带类型信息,而malloc返回是void指针。3-2 描述内存分配以及它们的区别。答:内存分配的“堆”和“栈”。主要区别是:(1)管理方式和碎片问题:对于栈来说,由编译器自动管理;对于堆来说,释放工作由程序员控制,容易产生内存碎片。(2)分配效率:栈的效率要比堆的高得多;(3):增长方式不同:栈内存是从高地址到低地址增长,而堆是相反的;(4)空间大小的不同:一般来讲,在32位系统下,内存可以达到4GB空间,但对于栈来讲,一般都是有一定的空间大小的。3-3 请定义一个变量,初始化为34759,并以八进制与十六进制输出。如果将该整数定义成无符号短整数,当以有有符号数输出时,结果是什么?答;程序如下: #includeusing namespace std;void main() int i=34759; coutoctiendl; /八进制couthexiendl; /十六进制输出结果是 103707 87C73-4 写一个C+程序,使用cout输出提示信息,向用户询问一个矩形的长和宽,都使用cin从键盘接收用户的输入信息,并输出矩形的周长和面积。答:程序如下:#includeusing namespace std;void main() int a,b,c,s;cout”输出矩形的长和宽“ab; c=(a+b)*2; s=a*b;cout”“周长是“c”面积是”sendl;3-6 分析程序,写出运行结果int main(void) try printf(“try:1n”); throw 1;catch(int i) printf(“catch try:1 int:%dn”,i);catch(double d)printf(“catdh try:1double %fn”,d);tryprintf(“try:2n”);throw 1.2;catch(int i)printf(“catch try:2 int:%dn”,i);catch(double d)printf(“catch try:2 double:%fn”,d);return 0;答:运行结果是 try:1 catch try:1 int:1try:2catch try:2 double:1.200000习题44-1 什么是类?什么是对象?对象和类是什么关系?答:类(Class)实际上是对某种类类型的对对象定义变量和方法的原型。它表示对现实生活中一类具有共同特征的事物的抽象,是面向对象编程的基础。一个类定义了一组对象。类具有行为,它描述一个对象能够做什么以及做的方法。对象是具有类类型的变量。它们的关系是类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板4-2 面向对象程序设计中类之间的关系主要有哪两种?答;主要有is-a和has-a的关系4-3一个类的各数据成员的构造顺序是什么?类的对象成员与类的一般数据成员的构造顺序是什么?构造顺序与析构顺序的关系是什么?答:按它们在类出现的先后顺序进行,先定义者先构造;先构造类的对象成员,再构造一般数据成员;二者顺序相反,先构造者后析构。4-4 复制构造函数的作用是什么?答:复制构造函数是一种特殊的构造函数,具有一般构造函数的所有特性。它创建一个新的对象,作为另一个对象的拷贝。4-7 分析程序,写出运行结果。#includeusing namespace std;class BCpublic:BC() sBC=new char3;coutBC allocates 3 bytes. in BC()n;BC() delete sBC;coutBC free 3 bytes. n in BC();private:char * sBC;class DC:public BCpublic:DC()sDC=new char5;coutDC allocates 5 bytes. in DC()n;DC() delete sDC;coutDC free 5 bytes. in DC()n;private:char * sDC;int main()DC d;coutthis is a test.endl;return 0;答:运行结果如下:BC allocates 3 bytes.in BC()DC allocates 5 bytes.in DC()this is a testDC free 5 bytes. in DC()BC free 3 bytes. in BC()4-8 分析下列程序的输出结果#includeusing namespace std;class Testpublic:Test(int n=1) val=n;coutCon.endl;Test(const Test& t) val=t.val;coutCopy con.endl;Test & operator=(Test &t)val=t.val;coutAssignment.endl;return *this;private:int val;void fun1(Test t) Test fun2()Test t;return t;void main()Test t1(1);Test t2=t1;Test t3;t3=t1;fun1(t2);t3=fun2();答:运行结果为Con.Copy con.Con.AssignmentCopy con.Con.Copy con.Assignment4-14 设计一个点类Point,求两个点直接的距离答:程序如下#include#includeusing namespace std;class pointpublic:void Distance(int x1,int y1,int x2,int y2);void Output();private:float distance;int main()int d1,d2,d3,d4;point dis;cout 请输入第一个点的坐标 d1 d2;cout 请输入第二点的坐标 d3 d4;dis.Distance(d1,d2,d3,d4);dis.Output();return 0;void point:Distance(int x1,int y1,int x2,int y2)float length;length=sqrt(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);distance=length;void point:Output()cout 两点距离是 distance endl;4-15 定义一个Circle类,计算圆的周长和面积。答:程序如下class circle double rd;/半径成员public: circle() rd=0.0; /构造函数 circle(double b) rd=b; /重构构造函数 double zc() return 2*pi*rd; double mj() return pi*rd*rd; 习题5 5-1 重载(overload)和覆盖(overried)的区别答:重载与覆盖的区别:1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系。 2、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之间的关系。 3、覆盖要求参数列表相同;重载要求参数列表不同。 4、覆盖关系中,调用那个方法体,是根据对象的类型(对象对应存储空间类型)来决定;重载关系,是根据调用时的实参表与形参表来选择方法体的。5-2 分析程序,写出运行结果class Apublic:virtual void act1();void act2() act1();void A:act1()coutA:act1() called.endl;class B:public Apublic:void act1();void B:act1()coutB:act1() called.endl;void main()B b;b.act2();答:运行结果为:B:act() called.5-4 分析程序,写出运行结果class A int a;public:A(int i) a=i;coutA=aendl;virtual void func() coutA:funcendl;virtual A() coutA=aendl;class B:public Aint b;pub
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 近代欧美学前教育思想
- 家教行业市场调研报告
- 2025年及未来5年市场数据中国输变电电力变压器行业投资分析及发展战略咨询报告
- 2025年及未来5年市场数据中国玻璃钢斜流式管道风机行业发展监测及投资战略规划研究报告
- 2025年及未来5年市场数据中国化学纤维制造业行业市场运营现状及投资方向研究报告
- 2025年及未来5年市场数据中国行李安检机行业市场调研及投资战略规划报告
- 2025年及未来5年市场数据中国石墨降膜吸收器行业市场运行态势与投资战略咨询报告
- 2025年及未来5年市场数据中国螺旋无堵塞泵市场竞争态势及投资战略规划研究报告
- 2025年及未来5年市场数据中国缩管机市场全面调研及行业投资潜力预测报告
- 2025江苏苏州市太仓市供销合作总社下属高新供销合作社及供销合作发展有限公司招聘笔试考生笔试历年参考题库附带答案详解
- 烟感报警器安装合同模板
- 服务工作程序、方法和制度
- 2024年国开电大 高级财务会计 形考任务4答案
- RhD阴性孕产妇的合理输血讲课分享
- 2024年02月深圳市坪山区融媒体中心2024年公开招考12名工作人员笔试近年2018-2023典型考题及考点剖析附答案带详解
- 疼痛学临床诊疗指南
- 高中英语选择性必修一《Unit 1 People of achievement》单元教学设计
- 动物给药技术(动物临床诊疗课件)
- 波西杰克逊系列
- 采伐操作规程培训课件
- 《工业通风与除尘》课程标准
评论
0/150
提交评论