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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

面向对象程序设计复习题纺院.docx

1、面向对象程序设计复习题纺院 面向对象程序设计 (复习题)一、填空题 1类是一种用户定义的类型,它由两大成员组成,其中用 数据 成员来描述同类事物的属性,用 函数 成员来描述它们的行为。2.C+语言面向对象程序设计有三大基本特性,其中二个是 继承 、 多态性(或数据封装) 。3.基类的私有成员 不能被 继承、保护成员 能被 继承、公有成员 能被 继承。4.利用一个现有的类来生成一个新类的机制称为 继承 。5.在C+中,函数的用法涉及到两个方面: 定义函数 是建立函数, 调用函数 是使用函数。6、 _ 析构函数 _是特殊的成员函数,在对象作用域结束时自动调用。7、友元关系是非传递的和_ 非对称的

2、_,除非特别声明,否则,通常情况下若F是A的友元,A_ 不是 _F的友元。8、运算符函数既可以重载为_ 成员 _函数,也可以重载为友元函数。9、在具有继承关系的类层次结构中,构造函数的执行顺序是:_基类 _、_ 类对象成员 _ _、 派生类 。10、 具有纯虚函数的类称为_ 抽象类 _。11、类的数据隐藏是通过定义成员为 private 或 protected 来实现。二、是非题 (回答“Y”或“N”)1、.构造函数的名字与类的名字相同。 (Y) 2、插入运算符不能重载。 ( N ) 3、.要实现动态联编,必须使用基类指针调用虚函数。( Y )4、cin是ostream类的对象。(N)5、类模

3、板就是模板类。( N )6、类模板就是模板类。( N ) 7、友员函数通过this指针访问对象成员。( N )8、构造函数的名字与类的名字相同。( Y )9、类的protected成员是不能被继承的。( N )10、运算符重载后其原有的基本语义不变。( Y )11.构造函数的名字不必与类的名字相同。 ( N ) 12.一个类的友员函数可以使用该类的私有成员。 ( Y ) 13.符号不能重载。 ( N ) 14.析构函数没有返回类型。 ( Y ) 15.类TEST的函数成员TEST(const TEST & obj)称为拷贝构造函数。 ( Y ) 16.类B继承了类A,二个类都有public成员

4、void show(),则派生类的void show()覆盖了基类的void show()。 ( Y ) 17.函数重载是动态绑定。 ( N ) 18.类模板不能直接生成对象。 ( Y ) 19.类属函数的实例化是隐式。 ( Y ) 三选择题 1. 下列虚基类的声明中,正确的是( D )。 A). class virtual D: public B B). virtual class D: public BC) class D: public B virtual D) class D: virtual public B 2下列关于运算符重载的描述中,( D )是正确的。A) 可以改变参与运算的

5、操作数个数 B) 可以改变运算符原来的优先级C) 可以改变运算符原来的结合性 D) 不能改变原运算符的语义3. 假设baseClass为抽象类,则下列( B )声明是正确的。A) baseClass fun(int); B) baseClass *bp;C) int fun(baseClass); D) baseClass obj;4下面对模板的声明中,正确的是( C )。 A) template B) templateC) template D) template5要求打开文件D:file.dat,可写入数据,正确的语句是:( D )A)ifstream infile(“D:file.dat

6、”,ios:in) B) ifstream infile(“D:file.dat”,ios:in)C)ofstream infile(“D:file.dat”,ios:out) D) fstream infile(“D:file.dat”,ios:in|ios:out) 6填空选择 #includeclass Basepublic: void print()cout”Base:print”endl;class Derived: public Base void print() _(B)_ ; /显式调用基类的函数print() cout”Derived:print”print()7下面的描述中

7、,正确的是( C )。 A) 虚函数是一个静态成员函数;B) 虚函数是一个非成员函数;C) 派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型;D) 虚函数可以在函数说明时定义,也可以在函数实现时定义。8.下面函数原型声明中,( B)声明了fun为纯虚函数。A)void fun()=0; B)virtual void fun()=0;C) virtual void fun(); D) virtual void fun() ;9.建立类模板对象的实例化过程为( C )。A)基类-派生类 B)构造函数-对象C)模板类-对象 D)模板类-模板函数10.在下列选项中,( A )不是ostrea

