77范文网 - 专业文章范例文档资料分享平台

c++面向对象复习题答案版(4)

来源:网络收集 时间:2019-06-05 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

第 16 页 共 22 页

5. #include class Pixel{ protected: int x,y; public: Pixel(int a,int b){x=a;y=b;} virtual void print() {cout<<\ virtual void move(int d); }; class Pixel_3d:public Pixel{ int z; public: Pixel_3d(int a,int b,int c):Pixel(a,b){z=c;} void print() {cout<<\} void move(int d); };

1. #include void main(void) { char string[]=\successful \ char *p=string; cout<print(); ptr=&d2; ptr->print(); ptr->move(5); ptr=&d1; ptr->print(); ptr=&d2; ptr->print(); } 6.去掉上题(即第5小题)程序中的 “ virtual”关键字,运行结果如何? 2. #include int main( ) { int x,y; cout<<\ cin>>x>>y; cout<<\ cout<<\cout<<”x*y=”< class Pixel{ int x, y; public: static int count; 4. #include class A{ int a; protected: int protect; 第 17 页 共 22 页

Pixel(){count++;} ~Pixel(){count--;} Pixel(const Pixel & obj) { x=obj.x; y=obj.y; count++; } }; int Pixel::count =0; int main(){ Pixel p[5]; cout<六.判断下面程序的主函数中语句①~⑩的对错。

第 18 页 共 22 页

#include class Base{ int a1; void seta1(int x){a1=x;} public: int a2; void seta2(int x){a2=x;} }; class DerivedB: protected Base{ protected: int b1, b2; void setb1(int x){b1=x;} public: void setb2(int x){b2=x;} }; class DerivedC: protected DerivedB{ int c1; void setc1(int x){c1=x;} public: int c2; void setc2(int y){c2=y;} void seta2(int y){Base::seta2(y);} void setb2(int y){b2=y;} }; int main(){ Base obja; DerivedB objb; DerivedC objc; obja.seta1(9); // ① objb.setb2 (4); // ② objc.setc2 (8); // ③ obja.a2=objb.b2+objc.c2;// ④ objb.setb1(18); // ⑤ objb.setb2(objc.c2);// ⑥ objc.Base::seta2(48);//⑦ objc.seta2(34); //⑧ objc.DerivedB::setb2(22);//⑨ objc.setb2(22); // ⑩ return 0; } //////////////答案如下:对√错× 题 ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ 答错 对 对 案 私有的 错 b2 保护的 错 对 私有的 错 对 错 对 seta2 保护的

五、程序设计

1. 修改下面给出的程序,但不允许对main( ) 函数在作任何修改,使程序能够在屏幕上输出:

锄禾日当午, 汗滴禾下土。 谁知盘中餐, 粒粒皆辛苦。 原来的程序为:

#include void main(void) {

cout<<\汗滴禾下土。\

第 19 页 共 22 页

}

答:修改后的程序如下: #include class A

{ public: A(){cout<<” 锄禾日当午,”<

cout<<” 粒粒皆辛苦。”<

}; A a;

void main(void) {

cout<<\汗滴禾下土。\ }

2定义一个抽象类Shape,在此基础上派生出类Rectangel和Circle,二者都有计算对象面积的函数GetGetArea(),计算对象周长的函数GetPerim( ),在主函数中定义一个Shape指针数组分别指向Rectangel和Circle的对象,并通过Shape类的指针数组实现对这两个对象的成员函数的调用,输出圆和矩形的面积和周长。

#include class Shape

{ public: virtual void GetGetArea()=0; virtual void GetPerim( )=0; };

class Rectangel:public Shape { int x, y;

public:Rectangel(int i, int j){x=i; y=j;}

void GetGetArea(){cout<<\ Area:\ void GetPerim( ){ cout<<\ Perim:\};

class Circle : public Shape { float r;

public :Circle (float i ){r=i; }

void GetGetArea(){cout<<\ Area:\ void GetPerim( ){ cout<<\ Perim:\};

第 20 页 共 22 页

void main() { Shape *p[];

Rectangel rec(7,9); Circle cir( 9.5);

P[0]=& rec; p [0]-> GetGetArea(); p [0]-> GetPerim( ); P[1]=& cir; p [1]-> GetGetArea(); p[1]-> GetPerim( ); }

3. 定义一个字符串类String,有两个私有数据成员:char* content和int len;要求:

1)在构造函数中提示用户输入字符串;

2) 用户能提取和显示字符串;(分别由两个函数完成) 3)实现对字符串中所有小写字母变成大写,并显示。

4)在主函数中定义String类的对象,并对所有成员函数进行测试。 注意内存的分配与释放。

4.请编写程序声明一个基类Employee,从它派生出类Technician,在主函数中将一个动态分配的Technician的对象地址赋值给一个Employee的指针,然后通过指针释放对象空间。可以不声明数据成员,但要声明适当的析构函数释放内存。 #include class Employee { };

class Technician:public Employee { }; void main()

{ Employee *p=new Technician; delete p; }

5. 一圆型游泳池如图所示,现在需在其周围建一圆型过道,并在其四周围上栅栏。栅栏价格为20元/米,过道造价为15元/平方米。过道宽度为4米,游泳池半径由键盘输入。要求编程计算并输出过道和栅栏的造价。

游泳

过道 #include class Shape

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库c++面向对象复习题答案版(4)在线全文阅读。

c++面向对象复习题答案版(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/649086.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: