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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C++面向对象程序设计复习练习试题带答案3Word格式文档下载.docx

1、 void Make() k = i * j; int main() B b(1, 2, 3); return 0;则上述定义中,( ) 是非法的表达式.A) k=i*j; B) int k; C) return i; D) void Make( ) 9若有以下程序:#include using namespace std; public: int a; A() a =10;class A1: public A1 A1() a = a + 1; class A2: public A A2() a = a + 2; public A1, public A2 B() void Print() co

2、ut a endl; B obj; obj.Print();则程序运行后的输出结果为:A) 产生语法错误 B) 13 C) 12 D)1010在下面的4个关键字中,( ) 是用来说明虚函数的。A) virtual B)public C)protected D)private 11实现运行时的多态要使用( )。A) 重载函数 B) 析构函数 C) 构造函数 D) 虚函数 12如果一个类至少有一个纯虚函数, 那么该类称为( )。A) 抽象类 B) 虚基类 C) 派生类 D) 以上都不对 13cin是某个类的标准对象,该类是( )。A) ostream B) istream C) stdout D)

3、 stdin 14调用一个成员函数时,使用动态联编的情况是( )。A) 通过对象调用一虚函数 B) 通过指针或引用调用一虚函数 C) 通过对象调用一静态函数 D) 通过指针或引用调用一静态函数15假定CTest为一个类,并且有一无默认值的有参构造函数和一无参构造函数,则执行“CTest objTest;”语句时将自动调用该类的( )。 A) 有参构造函数 B) 无参构造函数 C) 拷贝构造函数 D) 赋值重载函数 二、判断正误题(本大题共5小题,每小题2分,共10分) 1在用class定义一个类时, 数椐成员和成员函数默认的访问权限是public。2若类Y是类X的私有派生类, 类Z是类Y的公有

4、派生类, 则类Z不能访向类X的公有成员和保护成员。3C+中设置虚基类的目的是实现运行时的多态。4模板类与类模板的意义完全相同。5只有常成员函数才可以操作常对象。三、填空题(本大题共5小题,每小题2分,共10分) 1类的具体表现是通过创建 来操作的。2假定AB为一个类,则执行“AB a10;”语句时,系统自动调用该类的构造函数的次数为 。3使用函数模板的方法是先说明函数模板,然后实例化成相应的 进行调用 执行。4拷贝构造函数用它所在类的 作为参数。5重载运算符“class A int a;A(int aa = 0 ) a = aa; cout A(): ; int b; B(int aa = 0

5、, int bb = 0): A(aa) b = bb;B(): b B x(5), y(6,7);输出结果为:2若有以下程序:class Point int x, y; Point(int m = 0, int n = 0) x = m; y = n; void Show() cout x= x , y= y Show(); delete p;3若有以下程序:class Sample int n; Sample(int i) n = i; s += n; static int s; s int Sample:s = 0; Sample a(2), b(5), c(8); c.Show();4

6、若有以下程序:1:n= n ,; void Print( ) const cout 2: Sample a(10); const Sample b(20); a.Print(); b.Print();5若有以下程序:class Test int x; void Setx(int i) x = i; int Putx() return x; Test *p; Test a3; a0.Setx(5); a1.Setx(6); a2.Setx(7); for( int j = 0; j 3; j+) p = &aj;Putx() cout 7若有以下程序:class Base void Fun()

7、cout 12 Derived a; Base *p; p = &a; (*p).Fun(); a.Fun();8. 下列程序的输出结果为 template class FF TT a1,a2,a3; FF(TT b1,TT b2, TT b3) a1 = b1; a2 = b2; a3 = b3; TT Sum() return a1 + a2 + a3; FF x(2, 3, 4), y(5, 7, 9); cout x.Sum( ) y.Sum() 六、 编程题(本大题共2小题,每小题10分,共20分)1设计一个类Rect,要求如下:(1)该类中的私有数据成员length,width存放