8、m类的对象。A)cin B) cerr C)clog D)cout 11. 假设SampleClass为抽象类,则下列( B )声明是正确的。A) SampleClass fun(int); B) SampleClass *bp;C) int fun(SampleClass); D) SampleClass obj;12下面对模板的声明中,正确的是( B )。 A) template B) templateC) template D) template13要求打开文件D:file.dat,可写入数据,正确的语句是:( D )A)ifstream infile(“D:file.dat”,ios:

9、in) B) ifstream infile(“D:file.dat”,ios:in)C)ofstream infile(“D:file.dat”,ios:out) D) fstream infile(“D:file.dat”,ios:in|ios:out) 14.下面对友元的错误描述是( D).A)关键字friend用于声明友元B)一个类中的成员函数可以是另一个类的友元。C)友元函数访问对象的成员不受访问特性的影响D)友元函数通过this指针访问对象成员15下列虚基类的声明中,正确的是( A )。 A). class B: virtual public A B). virtual class

10、 B: public AC) class B: public A virtual D) class virtual B: public A 16、不论派生类以何种方式继承基类,都不能使用基类的(B)A)public成员B)private成员C )protected成员D)public 和 protected成员17.下面函数原型声明中,( B)声明了show()为纯虚函数。A)void show()=0; B)virtual void show()=0;C) virtual void show(); D) virtual void show() ;18.在下列选项中,( A )不是ostrea

11、m类的对象。A)cin B) cerr C)clog D)cout 四、阅读程序,写出下列程序的运行结果1. #include template class base public: base(T i,T j)x=i; y=j; T sum()return x+y; private: T x,y; ;void main( ) base obj2(3.3,5.5); coutobj2.sum()endl; base obj1(3,5); coutobj1.sum()endl; 运行结果:8.882 . #includeclass counter public : void setnum ( in

12、t i ) num = i ; void shownum ( ) cout num t ; static int num ; ;int counter : num = 1 ; void main() int i ; for( i = 0 ; i 5 ; i + ) counter:num += i ; cout counter:num t ; coutendl;1 2 4 7 113. #includeusing namespace std;class A public : int f1(); int f2(); void setx( int m ) x = m ; cout x endl;

13、void sety( int n ) y = n ; cout y endl; int getx() return x ; int gety() return y ; private : int x, y ;int A:f1() return x + y ; int A:f2() return x - y ; int main() A a ; a.setx( 10 ) ; a.sety( 5 ) ; cout a.getx() t a.gety() endl ; cout a.f1() t a.f2() endl ;解答: 10 510 515 54. #include Template vo

14、id fun(T& x, T& y) T temp; temp=x; x=y; y=temp;void main() int i,j; i=10; j=20; fun(i,j); cout”i=”it”j=”jendl; double a,b; a=1.1; b=2.2; fun(a,b);cout”a=”at”b=”bendl;运行结果: i=20 j=10A=2.2 b=1.15.#includeclass point int x,y; public: point (int vx,int vy) x=vx; y=vy; point( ) x=0; y=0; point operator +

15、(point pl); point operator-(point pl); void print( ) coutx yn; ;point point:operator + (point pl) point p; p.x=x + pl.x; p.y=y + pl.y; return p; point point:operator - (point pl) point p; p.x=x - pl.x; p.y=y - pl.y; return p; void main( ) point pl(50,40), p2(30,10); p1.print(); p2.print()pl=pl - p2;

16、 pl.print( ); p2.print();程序的运行结果为:50 40 30 1020 30 30 107、#include class Apublic: A()a=5; void printa()coutA:a=aendl;private: int a; friend class B;class Bpublic: void display1(A t)t.a+; coutdisplay1:a=t.aendl; void display2(A t)t.a-; coutdisplay2:a=t.aendl;void main() A obj1; B obj2; obj1.printa();

17、 obj2.display1(obj1); obj2.display2(obj1); obj1.printa();程序的运行结果为:A:a=5display1:a=6display1:a=4A:a=59、#includeclass Base public: void abc()coutBase classendl;class Derived1: public Base public: void abc()coutDerived1 classendl;class Derived2: public Base public: void abc()coutDerived2 classabc(); p=

