ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:65.34KB ,
资源ID:7761221      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7761221.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(面向对象程序设计C++A卷答案.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

面向对象程序设计C++A卷答案.docx

1、面向对象程序设计C+A卷答案题号一二三四五总分核分人得分得分评卷人一、选择题(每题2分,共20分)1、已知函数f的原型是:void f(int *a, long &b); 变量v1、v2的定义是:int v1; long v2;,正确的调用语句是( C )。 A) f(v1, &v2); B) f(v1, v2); C) f(&v1, v2); D) f(&v1, &v2);2、下列描述中,( C )是错误的。A) 内联函数主要解决程序的运行效率问题B) 内联函数的定义必须出现在内联函数第一次被调用之前C) 内联函数中可以包括各种语句D) 对内联函数不可以进行异常接口声明3、下列关于类和对象的

2、叙述中,错误的是( A )。 A) 一个类只能有一个对象B) 对象是类的具体实例C) 类是对某一类对象的抽象D) 类和对象的关系是一种数据类型与变量的关系4、( C )不是构造函数的特征。 A) 构造函数的函数名与类名相同 B) 构造函数可以重载 C) 构造函数不可以设置缺省参数 D) 构造函数无须指定类型说明5、友元的作用是(A)。A) 提高程序的运用效率 B) 加强类的封装性C) 实现数据的隐藏性 D) 增加成员函数的种类6、下列关于运算符重载的叙述中,正确的是( B )。A) 通过运算符重载,可以定义新的运算符B) 有的运算符只能作为成员函数重载C) 若重载运算符+,则相应的运算符函数名

3、是+D) 重载二元运算符时,必须声明两个形参7、设置虚基类的目的是( B )。A) 简化程序 B) 消除二义性 C) 提高运行效率 D) 减少目标代码8、已知在一个类体中包含如下函数原型:Volumeoperator-(Volume)const;,下列关于这个函数的叙述中,错误的是( B )。A) 这是运算符-的重载运算符函数B) 这个函数所重载的运算符是一个一元运算符C) 这是一个成员函数D) 这个函数不改变类的任何数据成员的值9、关于子类型的描述中,(A)是错误的。A) 子类型就是指派生类是基类的子类型;B) 一种类型当它至少提供了另一种类型的行为,则这种类型是另一种类型的子类型;C) 在

4、公有继承下,派生类是基类的子类型;D) 子类型关系是不可逆的。10、下列是模板声明的开始部分,其中正确的是( C )。 A)template B)template C)template D)template得分评卷人二、判断题(每题1分,共10分)1、C+语言引入类主要起两个作用:数据封装和类型定义。2、只要是类M继承了类N,就可以说类M是类N的子类型。3、构造函数可以声明为虚函数。4、多继承情况下,派生类的构造函数的执行顺序取决于成员初始化列表中的顺序。5、重载函数必须有不同的参数列表。6、用new动态分配的内存是在堆中分配的,而不是在栈中分配的。7、关系运算符可以用来比较两个字符的大小,也

5、可用来比较两个字符串的大小。8、如果一个成员函数只存取一个类的静态数据成员,则可将该成员函数说明为静态成员函数。9、通过使用不同的类型参数,函数模板可以生成不同类型的函数。10、在私有继承中,基类中只有公有成员对派生类是可见的。得分评卷人三、填空题(每题2分,共20分)1、任何类中允许有三种访问权限的数据,这三种访问权限分别是public、private、protected ,默认访问权限为 private(或私有) 。2、类Sample的构造函数将形参data赋值给数据成员data。请将类定义补充完整。classSamplepublic:Sample(intdata=0);private:i

6、ntdata;Sample:Sample(intdata) this-data=data; 3、设px是指向一个类动态对象的指针变量,则执行“deletepx”语句时,将自动调用该类的 析构 函数。4、当一个函数或一个类希望能够直接访问另一个类中的非公用成员时,应该将该函数或该类声名为另一个类的 友元函数 或 友元类 。5、在MyClass类的定义中,对赋值运算符=进行重载。请将画线处缺失的部分补充完整。MyClass&MyClass:operator=(constMyClass&rhs)if(this = = &rhs)return*this;value=rhs.value;return*t