8、它的长和宽,并且设置它们的默认值是0。(2)通过成员函数设置其长和宽,并确保长和宽都在(0,50)范围之内。(3)实现求周长函数GetPerimeter()。2定义一个二维座标类Vector2d, 二个数据成员为double型x, y 为private属性。定义代二个参数的构造函数和一个Show( ) 函数用以输出x, y的值, 另外作为成员函数重载的运算苻”+”的功能是将此类二个对象的数据成员x和y对应相加。这些成员函数的属性均为public. 请用C+编写此程序, 并编写测试程序进行测试。C+面向对象程序设计模拟试题六参考答案一、单项选择题1D) 2D) 3A) 4C) 5D)6B) 7D

9、) 8A) 9A) 10A).11D) 12A) 13B) 14B) 15B) 二、判断正误题1参考答案:“”2参考答案:”3参考答案:“”4参考答案:”5参考答案:“”三、 填空题对象2参考答案:10 3参考答案:模板函数4参考答案:引用5参考答案:operator 四、程序分析题(本大题共8小题,每小题3分,共24分)给出下面各程序的输出结果。1输出结果为: 5 0 6 72输出结果为: x=1, y=68 3输出结果为: 15 4输出结果为:n=10,2:n=205输出结果为:5,6,7 6程序的输出结果为:2 7程序的输出结果为:1 28程序的输出结果为:9 211参考程序:class

10、 Rect private: double length, width; Rect(double l = 0, double w = 0): length(l), width(w) void Set(double l, double w) if (length = 50 | width = 50 ) throw 数据不在指定范围(0,50)! / 抛出异常 length = l; width = w; double GetPerimeter() return 2 * (length + width); try / 检查异常 Rect obj(1, 8);周长: obj.GetPerimeter

11、() catch (char *str) / 捕捉异常 / 处理异常异常信息: str class Vector2d double x, y; Vector2d(double a, double b): x(a), y(b) Vector2d operator+(Vector2d &obj);Vector2d Vector2d:operator+(Vector2d &obj) return Vector2d(x + obj.x, y + obj.y); Vector2d d1(3.5, 4.5), d2(2.5, 5.5), d3(0.0, 0.0); d3 = d1 + d2; d3.Sho

12、w();C+面向对象程序设计模拟试题七一、选择题(每小题2分,共40分)1、C+是( )。 A. 面向对象的程序设计语言 B. 面向过程的程序设计语言 C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言 D. 非结构化的程序设计语言2、面向对象程序设计思想的主要特征中不包括( )。A. 封装性 B. 多态性 C. 继承性 D. 功能分解,逐步求精3、若定义:string str; 当语句cinstr; 执行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是str=( )。A. Microsoft Visual Studio 6.0! B. Mi