18、&obj2; p-abc(); p=&obj3; p-abc(); obj1.abc(); obj2.abc(); obj3.abc();运行结果:Base classBase classBase classBase classDerived1 classDerived2 class10、#include void main( ) double x=123.456;cout.width(10); cout.setf(ios:dec,ios:basefield); coutxendl;cout.setf(ios:left); coutxendl;cout.width(15); cout.setf

19、(ios:right,ios:left); coutxendl;cout.setf(ios:showpos); coutxendl;cout-xendl;运行结果: 123.456 123.456 123.456+123.456-123.45611、#include class vector public:vector()vector(int I,int j)x=I;y=j;friend vector operator +(vector v1,vector v2) vector tempvector; tempvector.x=v1.x+v2.x; tempvector.y=v1.y+v2.y

20、; return tempvector;void display() cout”(“x”,”y”)”endl;private: int x,y;void main() vector v1(1,2),v2(3,4),v3; cout”v1=”; v1.display();cout”v2=”; v2.display();v3=v1+v2; cout”v3=v1+v2=”;v3.display();执行结果为:v1 = (1, 2) v2 = (3, 4)v3 = v1+v2 = (4, 6)五编程题 1使用成员函数(或友员)函数编程序重载运算符“+”,使该运算符能实现两个字符串的连接。方法一:用友

21、员函数编程:#include#include#includeclass X char l100; public: void setchar()cout请输入字符串:endl;gets(l); friend X operator+( X & c1, X & c2);X operator +( X & c1, X & c2) strcat(c1.l,c2.l);cout两个字符串相加后为:c1.l;return c1; void main() X a;X b; a.setchar(); b.setchar(); a+b; 方法二:用成员函数编程:#include #include #include

22、 class ttchar r700;public: void operator +(tt f); void setchar() cout输入字符:endl; gets(r);void tt:operator +(tt f) strcat(r,f.r); cout两个字符串相加得:rendl;void main() tt d;tt s; s.setchar(); d.setchar(); d+s;2、编写一程序,定义一个圆类CIRCLE,它能提供计算面积和边长和平移圆心。#include iostream.h#define PI 3.1415926class CIRCLEpublic: CIR

23、CLE() m_x=0; m_y=0; m_r=0; CIRCLE(double x,double y,double r) m_x=x; m_y=y; m_r=r; void SetValue(double x,double y,double r) m_x=x; m_y=y; m_r=r; double Get_x() return m_x; double Get_y() return m_y; double Get_radius() return m_r; void move(double x,double y) m_x+=x; m_y+=y; double area() return m_

24、r*m_r*PI; double side() return 2*m_r*PI; private: double m_x,m_y,m_r;void main() CIRCLE a(16,20,30); a.move(-3,-10); cout圆形a的圆心:(a.Get_x(),a.Get_y()endl; cout圆形a的半径:a.Get_radius()endl; cout圆形a的面积:a.area()endl; cout圆形a的边长:a.side()endl;3定义一个Box(盒子)类,在该类定义中包括数据成员: length(长)、width(宽)和height(高);成员函数: 构造函

25、数Box,设置盒子长、宽和高三个初始数据;用函数volume 计算并输出盒子的体积。在main函数中,要求创建Box对象,并求盒子的体积。解答:#include using namespace std;class BOX public: BOX( double l, double w, double h ) length = l; width = w; height = h; void volume() cout volume= length * width * height endl; private: double length, width, height; ;int main() BO

26、X box1( 1,3,5 ); box1.volume(); BOX box2( 2,4,6 ); box2.volume(); 4、某学校对教师每月工资的计算规定如下:固定工资+课时补贴。教授的固定工资为5000元,每个课时补贴为50元;副教授的固定工资为3000元,每个课时补贴为20元;讲师的固定工资为2000元,每个课时补贴为20元。定义教师抽象类,派生不同职称的教师类,编写程序求不同职称教师的月工资。#include using namespace std;class teacher public: teacher( char tname,int time ) strcpy( name,tname ); coursetime = time; virtual int pay() = 0; virtual void print() = 0; char *getname() return name; int getc

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

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