大连理工大学c++期中试卷-有答案.doc_第1页
大连理工大学c++期中试卷-有答案.doc_第2页
大连理工大学c++期中试卷-有答案.doc_第3页
大连理工大学c++期中试卷-有答案.doc_第4页
大连理工大学c++期中试卷-有答案.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.姓名:学号:院系: 级 班大 连 理 工 大 学课 程 名 称:面向对象方法与C+程序设计 试 卷: 统一 是否开卷 否 授课院 (系): 软件学院 考试日期: 09 年 4 月 日 试卷共8 页装 订 线一二三四五六七八九十总分标准分101520153010100得 分一 、选择题(10分, 每题2分)1一个C+类_。A 只能有一个构造函数和一个析构函数B 可以有一个构造函数和多个析构函数 C 可以有多个构造函数和一个析构函数D 可以有多个构造函数和多个析构函数2下列静态数据成员的特性中,_是错误的。 A 声明静态数据成员时,前边要加修饰符staticB 静态数据成员要在类体外进行初始化C 静态数据成员不是所有对象所共用的 D 引用静态数据成员时,要在其名称前加和作用域运算符3若类X是类Y的友元类,则下列哪种访问关系是正确的 _ _。 A类X的成员不能访问类Y的私有成员 B类X的成员可以访问类Y的私有成员 C类Y的成员可以访问类X的私有成员 D只有类Y的公共成员才能访问类X的私有成员4下面关于C+中类的继承与派生的说法错误的是_。 A 基类的protected成员在公有派生类的成员函数中可以直接使用 B 基类的protected成员在私有派生类的成员函数中可以直接使用 C 私有派生时,基类的所有成员访问权限在派生类中保持不变 D 继承可以分为单一继承与多重继承 5对const与类,理解不正确的为_。A可以用const限制对象、数据成员或成员函数B常成员函数不能修改对象的数据成员,但能调用该类中非常成员函数Cconst数据成员只能由构造函数通过初始化列表对其进行初始化Dconst 对象只能调用它的const 成员函数,而不能调用非常成员函数 二、写出下面程序的运行结果。(15分, 每题5分)1. (对一行1分)#include using namespace std; class MyClass int val; int copynumber; public: / Normal constructor. MyClass(int i) val = i; copynumber = 0; cout Inside normal constructorn; / Copy constructor MyClass(const MyClass &o) val = o.val; copynumber = o.copynumber + 1; cout Inside copy constructor.n; MyClass() if(copynumber = 0) cout Destructing original.n; else cout Destructing copy copynumber n; int getval() return val; ; void display(MyClass ob) cout ob.getval() n; int main() MyClass a(10); display(a); return 0; 2. (对一行2分)#includeclass A public: int a1, a2 ; A( int i1=0, int i2=0 ) a1 = i1; a2 = i2; void print() cout a1= a1 t a2= a2 endl ; ;class B : public A public: int b1, b2 ; B( int j1=1, int j2=1 ) b1 = j1; b2 = j2; void print()/定义同名函数 cout b1= b1 t b2= b2 endl ; void printAB() A:print() ;/派生类对象调用基类版本同名成员函数 print() ;/派生类对象调用自身的成员函数 ;void main() B b ; b.A:print();b.printAB(); 3.(对一行一份)#include class Other public : Other ( ) cout Other is created.n ; Other ( ) cout Other is deleted!n ; ;class Base public : Base ( ) cout Base is created.n ; Base ( ) cout Base is deleted!n ; ;class Derived : public Base Other ot; public : Derived( ) cout Derived is created.n ; Derived( ) cout Derived is deleted!n ; ;void main ( ) Derived d ; cout.endl; 三、简答题(20分, 每题5分)1. 对于复制构造函数而言,什么是深复制构造,什么是浅复制构造?2. 面向对象与面向过程的区别?3. 引用与指针有什么区别?4. 对于以下函数重载,会出现什么问题,在什么时候出现,编程中应该怎样解决这个问题。int f(int x, int y=0, int z=0);int f(int x, int y); 四、阅读程序回答问题(15分, 每题5分)1指出此段代码中的错误并改正class Simple int x, y ; public : void setXY ( int x, int y) x =x ; y = y ; /用形参给属性赋值 Simple getObject() return this; ;2阅读程序回答问题#includeclass A public : void set_XY( ) cin x y ; int get_XY( )return x* y; protected: int x, y ;class B : private A public :void set_S() s = x * y ; int get_S() return s ; protected: int s;class C : public B public : void set_H() cin h ; void set_V() set_S( ); v = s * h ; int get_V( ) return v ; protected: int h, v;(1) 在B类中是否能够直接使用基类数据成员x,y ?请说明理由。(2) 在C类中 void set_V() set_S( ); v = s * h ; 是否可以改为void set_V() v = get_XY( )* h ; ?请说明理由。3. 阅读程序回答问题class B public : static void f ( ) ; ; class D : private B ;class DD : public D void h ( ) ; ;void DD : h ( ) ; 五、编程题(30分, 每题15分)1以点(point)类为基类,派生出矩形类。矩形水平放置,由左下方的顶点和长宽定义。矩形类增加一个成员函数,判断任一坐标点是在图形内,还是在图形的边缘上,还是在图形外。点类 3分矩形类 5分位置函数 7分2编写一个程序,实现字符串操作:一个简单串类String,包含输入字符串、返回字符串长度及内容功能;另有一个具有编辑功能的串类Edit_string,它继承String类,在其中设置一个光标,使其能支持在光标处的插入、替换和删除的编辑功能。简单字符串 5分(结构2分,三个函数每个一分)Edit_string 10分(结构1分,每个函数3分)六、面向对象设计(10分)利用你学的知识,给出图书借阅系统中读者和书的设计。读者分为教师和学生,教师最多可以借10本书,学生最多可以借6本书。写出你所设计类的声明。每个类只需要写出属性方法(包括参数),不需要写实现。对每个属性及方法要写注释说明。每个类2分,共8分;最大本书2分 #define maxBook 20;class Book name;class Reader name; Book booksmaxBook;class Student :public Reader static const int max; class Teacher :public Reader static const int max; 参考答案:一、C C B C B二、1Inside normal constructorInside copy constructor 10Destructing copy 1Destructing original 2a1=0 a2=0a1=0 a2=0b1=1 b2=13Base is created.Other is created.Derived is created.Derived is deleted!Other is deleted!Base is deleted!三、1浅复制只复制对象空间(数据成员)与源对象相同,不考虑对象使用的资源。深复制不光考虑对象空间(数据成员)可能与源对象不同,还要考虑对象使用的资源(两种方式)。2面向对象:大问题,事物基本单位,扩充、维护方便面向过程:小问题,以功能为单位,不便于维护3指针:指针变量有自己地址空间,可以声明与赋值分开,重新赋值。引用:指针变量没有有自己地址空间,可以声明同时必须初始化,不能重新赋值。 4调用方式为两个整型参数时会出现二义性

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论