C++课后习题解答(共44页).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)
《C++课后习题解答(共44页).doc》由会员分享,可在线阅读,更多相关《C++课后习题解答(共44页).doc(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上第1章 面向对象的方法学1什么是面向对象方法学?解:面向对象方法学就是尽量模拟人类习惯的思维方式,使软件开发的方法与过程尽可能接近人类认识世界、解决问题的方法与过程,从而使描述问题的问题空间(即问题域)与实现解法的解空间(即求解域)在结构上尽可能一致。2什么是对象?它与传统的数据有何关系?有什么不同?解:对象是封装了数据结构及可以施加在这些数据结构上的操作的封装体。它与传统数据有本质的不同,传统数据是被动地等待对它进行处理,对象是进行处理的主体。3什么是封装性和继承性?解:封装是面向对象方法的一个重要特点,即将对象的属性和行为封装在对象的内部,形成一个独立的单位,并尽
2、可能隐蔽对象的内部细节。继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。4什么是多态性?解:多态性是面向对象方法的重要特征。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。5试写出学生管理系统中所涉及的类(属性和方法)。学生管理系统中学生信息有:姓名、学号、年龄、成绩;学生管理系统完成学生信息输入、学生信息输出、插入学生信息、删除学生信息、查找学生信息。解:class Studentprivate: char cName12;/姓名long lNum;/学号 int age; /年龄 float fGrade;/成绩public: void Input();
3、/输入学生信息 void Print();/输出学生信息 void Insert();/插入学生信息 void Del(); /删除学生信息 void Find(); /查找学生信息;6目前常用的面向对象程序设计语言有哪些?各有哪些特点?解:Visual C+6.0支持面向对象编程、可视化、模块化、代码可重用和组件共享等技术,可以大大提高软件系统的设计、管理和开发速度。Java语言是一种通用、并发、基于类的面向对象程序设计语言。Java语言具有简捷性、面向对象、分布式、健壮性、安全性、可移植性、解释型、高性能、多线程、动态性等特点。C#(读做“C sharp”)是微软公司发布的一种面向对象的、
4、运行于.NET Framework之上的高级程序设计语言。C#集C语言的简洁强大、C+的面向对象、VB的图形化设计方法、Java的编译与执行机制等优点于一身。C#是创新性的新式编程语言,它巧妙地结合了最常用的行业语言和研究语言中的功能,并引入了多种潜在的新功能,提高了开发人员在语言构造方面的效率,将快速的应用程序开发与对底层平台各种功能的访问紧密结合在一起,使得程序员能够在.NET平台上快速开发各种应用程序。7C+支持多态性主要表现在哪些方面?解:C+支持两种多态性,即编译时的多态性和运行时的多态性。编译时的多态性是通过重载来实现的,运行时的多态性是通过虚函数来实现的。思考题1设计一个栈类,实
5、现的操作有初始化栈、入栈、出栈、判栈空。解:class Stackprivate: int top; int s100;public: void Ini_Stack(); /初始化栈 void Push_Stack(); /入栈 void Pop_Stack(); /出栈 void Empty(); /判栈空;2设计一个队列类,实现的操作有初始化队列、入队、出队、判队空。解:class Queueprivate: int front,rear; int que100;public: void Ini_Queue(); /初始化队列 void In_Queue(); /入队 void Out_Q
6、ueue(); /出队 void Empty(); /判队空;第2章 类 与 对 象1构造函数和析构函数的主要作用是什么?解:构造函数的功能是在创建对象时,给数据成员赋初值,即对象的初始化。析构函数的功能是释放一个对象,在对象删除之前,用它来做一些内存释放等清理工作。2什么是this指针?它的主要作用是什么?解:this指针称为自引用指针。每当对象调用成员函数时,系统就将该对象的地址赋给this指针,这时C+编译器将根据this指针所指向的对象来确定应该引用哪一个对象的数据成员。3什么是友元函数?解:友元函数不是当前类中的成员函数,它可以是一个不属于任何一个类的一般函数(即非成员函数),也可以
7、是另外一个类的成员函数。4什么是静态数据成员?静态数据成员的定义和初始化方法是什么?解:类的静态数据成员拥有一块单独的存储区,不管用户创建了多少个该类的对象,所有这些对象的静态数据成员都共享这一块静态存储空间,是这些对象互相通信的一种方法。静态数据成员的定义格式:static 类型名 静态成员名;静态数据成员的初始化格式:类型 类名静态数据成员= 初始化值;5关于构造函数的叙述正确的是( B )。 A构造函数可以有返回值B构造函数的名字必须与类名完全相同 C构造函数必须带有参数D构造函数必须定义,不能默认6关于析构函数特征描述正确的是( C )。 A一个类中可以有多个析构函数 C析构函数不能指
8、定返回类型7构造函数是在( B )时被执行的。 A程序编译B创建对象C创建类D程序装入内存8定义A是一个类,那么执行语句“A a, b(3),*p;”调用了( A )次构造函数。 A2B3C4D59在下列函数原型中,可以作为类Base析构函数的是( B )。 AvoidBaseBBase( )CBase( )const DBase( )10this指针是C+实现( B )的一种机制。 A抽象B封装C继承D重载11已知类中的一个成员函数说明为:void Set (X &a)其中,X &a的含义是( C )。 A指向类X的指针为aB将a 的地址赋给变量 Ca是类X的对象引用,用来作为Set( )的
9、形参 D变量X与a按位与作为函数Set( )的形参12下面关于友元函数的描述中,正确的说法是( A )。 A友元函数是独立于当前类的外部函数 B一个友元函数不能同时定义为两个类的友元函数 C友元函数必须在类的外部定义 D在外部定义友元函数时,必须加关键字friend13一个类的友元函数能够访问该类的( D )。 A私有成员B保护成员C公有成员D所有成员14友元的作用之一是( A )。 A提高程序的运行效率B加强类的封装性 C实现数据的隐藏性D增强成员函数的种类15n=1516s=10思考题1定义一个学生类,学生信息有学号、姓名和成绩。成绩包括计算机、英语、数学成绩和平均分。要求利用队列实现学生
10、的入队、出队和显示等功能。const int MAXSIZE=5; /queue.hstruct datatypelong no;char name10;float score;class Studentprivate:datatype dataMAXSIZE;int front,rear;int num;public:Student();int In_SeQueue(datatype x);int Out_SeQueue();void Print_SeQueue();/ queue.cpp#include iostreamusing namespace std;#include queue.
11、hint _tmain(int argc, _TCHAR* argv)Student sq;int i;for (i=1;i=3;i+)datatype stu;coutinput no,name,scorestu.no stu.name stu.score ;sq.In_SeQueue (stu);coutPrint_SeQueueendl;sq.Print_SeQueue ();sq.Out_SeQueue ();coutAfter Out_SeQueue 0;number-,i=(i+1)%MAXSIZE)coutdatai.no datai.name datai.score endl;
12、2定义一个图书类,图书信息有图书名称、作者、出版社、价格。要求利用栈实现图书的入库、出库和显示等功能。const int MAXSIZE=5; / stack.hstruct datatypechar name10,author10,publish20;float price;class Stackprivate:datatype dataMAXSIZE;int top;public:Stack();int Push_SeqStack(datatype x);int Pop_SeqStack();void Print_SeqStack();/ stack.cpp#include iostrea
13、musing namespace std;#include stack.hint _tmain(int argc, _TCHAR* argv)Stack sq;int i;for (i=1;i=3;i+)datatype b;coutinput name,author,publish,priceb.name b.author b.publish b.price ;sq.Push_SeqStack(b);coutPrint_SeqStackendl;sq.Print_SeqStack();sq.Pop_SeqStack ();coutAfter Popendl;sq.Print_SeqStack
14、();return 0;Stack:Stack()top=-1;int Stack:Push_SeqStack(datatype x)if(top=MAXSIZE-1)return(0);elsetop+;datatop=x;return(1);int Stack:Pop_SeqStack()if(top=-1)return 0;elsetop-;return 1;void Stack:Print_SeqStack()int i;for(i=0;i=top;i+)coutdatai.name datai.author datai.publish datai.priceendl;3有Distan
15、ce类和Point类,将Distance类定义为Point类的友元类来实现计算两点之间距离。/ point.hclass Pointpublic:Point(int xx=0,int yy=0)X=xx;Y=yy;friend class Distance;private:int X,Y;class Distancepublic:float fDist(Point a,Point b);/point.cpp#includeiostreamusing namespace std;#includemath.h#includepoint.hint main() Point myp1(1,1),myp
16、2(4,5);Distance d;coutThe distance is: ;coutd.fDist(myp1,myp2)endl; return 0;float Distance:fDist(Point p1,Point p2)double x,y;x=p1.X -p2.X ;y=p1.Y -p2.Y ;return float(sqrt(x*x+y*y);第3章 函数重载与内联函数1为什么要进行函数重载?解:当函数实现的是同一类功能,只是部分细节不同(如参数的个数或参数类型不同)时,利用函数重载机制可以将这些函数取成相同的名字,从而使程序易于阅读和理解,方便记忆和使用。2什么是内联函数?
17、解:内联函数是一个函数,它与一般函数的区别是在使用时可以像宏一样展开,所以没有函数调用的开销。因此,使用内联函数可以提高系统的执行效率。3函数重载的意义主要在于( A )。 A使用方便,提高可读性B提高执行效率 C减少存储空间开销D提高程序可靠性4下面关于重载函数的说法中正确的是( C )。 A重载函数一定具有不同的返回值类型B重载函数形参个数一定不同 C重载函数一定有不同的形参列表 D重载函数名可以不同5一个函数功能不太复杂,但要求被频繁调用,选用( A )。 A内联函数B重载函数C递归函数D嵌套函数6将函数声明为内联函数的关键字是( C )。 AregisterBstaticCinline
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课后 习题 解答 44
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内