13、crosoftC. Microsoft Visual D. Microsoft Visual Studio 6.04、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z=*);下面函数调用中,不合法的是( )。A. testDefaulParam(5); B. testDefaulParam(5,8);C. testDefaulParam(5,# D. testDefaulParam(0,0,5、下列语句中,将函数int sum(int x, int y)正确重载的是( )。A. float sum(int x, int y); B. i

14、nt sum(int a, int b);C. float sum(float x, float y); D. double sum(int y, int x);6、下列表示引用的方法中,( )是正确的。已知:int a=1000;A. int &x=a; B. char &y; C. int &z=1000; D. float &t=&7、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用( )。A. 内联函数 B. 重载函数 C. 递归调用 D. 嵌套调用8、下列有关C+类的说法中,不正确的是( )。A. 类是一种用户自定义的数据类型B. 只有类中的成员函数或类

15、的友元函数才能存取类中的私有成员C. 在类中,如果不做特别说明,所有成员的访问权限均为私有的D. 在类中,如果不做特别说明,所有成员的访问权限均为公用的9、已知X类,则当程序执行到语句:X array3;时,调用了( )次构造函数。A. 0 B. 1 C. 2 D. 310、下面说法中,正确的是( )A. 一个类只能定义一个构造函数,但可以定义多个析构函数B. 一个类只能定义一个析构函数,但可以定义多个构造函数C. 构造函数与析构函数同名,只要名字前加了一个求反符号()D. 构造函数可以指定返回类型,而析构函数不能指定任何返回类型,即使是void类型也不可以11、已知:print( )函数是一

16、个类的常成员函数,它无返回值,下列表示中,( )是正确的。 A. void print( ) const; B. const void print( ); C. void const print( ); D. void print(const);12、下面描述中,表达错误的是( ) A. 公用继承时基类中的public成员在派生类中仍是public的B. 公用继承时基类中的private成员在派生类中仍是private的C. 公用继承时基类中的protected成员在派生类中仍是protected的D. 私有继承时基类中的public成员在派生类中是private的13、设置虚基类的目的是(

17、)。A. 简化程序 B. 消除二义性 C. 提高运行效率 D. 减少目标代码14、下面( )的叙述不符合赋值兼容规则。A. 派生类的对象可以赋值给基类的对象B. 基类的对象可以赋值给派生类的对象C. 派生类的对象可以初始化基类的对象D. 派生类的对象的地址可以赋值给指向基类的指针15、关于虚函数的描述中,( )是正确的。 A. 虚函数是一个static类型的成员函数 B. 虚函数是一个非成员函数 C. 基类中说明了虚函数后,派生类中与其对应的函数可不必说明为虚函数 D. 派生类的虚函数与基类的虚函数具有不同的参数个数和类型16、下面关于友元的描述中,错误的是( )。A. 友元函数可以访问该类的

18、私有数据成员B. 一个类的友元类中的成员函数都是这个类的友元函数C. 友元可以提高程序的运行效率D. 类与类之间的友元关系可以继承17、下列关于静态数据成员的说法,不正确的是( )。A. 类中定义的公用静态数据成员,可以通过类的对象来访问B. 类中定义的所有静态数据成员,都必须在类外初始化C. 静态数据成员不是所有对象所共用的D. 普通的成员函数可以直接访问类中的静态数据成员18、如果表达式+i*k中的“+”和“*”都是重载的友元运算符,若采用运算符函数调用格式,则表达式还可以表示为( )。A. operator*(i.operator+(),k) B. operator*(operator+

19、(i),k)C. i.operator+().operator*(k) D. k.operator*(operator+(i)19、下面对模板的声明,正确的是( )。A. template B. templateC. template D. template20、下列的各类函数中,( )不是类的成员函数A. 构造函数 B. 析构函数 C. 友元函数 D. 复制构造函数二、填空题(前14个空,每空1分,后3个空,每空2分,共20分)1、类和对象的关系可表述为:类是对象的 ,而对象则是类的 。2、静态成员函数没有隐含的 ,所以,在C+程序中,静态成员函数主要用来访问静态数据成员,而不访问非静态成员

20、。3、在图1中,A,B,C,D,E,F均是类,其中属于单继承的派生类有 ,属于多继承的派生类有 ,类F的基类有 ,类A的派生类有 。4、如果只想保留公共基类的一个复制,就必须使用关键字 把这个公共基类声明为虚基类。5、从实现的角度来讲,多态性可以划分为两类: 和 。6、如果一个类包含一个或多个纯虚函数,则该类称为 。7、若要把void fun()定义为类A的友元函数,则应在类A的定义中加入语句 。8、列出C+中的两种代码复用方式:9、析构函数的作用是 。10、假定A是一个类名,则该类的拷贝构造函数的原型说明语句为: 。11、后置自增运算符“+”重载为类的成员函数(设类名为A)的形式为:三、阅读下面4个程序,写出程序运行时输出的结果。(共13分)1、#includevoid fun(int &a, int &b) int p; p=a; a=b; b=p;void exchange(int &b, int &c) if( ab ) fun(a, b); if( ac

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

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