c,面向对象程序设计考试试题1.doc_第1页
c,面向对象程序设计考试试题1.doc_第2页
c,面向对象程序设计考试试题1.doc_第3页
c,面向对象程序设计考试试题1.doc_第4页
c,面向对象程序设计考试试题1.doc_第5页
已阅读5页,还剩10页未读, 继续免费阅读

下载本文档

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

文档简介

考试试题纸( B 卷)面向对象程序设计 课程 计算机 院(系)网络工程、计算机科学与技术 班级考试时量 100分钟 学生人数 命题教师 系主任 交题时间: 年 月 日 考试时间: 年 月 日1. 一、简答题(每小题5分,共20分) 1. 什么是类?什么是对象?对象与类的关系是什么? 2. 构造函数和析构函数的主要作用是什么?他们各有什么特性? 3. 派生类构造函数和析构函数的执行顺序是怎样的? 4. 什么是虚函数?虚函数与函数重载有哪些相同点和不同点? 2. 二、选择题(每小题2分,共20分)1假设已经有定义char *const pName=”Student”;下面的语句正确的是 。ApName3=t; B. pName=”score”;C. pName=new char5; D. pName=new char(p);2. 在下面有关对构造函数的描述中,正确的是 。A. 构造函数可以带有返回值B. 构造函数的名字与类名完全相同C. 构造函数必须带有参数4. 构造函数必须定义,不能缺省3在下面有关析构函数特征的描述中,错误的是 。A. 一个类中只能定义一个析构函数B. 析构函数名与类名完全相同C. 析构函数不能指定返回类型D. 析构函数不能带有参数4假定AB为一个类,则执行“AB a(4) , b3 , * p2 ;”语句时,自动调用该类构造函数的次数为 。A. 3 B. 4 C. 6 D. 95. 假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为 。A. AB operator+(AB &a,AB &b) B. AB operator+(AB &a)C. operator+(AB a) D. AB & operator+( )6. 假设定义了函数模版:templateT max(T x, T y) return (xy)?x:y; 并定义了:int i;char c;那么下列错误的调用该模版的是 。Amax(i,i); Bmax(c,c);Cmax(int(c),i); Dmax(c,i);7模版的主要用途是为了 。A提高代码的运行效率B实现多态性C提高代码的重用性D加强类的封装性8下列说法错误的是 。A申明为指向基类对象的指针可以指向它的公有派生的对象,但不允许指向它的私有派生的对象B允许将一个声明为指向基类的指针指向其公有派生类的对象,但是不能将一个声明为指向派生类对象的指针指向其基类的一个对象。C声明为指向基类对象的指针,当其指向公有派生类对象时,只能用它来直接访问派生类中从基类继承来的成员,而不能直接访问公有派生类中定义的成员D以上说法都不对9现有程序如下:#include #include void main()int kk=1234;coutsetfill(*)setw(6)kkendl;coutkkendl;以上程序的运行结果是 。A1234 B. *1234 C.*1234 D.以上都不对1234 1234 *123410在公有继承的情况下,基类成员在派生类中的访问权限 。A受限制 B. 保持不变 C. 受保护 D. 不受保护1. 三、填空题(每空1分,共10分) 1. 假定类AB中有一个公有属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为 (1) 。 2. 通常情况下,当创建派生类对象时,首先执行 (2) 的构造函数,随后再执行 (3) 的构造函数,当撤销派生类对象时,则先执行 (4) 的析构函数,随后再执行 (5) 的析构函数。 3. ios类中有几个成员函数可以用来对输入输出进行格式化控制,格式控制主要是通过对 (6) 的操作来完成的。 4. 所谓赋值兼容规则是指在需要基类对象的任何地方都可以使用 (7) 来替代。 5. 纯虚函数是一个在基类中说明却没定义的虚函数,但要求在它的派生类中必须定义自己的版本,或重新说明为纯虚函数。那么,纯虚函数的定义形式为 (8) 。 6. 分别写出类AB的单目运算符”+”的前缀方式和后缀方式的友元函数重载一般形式: (9) 、 (10) 。 2. 四、写出下面程序的运行结果(每小题5分,共20分)1、#include class Myclasspublic:Myclass()Myclass( int a, int b, int c);void GetNumber();void GetSum();private:int x,y,z;static int sum;int Myclass:sum=0;Myclass:Myclass(int a, int b, int c)x=a; y=b; z=c; sum+=x+y+z;void Myclass:GetNumber()coutnumber=x,y,zendl;void Myclass:GetSum()coutsum=sumendl;void main()Myclass M(3,7,10);M.GetNumber();M.GetSum();Myclass N(14,9,11);N.GetNumber();N.GetSum();M.GetSum();2、#include class TDate1public:TDate1(int y,int m, int d);TDate1();void Print();private:int year, month,day;TDate1:TDate1(int y,int m,int d)year=y;month=m;day=d;coutcontructor called.n;TDate1:TDate1()coutDestructor called.n;void TDate1:Print()coutyear.month.dayendl;void main()TDate1 today(2005,7,1),tomorrow(2005,7,2);couttoday is ;today.Print();couttomorrow is ;tomorrow.Print();3、#include class Datepublic:Date()coutDate called.endl;private:unsigned int year, month, day;class Employeepublic:Employee()coutEmployee called.endl;private:Date birthday;class Manager: public Employeepublic:Manager()coutManager called.endl;private:unsigned int allowance;int main()Manager susan;return 0;4、#include class complexpublic:complex(int r,int i):real(r),imag(i)friend complex operator+(complex );friend complex operator-(complex & );void print()cout(real,imag)endl;private:int real,imag;complex operator+(complex o)o.real+;o.imag+;return o;complex operator-(complex &o)o.real-;o.imag-;return o;void main()complex obj(10,20),obj_b(30,40);+obj;obj.print();-obj_b;obj_b.print();1. 五、编程题(每小题10分,共30分)1、构建一个类book,其中含有两个私有数据成员qu和price,建立一个有5个元素的对象数组,将qu初始化为15,将price初始化为qu的10倍。显示每个对象的qu*price。2、编写一个程序,用成员函数重载运算符“”和“”将两个二维数组相加和相减,要求第一个二维数组由构造函数设置,另一个二维数组的值由键盘输入。3、写一个函数模板,求数组中的最大元素。使得函数调用时,数组类型和返回类型可以是整数也可以是双精度类型。注:请打印或用炭素墨水书写、字迹要求工整、并抄写在方框线内 共 页, 第 页,考试试题纸( B 卷)面向对象程序设计 课程 计算机、网络 专业 班级考试时量 100分钟 学生人数 命题教师系主任 交题时间: 年 月 日 考试时间: 年 月 日一、简答题(每小题5分,共20分)1. 什么是类?什么是对象?对象与类的关系是什么? 2. 构造函数和析构函数的主要作用是什么?他们各有什么特性? 3. 派生类构造函数和析构函数的执行顺序是怎样的? 4. 什么是虚函数?虚函数与函数重载有哪些相同点和不同点?二、选择题(每小题2分,共20分)1假设已经有定义char *const pName=”Student”;下面的语句正确的是 。ApName3=t; B. pName=”score”;C. pName=new char5; D. pName=new char(p);2. 在下面有关对构造函数的描述中,正确的是 。A. 构造函数可以带有返回值B. 构造函数的名字与类名完全相同C. 构造函数必须带有参数5. 构造函数必须定义,不能缺省3在下面有关析构函数特征的描述中,错误的是 。A. 一个类中只能定义一个析构函数B. 析构函数名与类名完全相同C. 析构函数不能指定返回类型D. 析构函数不能带有参数4假定AB为一个类,则执行“AB a(4) , b3 , * p2 ;”语句时,自动调用该类构造函数的次数为 。A. 3 B. 4 C. 6 D. 95. 假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为 。A. AB operator+(AB &a,AB &b) B. AB operator+(AB &a)C. operator+(AB a) D. AB & operator+( )6. 假设定义了函数模版:templateT max(T x, T y) return (xy)?x:y; 并定义了:int i;char c;那么下列错误的调用该模版的是 。Amax(i,i); Bmax(c,c);Cmax(int(c),i); Dmax(c,i);7模版的主要用途是为了 。A提高代码的运行效率B实现多态性C提高代码的重用性D加强类的封装性8下列说法错误的是 。A申明为指向基类对象的指针可以指向它的公有派生的对象,但不允许指向它的私有派生的对象B允许将一个声明为指向基类的指针指向其公有派生类的对象,但是不能将一个声明为指向派生类对象的指针指向其基类的一个对象。C声明为指向基类对象的指针,当其指向公有派生类对象时,只能用它来直接访问派生类中从基类继承来的成员,而不能直接访问公有派生类中定义的成员D以上说法都不对9现有程序如下:#include #include void main()int kk=1234;coutsetfill(*)setw(6)kkendl;coutkkendl;以上程序的运行结果是 。B1234 B. *1234 C.*1234 D.以上都不对1234 1234 *123410在公有继承的情况下,基类成员在派生类中的访问权限 。A受限制 B. 保持不变 C. 受保护 D. 不受保护三、填空题(每空1分,共10分)1. 定类AB中有一个公有属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为 (1) 。 2. 通常情况下,当创建派生类对象时,首先执行 (2) 的构造函数,随后再执行 (3) 的构造函数,当撤销派生类对象时,则先执行 (4) 的析构函数,随后再执行 (5) 的析构函数。 3. ios类中有几个成员函数可以用来对输入输出进行格式化控制,格式控制主要是通过对 (6) 的操作来完成的。 4. 所谓赋值兼容规则是指在需要基类对象的任何地方都可以使用 (7) 来替代。 5. 纯虚函数是一个在基类中说明却没定义的虚函数,但要求在它的派生类中必须定义自己的版本,或重新说明为纯虚函数。那么,纯虚函数的定义形式为 (8) 。 6. 分别写出类AB的单目运算符”+”的前缀方式和后缀方式的友元函数重载一般形式: (9) 、 (10) 。四、写出下面程序的运行结果(第1小题6分,第2、3小题7分,共20分)1、#include class Myclasspublic:Myclass()Myclass( int a, int b, int c);void GetNumber();void GetSum();private:int x,y,z;static int sum;int Myclass:sum=0;Myclass:Myclass(int a, int b, int c)x=a; y=b; z=c; sum+=x+y+z;void Myclass:GetNumber()coutnumber=x,y,zendl;void Myclass:GetSum()coutsum=sumendl;void main()Myclass M(3,7,10);M.GetNumber();M.GetSum();Myclass N(14,9,11);N.GetNumber();N.GetSum();M.GetSum();2、#include class TDate1public:TDate1(int y,int m, int d);TDate1();void Print();private:int year, month,day;TDate1:TDate1(int y,int m,int d)year=y;month=m;day=d;coutcontructor called.n;TDate1:TDate1()coutDestructor called.n;void TDate1:Print()coutyear.month.dayendl;void main()TDate1 today(2005,7,1),tomorrow(2005,7,2);couttoday is ;today.Print();couttomorrow is ;tomorrow.Print();3、#include class Datepublic:Date()coutDate called.endl;private:unsigned int year, month, day;class Employeepublic:Employee()coutEmployee called.endl;private:Date birthday;class Manager: public Employeepublic:Manager()coutManager called.endl;private:unsigned int allowance;int main()Manager susan;return 0;五、编程题(每小题15分,共30分)1、构建一个类book,其中含有两个私有数据成员qu和price,建立一个有5个元素的对象数组,将qu初始化为15,将price初始化为qu的10倍。显示每个对象的qu*price。2、编写一个程序,用成员函数重载运算符“”和“”将两个二维数组相加和相减,要求第一个二维数组由构造函数设置,另一个二维数组的值由键盘输入。注:请用炭素墨水书写、字迹要求工整、并抄写在方框线内 共 页, 第 页,考试试题参考答案及评分细则面向对象程序设计 课程(B卷) 计算机 院(系) 网络工程、计算机 班级应试学生人数 实际考试学生人数 考试时量 100分钟 命题教师 审核人: 考试时间: 年 月 日1. 一、简答题(每小题5分,共20分)1答:类就是相同的数据和相同的一组对象的集合,即,类是对具有相同数据结构和相同操作的一类对象的描述;对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体,对象可以认为是:数据操作;类和对象之间的关系是抽象和具体的关系。2答:构造函数主要用于为对象分配空间,进行初始化。构造函数除了具有一般成员函数的特征外,还具有一些特殊的性质:(1)构造函数的名字必须与类名相同(2)构造函数可以有任意类型的参数,但不能指定返回类型。它有隐含的返回值,该值由系统内部使用。(3)构造函数是特殊的成员函数,函数体可写在类体内,也可写在类体外。(4)构造函数可以重载,即一个类中可以定义多个参数个数或参数类型不同的构造函数。(5)构造函数被声明为公有函数,但它不能像其他成员函数那样被显式地调用,它是在定义对象的同时被调用的。 析构函数也是一种特殊的成员函数。它执行与构造函数相反的操作,通常用于撤消对象时的一些清理任务,如释放分配给对象的内存空间等。析构函数有以下一些特点:(1)析构函数与构造函数名字相同,但它前面必须加一个波浪号();(2)析构函数没有参数,也没有返回值,而且不能重载。因此在一个类中只能有一个析构函数;(3)当撤消对象时,编译系统会自动地调用析构函数。 3答:略.详见教材P151.4答:略. 详见教材P192.1. 二、选择题(每小题2分,共20分) 110A B B B B C C D B B1. 三、填空题(每空1分,共10分)(1)AB:bb (2)基类 (3)派生类 (4)派生类 (5)基类 (6)状态标志字 (7)公有派生类对象 (8)virtual 函数类型 函数名(参数表)=0; (9)AB operator+(); (10)AB operator+(int);1. 四、写出下面程序的运行结果(每小题5分,共20分)1number=3,7,10sum=20number=14,9,11sum=54sum=542contructor called.contructor called.today is 2005.7.1tomorrow is 2005.7.2Destructor called.Destructor called.3Date called.Employee called.Manager called.4(10,20)(29,39)1. 五、编程题(每小题10分,共30分)略.注:请用炭素墨水书写、字迹要求工整、并抄写在方框线内 共 页, 第 页,考试试题参考答案及评分细则面向对象程序设计 课程(B卷) 计算机、网络 专业班级应试学生人数 实际考试学生人数 考试时量 100 分 钟 命题教师 审核人: 考试时间: 年 月 日一、简答题(每小题5分,共20分)1答:类就是相同的数据和相同的一组对象的集合,即,类是对具有相同数据结构和相同操作的一类对象的描述;对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体,对象可以认为是:数据操作;类和对象之间的关系是抽象和具体的关系。2答:构造函数主要用于为对象分配空间,进行初始化。构造函数除了具有一般成

温馨提示

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

评论

0/150

提交评论