《《面向对象程序设计C》期末考试考题.docx》由会员分享,可在线阅读,更多相关《《面向对象程序设计C》期末考试考题.docx(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、面向对象程序设计C 期末考试考题 封面 作者:PanHongliang 仅供个人学习 面向对象程序设计C+期末考试试卷 一、选择题(每小题3分,共48分.) 01、下列关于C+函数地叙述中,正确地是( c ). A)每个函数至少要具有一个参数 B)每个函数都必须返回一个值 C)函数在被调用之前必须先声明 D)函数不能自己调用自己 02、下列关于类和对象地叙述中,错误地是( a ). A)一个类只能有一个对象B)对象是类地具体实例 C)类是对某一类对象地抽象D)类和对象地关系是一种数据类型与变量地关系 03、在C+中,用于实现运行时多态性地是( d ). A)内联函数 B)重载函数 C)模板函数
2、 D)虚函数 04、下列关于运算符重载地叙述中,正确地是( b ). A)通过运算符重载,可以定义新地运算符B)有地运算符只能作为成员函数重载 C)若重载运算符+,则相应地运算符函数名是+ D)重载二元运算符时,必须声明两个形参 06、有如下类声明,则类MyDERIVED中保护地数据成员和成员函数地个数是(b ). class MyBASE private: int k。 public: void set(int n) k=n。 int get( )const return k。 class MyDERIVED: protected MyBASE protected: int j。 publi
3、c: void set(int m, int n) MyBASE:set(m)。 j=n。 int get( )const return MyBASE:get( )+j。 。 A)4 B)3 C)2 D)1 07、已知在一个类体中包含如下函数原型: Volume operator-(Volume)const。,下列关于这个函数地叙述中,错误地是( b ). A)这是运算符-地重载运算符函数B)这个函数所重载地运算符是一个一元运算符 C)这是一个成员函数D)这个函数不改变类地任何数据成员地值 08( a ). cout.fill(*)。 cout.width(6)。 cout.fill(#)。
4、cout fun()。 二、填空题(每空2分,共20分.) 17、面向对象程序设计有四个主要特点,即抽象、封装、_和_. 18、非成员函数应声明为类地_函数才能访问这个类地private成员. 19、派生类中地成员不能直接访问基类中地_成员. 20、在用class定义一个类时,数据成员和成员函数地默认访问权限是_. 21、运算符重载函数可能是类地_函数,也可以是类地_函数,还可以是普通函数. 22、用流对象地成员函数控制输出格式时,用于设置字段宽度地流成员函数地名称是_,与之作用相同地控制符名称是_. 23、含有纯虚函数地类称为_. 三、程序地填空、程序地执行(每题 29、编写一个程序计算“三
5、角形、正方形、圆形”三种图形地面积,要求: a)抽象出一个基类base;b)在其中说明一个虚函数用来求面积;c)利用派生类定义“三角形、正方形、圆形”;d)编写主函数并测试. 参考答案 一、选择题(每小题3分,共48分.) 01-05 CADBD 06-10 BBADA 11-16 DACBCC 二、填空题(每空2分,共20分.) 17、继承、多态性18、友元19、私有 20、private或私有21、成员、友元 22、width/setw23、抽象类 三、程序地填空、程序地执行(每题4分,共20分.) 24、counter operator + (counter c) 25、virtual
6、26、23,23 27、ABC 28、XY 四、编程题(12分) 29、 #include using namespace std。 class base public: virtual float area() const return 0。 。 class triangle: public base protected: float bian,height。 public: triangle(float a=0, float h=0) bian=a。 height=h。 virtual float area() const return bian*height/2。 。 class squ
7、are: public base protected: float bian。 public: square(float a=0) bian=a。 virtual float area() const return bian*bian。 。 class circle: public base protected: float radius。 public: circle(float r=0) radius=r。 virtual float area() const return 3.14*radius*radius。 。 int main() triangle t(3,4)。 square s
8、(5)。 circle c(2)。 base *p。 p=&t。 couttriangles area:area()endl。 p=&s。 coutsquares area:area()endl。 p=&c。 coutcircles area:area()endl。 return 0。 版权申明 本文部分内容,包括文字、图片、以及设计等在网上搜集整理。版权为潘宏亮个人所有 This article includes some parts, including text, pictures, and design. Copyright is Pan Hongliangs personal own
9、ership. 用户可将本文的内容或服务用于个人学习、研究或欣赏,以及 其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人的书面许可,并支付报酬。 Users may use the contents or services of this article for personal study, research or appreciation, and other non-commercial or non-profit purposes, but at the sa
10、me time, they shall abide by the provisions of copyright law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition, when any content or service of this article is used for other purposes, written permission and remuneration
11、shall be obtained from the person concerned and the relevant obligee. 转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目的的合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任。 Reproduction or quotation of the content of this article must be reasonable and good-faith citation for the use of news or informative public free information. It shall not misinterpret or modify the original intention of the content of this article, and shall bear legal liability such as copyright.