7、his;6、设A为test类的对象且赋有初值,则语句testB(A);表示 用已经存在的对象A初始化正在被创建的同类新对象B 。7、函数重载时要求同名函数的参数 类型 或 个数 不同,否则无法确定是哪个函数。8、从实现的角度划分,C+所支持的两种多态性分别是 编译 时的多态性和运行时的多态性。实现运行时多态,要使用虚 函数。9、带有 纯虚函数 的类称为抽象类,抽象类的特征是不能声明一个抽象类的对象 ,但可以声明一个抽象类的指针或引用。10、一个 类模板允许用户为类定义一种模式,使得类中某些数据成员、某些成员函数的参数和返回值能取任意数据类型。得分评卷人四、程序阅读题(每题5分,共10分)1、写

8、出执行下面程序的输出结果。9SS9S#includeusingnamespacestd;classAinta;public:A( ): a(9)virtualvoidprint( )constcouta;classB: publicAcharb;public:B( )b=S;voidprint( ) constcoutprint();show(d1);show(d2);return0;2、写出执行下面程序的输出结果。#includeusingnamespacestd;class Partpublic: Part() coutclass Partendl; ;class A public:A(c

9、har *s) coutsendl; A() ; class B: virtual public A public: B(char *s1, char *s2):A(s1) couts2endl; ; class C: virtual public A public: C(char*s1,char *s2):A(s1) couts2endl; ; class D: public C, public B Part p; public: D(char *s1, char *s2,char *s3, char *s4):B(s1,s2), C(s1,s3), A(s1) couts4endl; ;

10、int main() D *p=new D(class A, class B, class C, class D);delete p;return 0;结果:class Aclass Cclass Bclass Partclass D得分评卷人五、程序改错题(每个错误2分,共10分)有一个源程序文件proj.cpp,其中编号为、的语句有错误,请修改这些错误。源程序文件proj.cpp清单如下:#include using namespace std;#include class CBook private:char *p_book;public: void CBook(const char *

11、p_val) - 去掉voidp_book = new charstrlen(p_val)+1;strcpy(p_book, p_val);void print( ) const;CBook( ) delete p_book; - 去掉;int main()char book_title60;CBook *p_book_obj; cout book_title;CBook abook; - 改成CBook abook(book_title);p_book_obj = &abook;p_book_obj.print();- 改成p_book_obj-print();return 0; void

12、print( ) const - 改成void CBook:print( ) const cout p_book endl; 得分评卷人六、程序设计题(共30分)1、(15分)编写一个实现两个数交换的函数模板swap,然后使用该函数模板再编写一个对具有n个数组元素(通用类型)的数组采用冒泡排序算法进行排序的函数模板。2、(15分)编写一个程序计算“三角形(triangle)、正方形(square)、圆形(circle)”三种图形的面积,要求:(1)抽象出一个基类Base,在其中说明一个虚函数用来求面积;(2)利用派生类定义三角形、正方形、圆形;(3)编写主函数并测试。1、#include us

13、ing namespace std;template void swap(T &a, T &b) T temp;temp = a; a = b; b = temp;template void bubbleSort(T a, int n) int i, j; for (i=1; i n; i+) for (j=0; j aj+1) swap(aj, aj+1); template void print(T1 a, int n) for (int i=0; i n; i+) cout ai ; cout endl; int main() int a = 2, 3, 1, 6, 43, 22; do

14、uble b = 2.3, 3.2, 1.6, -6.0, 4.3, 2.2; print(a, 6); bubbleSort(a, 6);print(a, 6); print(b, 6); bubbleSort(b, 6); print(b, 6); return 0;2、classBasepublic:doublearea(doubles=0);classTriangle: publicbasedoubleD,H;public:Triangle(doubled=0,doubleh=0)D=d;H=h;doublearea()doubles;s=(D*H)/2;returns;voiddis

15、play()cout三角形的底和高:D H endl;cout三角形的面积:area()endl; ;classSquare: publicbasedoubleL;public:Square(doublel=0)L=l;doublearea()doubles;s=L*L;returns;voiddisplay() cout正方形的边长为:Lendl;cout正方形的面积为:area()endl;classCircle: publicbasedoubleR;public:Circle(doubler=0)R=r;doublearea()doubles;s=3.14*R*R;returns;voiddisplay() cout圆的半径:Rendl;cout圆形的面积为:area()endl; ;int main() Shape *p=NULL; Triangle t(3,4,5); Square s(2);Circle c(3);p=&t;cout三角形的面积为:area()endl; p=&s;cout正方形的面积为:area()endl;p=&c;cout圆的面积为:area()endl; return 0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1