C课后习题解答

上传人:新** 文档编号:499679666 上传时间:2023-10-13 格式:DOC 页数:44 大小:144.50KB
返回 下载 相关 举报
C课后习题解答_第1页
第1页 / 共44页
C课后习题解答_第2页
第2页 / 共44页
C课后习题解答_第3页
第3页 / 共44页
C课后习题解答_第4页
第4页 / 共44页
C课后习题解答_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《C课后习题解答》由会员分享,可在线阅读,更多相关《C课后习题解答(44页珍藏版)》请在金锄头文库上搜索。

1、第1章 面向对象的方法学1什么是面向对象方法学?解:面向对象方法学就是尽量模拟人类习惯的思维方式,使软件开发的方法与过程尽可能接近人类认识世界、解决问题的方法与过程,从而使描述问题的问题空间(即问题域)与实现解法的解空间(即求解域)在结构上尽可能一致。2什么是对象?它与传统的数据有何关系?有什么不同?解:对象是封装了数据结构及可以施加在这些数据结构上的操作的封装体。它与传统数据有本质的不同,传统数据是被动地等待对它进行处理,对象是进行处理的主体。3什么是封装性和继承性?解:封装是面向对象方法的一个重要特点,即将对象的属性和行为封装在对象的内部,形成一个独立的单位,并尽可能隐蔽对象的内部细节。继

2、承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。4什么是多态性?解:多态性是面向对象方法的重要特征。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。5试写出学生管理系统中所涉及的类(属性和方法)。学生管理系统中学生信息有:姓名、学号、年龄、成绩;学生管理系统完成学生信息输入、学生信息输出、插入学生信息、删除学生信息、查找学生信息。解:class Studentprivate: char cName12;/姓名long lNum;/学号 int age; /年龄 float fGrade;/成绩public: void Input();/输入学生信息 void

3、Print();/输出学生信息 void Insert();/插入学生信息 void Del(); /删除学生信息 void Find(); /查找学生信息;6目前常用的面向对象程序设计语言有哪些?各有哪些特点?解:Visual C+6.0支持面向对象编程、可视化、模块化、代码可重用和组件共享等技术,可以大大提高软件系统的设计、管理和开发速度。Java语言是一种通用、并发、基于类的面向对象程序设计语言。Java语言具有简捷性、面向对象、分布式、健壮性、安全性、可移植性、解释型、高性能、多线程、动态性等特点。C#(读做“C sharp”)是微软公司发布的一种面向对象的、运行于.NET Frame

4、work之上的高级程序设计语言。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_Queue(); /出队 v

6、oid Empty(); /判队空;第2章 类 与 对 象1构造函数和析构函数的主要作用是什么?解:构造函数的功能是在创建对象时,给数据成员赋初值,即对象的初始化。析构函数的功能是释放一个对象,在对象删除之前,用它来做一些内存释放等清理工作。2什么是this指针?它的主要作用是什么?解:this指针称为自引用指针。每当对象调用成员函数时,系统就将该对象的地址赋给this指针,这时C+编译器将根据this指针所指向的对象来确定应该引用哪一个对象的数据成员。3什么是友元函数?解:友元函数不是当前类中的成员函数,它可以是一个不属于任何一个类的一般函数(即非成员函数),也可以是另外一个类的成员函数。4

7、什么是静态数据成员?静态数据成员的定义和初始化方法是什么?解:类的静态数据成员拥有一块单独的存储区,不管用户创建了多少个该类的对象,所有这些对象的静态数据成员都共享这一块静态存储空间,是这些对象互相通信的一种方法。静态数据成员的定义格式:static 类型名 静态成员名;静态数据成员的初始化格式:类型 类名静态数据成员= 初始化值;5关于构造函数的叙述正确的是( B )。 A构造函数可以有返回值B构造函数的名字必须与类名完全相同 C构造函数必须带有参数D构造函数必须定义,不能默认6关于析构函数特征描述正确的是( C )。 A一个类中可以有多个析构函数B析构函数名与类名完全相同 C析构函数不能指

8、定返回类型D析构函数可以有一个或多个参数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的对

9、象引用,用来作为Set( )的形参 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;

11、#include queue.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 da

12、tai.score endl;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 iostreamusing namespace std;#inc

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

当前位置:首页 > 医学/心理学 > 基础医学

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