




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象程序设计C期末试卷及标准答案(B)面向对象程序设计C期末试卷及标准答案(B)面向对象程序设计C期末试卷及标准答案(B)《面向对象程序设计C++》期末考试试卷(B)一、单项选择题(每小题2分,共40分)1、关于C++与C语言关系得描述中,()就就是错误得。A、C语言就就是C++语言得一个子集B、C语言与C++语言就就是兼容得C、C++语言对C语言进行了一些改进D、C++语言和C语言都就就是面向对象得2、已知:intm=10;下列表示引用得方法中,()就就是正确得。A、int&x=m;B、int&y=10;C、int&z;D、float&t=&m;3、考虑下面得函数原型声明:voidtestDefaulParam(inta,intb=7,charz='*');下面函数调用中,不合法得就就是()。A、testDefaulParam(5);B、testDefaulParam(5,8);C、testDefaulParam(5,'#');D、testDefaulParam(0,0,'*');4、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据得就就是()。A、函数得返回值类型B、参数得类型C、函数名称D、参数个数5、下列有关C++类得说法中,不正确得就就是()。A、类就就是一种用户自定义得数据类型B、只有类中得成员函数或类得友元函数才能存取类中得私有成员C、在类中,如果不做特别说明,所有成员得访问权限均为私有得D、在类中,如果不做特别说明,所有成员得访问权限均为公用得6、已知X类,则当程序执行到语句Xarray[3];时,调用了()次构造函数。A、0B、1C、2D、37、有关析构函数得说法,不正确得就就是()。A、析构函数有且仅有一个B、析构函数和构造函数一样可以有形参C、析构函数得功能就就是在系统释放对象之前作一些内存清理工作D、析构函数无任何函数类型8、类定义得内容允许被其对象无限制地存取得就就是()。A、private部分B、protected部分C、public部分D、以上都不对9、关于常数据成员得说法,不正确得就就是()。A、常数据成员得定义形式与一般常变量得定义形式相同,只不过常数据成员得定义必须出现在类体中B、常数据成员必须进行初始化,并且不能被更新C、常数据成员通过构造函数得成员初始化列表进行初始化D、常数据成员可以在定义时直接初始化10、运用运算符delete删除一个动态对象时()。A、系统首先为该动态对象调用构造函数,再释放其占用得内存B、系统首先释放该动态对象占用得内存,再为其调用构造函数C、系统首先为该动态对象调用析构函数,再释放其占用得内存D、系统首先释放动态对象占用得内存,再为其调用析构函数11、可以在类外用p、a得形式访问派生类对象p得基类成员a,其中a就就是()。A、私有继承得公用成员B、公用继承得私有成员C、公用继承得保护成员D、公用继承得公用成员12、在公用继承方式下,有关派生类对象和基类对象得关系,不正确得叙述就就是()。A、派生类得对象可以赋给基类得对象B、派生类得对象可以初始化基类得引用C、派生类得对象可以直接访问基类中得成员D、派生类得对象得地址可以赋给指向基类得指针13、设置虚基类得目得就就是()。A、简化程序B、消除二义性C、提高运行效率D、减少目标代码14、在C++中,用于实现动态多态性得就就是()。A、内联函数B、重载函数C、模板函数D、虚函数15、不能说明为虚函数得就就是()。A、析构函数B、构造函数C、类得成员函数D、以上都不对16、如果一个类至少有一个纯虚函数,那么就称该类为()。A、抽象类B、派生类C、纯基类D、以上都不对17、下面关于友元得描述中,错误得就就是()。A、友元函数可以访问该类得私有数据成员B、一个类得友元类中得成员函数都就就是这个类得友元函数C、友元可以提高程序得运行效率D、类与类之间得友元关系可以继承18、下列运算符中,()运算符在C++中不能被重载。A、&&B、[]C、::D、new19、模板得使用实际上就就是将类模板实例化成一个()。A、函数B、对象C、类D、抽象类20、假定MyClass为一个类,则该类得拷贝构造函数得声明语句为()。A、MyClass(MyClassx)B、MyClass&(MyClassx)C、MyClass(MyClass&x)D、MyClass(MyClass*x)二、填空题(前16个空,每空1分,后2个空,每空2分,共20分)1、类和对象得关系可表述为:类就就是对象得,而对象则就就是类得。2、在C++中,三种继承方式得说明符号为、和,如果不加说明,则默认得继承方式为。3、如果只想保留公共基类得一个复制,就必须使用关键字把这个公共基类声明为虚基类。4、若要把voidfun()定义为类A得友元函数,则应在类A得定义中加入语句。5、类得静态成员分为和。6、运算符重载要求保持其原来得操作数个数、、和语法结构。7、通过关键字可以声明模板,通过关键字指定函数模板得类型参数,有几个类型参数就有几个类型关键字。8、列出C++中两种用户自定义得数据类型:、。9、构造函数得作用就就是。10、后置自增运算符“++”重载为类得成员函数(设类名为A)得形式为。三、阅读下面3个程序,写出程序运行时输出得结果:(共13分)1、#include<iostream>usingnamespacestd;voidfun(int&a,int&b){intp;p=a;a=b;b=p;}voidexchange(int&a,int&b,int&c){if(a<b)fun(a,b);if(a<c)fun(a,c);if(b<c)fun(b,c);}intmain(){inta=12,b=89,c=56;exchange(a,b,c);cout<<"a="<<a<<",b="<<b<<",c="<<c<<endl;return0;}2、#include<iostream>usingnamespacestd;classDate{public:Date(int,int,int);Date(int,int);Date(int);Date();voiddisplay();private:intmonth,day,year;};Date::Date(intm,intd,inty):month(m),day(d),year(y){}Date::Date(intm,intd):month(m),day(d){year=2009;}Date::Date(intm):month(m){day=1;year=2010;}Date::Date(){month=1;day=1;year=2010;}voidDate::display(){cout<<month<<"/"<<day<<"/"<<year<<endl;}intmain(){Dated1(12,31,2009);Dated2(12,31);Dated3(1);Dated4;d1、display();d2、display();d3、display();d4、display();return0;}3、#include<iostream>usingnamespacestd;classA{public:A(){cout<<"constructingA"<<endl;}~A(){cout<<"destructingA"<<endl;}};classB:publicA{public:B(){cout<<"constructingB"<<endl;}~B(){cout<<"destructingB"<<endl;}};classC:publicB{public:C(){cout<<"constructingC"<<endl;}~C(){cout<<"destructingC"<<endl;}};intmain(){Cc1;return0;}四、编程题(共27分)1、(10分)已知复数类plex得声明如下:classplex{public:plex();//无参构造函数plex(double);//转换构造函数plex(double,double);//有两个形参得构造函数friendplexoperator+(plex&,plex&);//对“+”运算符进行重载friendostream&operator<<(ostream&,plex&);//对“<<”运算符进行重载friendistream&operator>>(istream&,plex&);//对“>>”运算符进行重载private:doublereal,imag;};要求:(1)写出该类得所有构造函数得类外定义代码。(2)写出对运算符“+”、“<<”、“>>”进行重载得运算符重载函数得定义。2、(17分)下列Shape类就就是一个表示形状得抽象类,area()为求图形面积得函数,total()则就就是一个通用得用以求不同形状得图形面积总和得函数。classShape{public: virtualdoublearea()=0;};doubletotal(Shape*s[],intn){doublesum=0、0;for(inti=0;i<n;i++)sum+=s[i]->area();returnsum;}要求:(1)从Shape类派生圆类(Circle)、正方形类(Square),圆类新增数据成员半径(radius),正方形类新增数据成员边长(a),圆类和正方形类都有构造函数,修改、显示数据成员值得函数,求面积函数。(2)写出main()函数,计算半径为5、5得圆和边长为9、9得正方形得面积和(必须通过调用total函数计算)。
《面向对象程序设计C++》期末考试试卷(B)标准答案1-5、DACAD6-10、DBCDC11-15、DCBDB16-20、ADCCC二、1、抽象、实例2、public、private____、protected、private____3、virtual___4、friendvoidfun(A&a)_5、静态数据成员、静态成员函数6、结合性、优先级____7、Template、class(或typename)8、类、结构体___9、在创建对象时初始化对象得数据成员___10、Aoperator++(int)___三、1、a=89,b=56,c=122、12/31/200912/31/20091/1/20101/1/20103、constructingAconstructingBconstructingCdestructingCdestructingBdestructingA四、1、(10分)plex::plex(){real=0;imag=0;}plex::plex(doubler){real=r;}plex::plex(doubler,doublei){real=r;imag=i;}plexoperator+(plex&c1,plex&c2){plexc;c、real=c1、real+c2、real;c、imag=c1、imag+c2、imag;returnc;}ostream&operator<<(ostream&output,plex&c){output<<"("<<c、real<<"+"<<c、imag<<"i)"<<endl;returnoutput;}istream&operator>>(istream&input,plex&c){cout<<"inputrealandimaginarypartofplexnum
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年双方企业合作合同
- 2025畜禽产品购销结合合同范文版
- 生产设备订购合同协议
- 电子宠物买卖合同协议
- 电表招标合同协议书范本
- 生态林地出售合同协议
- 甲乙丙三方解除合同协议
- 生物质颗粒采购合同协议
- 电影投融资合同协议
- 瑜伽私教课合同协议
- 树立正确的婚恋观讲座课件
- 安徽省示范高中皖北协作区高三下学期第27届联考(一模)数学试题
- 急性阑尾炎中医护理查房
- 【罗兰贝格】2025全球医疗器械报告-创新与效率平衡之道
- 居间费用分配协议
- 《矿山安全生产治本攻坚三年行动(2025-2027年)实施方案》培训
- 2023-2024学年福建省福州市四年级(下)期中数学试卷
- SYB创业培训全案例解析成功创业之道
- 造纸工(工艺基础)职业资格知识考试题(附答案)
- 影像学 泌尿系统-朱叶青学习课件
- 头痛急症:原因与应对策略
评论
0/150
提交评论