欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    c面向对象程序设计考试试题.doc

    • 资源ID:52739241       资源大小:75KB        全文页数:15页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    c面向对象程序设计考试试题.doc

    考试试题纸( 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. 假设定义了函数模版:template<class T>T max(T x, T y)   return (x>y)?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 <iostream.h>#include <iomanip.h>void main()int kk=1234;cout<<setfill(*)<<setw(6)<<kk<<endl;cout<<kk<<endl;以上程序的运行结果是        。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 <iostream.h>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() cout<<"number="<<x<<","<<y<<","<<z<<endl;void Myclass:GetSum() cout<<"sum="<<sum<<endl;void main() Myclass M(3,7,10); M.GetNumber(); M.GetSum(); Myclass N(14,9,11); N.GetNumber(); N.GetSum(); M.GetSum();2、#include <iostream.h>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; cout<<"contructor called.n"TDate1:TDate1() cout<<"Destructor called.n"void TDate1:Print() cout<<year<<"."<<month<<"."<<day<<endl;void main() TDate1 today(2005,7,1),tomorrow(2005,7,2); cout<<"today is " today.Print(); cout<<"tomorrow is " tomorrow.Print();3、#include <iostream.h>class Datepublic: Date()   cout<<"Date called."<<endl; private: unsigned int year, month, day;class Employeepublic: Employee()   cout<<"Employee called."<<endl; private: Date birthday;class Manager: public Employeepublic: Manager()   cout<<"Manager called."<<endl; private: unsigned int allowance;int main() Manager susan; return 0;4、#include <iostream.h>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. 假设定义了函数模版:template<class T>T max(T x, T y)   return (x>y)?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 <iostream.h>#include <iomanip.h>void main()int kk=1234;cout<<setfill(*)<<setw(6)<<kk<<endl;cout<<kk<<endl;以上程序的运行结果是        。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 <iostream.h>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() cout<<"number="<<x<<","<<y<<","<<z<<endl;void Myclass:GetSum() cout<<"sum="<<sum<<endl;void main() Myclass M(3,7,10); M.GetNumber(); M.GetSum(); Myclass N(14,9,11); N.GetNumber(); N.GetSum(); M.GetSum();2、#include <iostream.h>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; cout<<"contructor called.n"TDate1:TDate1() cout<<"Destructor called.n"void TDate1:Print() cout<<year<<"."<<month<<"."<<day<<endl;void main() TDate1 today(2005,7,1),tomorrow(2005,7,2); cout<<"today is " today.Print(); cout<<"tomorrow is " tomorrow.Print();3、#include <iostream.h>class Datepublic: Date()   cout<<"Date called."<<endl; private: unsigned int year, month, day;class Employeepublic: Employee()   cout<<"Employee called."<<endl; private: Date birthday;class Manager: public Employeepublic: Manager()   cout<<"Manager 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)构造函数的名字必须与类名相同(2)构造函数可以有任意类型的参数,但不能指定返回类型。它有隐含的返回值,该值由系统内部使用。(3)构造函数是特殊的成员函数,函数体可写在类体内,也可写在类体外。(4)构造函数可以重载,即一个类中可以定义多个参数个数或参数类型不同的构造函数。(5)构造函数被声明为公有函数,但它不能像其他成员函数那样被显式地调用,它是在定义对象的同时被调用的。 析构函数也是一种特殊的成员函数。它执行与构造函数相反的操作,通常用于撤消对象时的一些清理任务,如释放分配给对象的内存空间等。析构函数有以下一些特点:(1)析构函数与构造函数名字相同,但它前面必须加一个波浪号();(2)析构函数没有参数,也没有返回值,而且不能重载。因此在一个类中只能有一个析构函数;(3)当撤消对象时,编译系统会自动地调用析构函数。 3答:略.详见教材P151.4答:略. 详见教材P192.二、选择题(每小题2分,共20分)110A  B  B  B  B  C  C  D  B  B三、填空题(每空1分,共10分)(1)AB:bb  (2)基类 (3)派生类 (4)派生类 (5)基类 (6)状态标志字 (7)公有派生类对象 (8)virtual 函数类型 函数名(参数表)=0; (9)AB operator+(); (10)AB operator+(int);四、写出下面程序的运行结果(第1小题6分,第2、3小题7分,共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.五、编程题(每小题15分,共30分)略.注:请用炭素墨水书写、字迹要求工整、并抄写在方框线内       共   页,  第   页,

    注意事项

    本文(c面向对象程序设计考试试题.doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开