面向对象程序设计复习题.docx
- 文档编号:12014138
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:38
- 大小:23.07KB
面向对象程序设计复习题.docx
《面向对象程序设计复习题.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计复习题.docx(38页珍藏版)》请在冰豆网上搜索。
面向对象程序设计复习题
面向对象程序设计复习题
一、概念填空题
1.运算符能够用来访问与局部变量同名的全局变量。
2.运算符动态分配一个对象。
3.类的成员只能被该类的成员函数或友元函数访问。
4.类成员的默认访问模式是的。
5.类的数据成员是该类的所有对象共享的信息。
6.关键字指定了不可修改的对象或变量。
7.要在类的对象上使用运算符,除了运算符和外,其它的必须都要被重载。
8.重载不能改变原运算符的、、和对内部类型对象的原有含义。
9.类的对象可作为类的对象处理。
10.友元函数中可以直接访问类的和成员。
1l.公有成员函数的集合常称为类的函数。
私有成员函数的集合常称为类的函数。
12.为了访问某个类的私有数据成员,必须在该类中声明该类的。
13.提供了一种描述通用类的方法。
14.运算new分配的内存要用运算符回收。
15.参数表示重载后缀++运算符函数。
16.当用受保护的继承从基类派生一个类时,基类的公有成员成为派生类的
的成员,基类的受保护成员成为派生类的成员。
17.在C++中,关键字、和用来建立新的数据类型。
18.限定符用来声明只读变量。
19.函数能够定义一个在不同数据类型基础上完成同一任务的函数。
20.指向基类对象的指针可以指向其派生类的对象,但是不允许指向其派生类的对象。
答案:
1:
:
2new3私有和保护4私有5静态6const7=&
8优先级结合性操作数个数9派生类基类10私有受保护
11接口工具12友元13类模板14delete15int
16受保护受保护17classstructunion18const
19模板20公有私有和保护
二、阅读程序写结果
1.#include
voidmain()
{
inta(6),b(8),c;
c=(a>b?
++a:
b-=2);
cout< c=(a-b? a+b: a-6? b: a-6); cout< } 输出结果: 答案: 输出结果: 6,6,6 6,6,0 2.#include voidmain() { inti,j; for(i=11;i<=20;i+=2) { for(j=2;j if(i%j==0) break; if(j! =i) cout< } cout< } 输出结果: 答案: 1214151618 3.#include #include intf(intp); voidmain() { inta[]={1,2,3,4,5}; for(inti=0;i<5;i++) cout< cout< } intf(intp) { staticints=1; s*=p; returns; } 输出结果: 12624120 4.#include intf(int*p); voidmain() { inta[]={1,2,3,4,5} for(inti=0;i<4;i++) cout< cout< } intf(int*p) { staticints=0; s+=*p; returns; } 输出结果: 1361015 4. #include voidmain() { inta[5],x,i=0; do { cin>>x; if(x%2==0) { a[i]=x; i++; } }while(i<5); for(i=0;i<5;i++) cout< cout< } 输入: 165820710 输出结果: 682010 5.#include classmyclass { private: inta,b; staticints; public: myclass(inti,intj) { a=i;b=j; cout<<"Constructor.\n"; } ~myclass() { cout<<"Destructor.\n"; } voidsum() {s+=a*b;} voidprint() { cout< } }; intmyclass: : s=0; voidmain() { myclass*a1,*a2; a1=newmyclass(1,1); a2=newmyclass(10,20); (*a1).sum(); (*a2).sum(); a1->print(); a2->print(); deletea1; deletea2; } 输出结果: Constructor. Constructor. 1,1sum=201 10,20sum=201 Destructor. Destructor. 6. #include classDate { private: intyear; intmonth; intday; public: Date(inty,intm,intd) { year=y; month=m>0&&m<13? m: 0; switch(month) { case0: d=0;break; case1: case3: case5: case7: case8: case10: case12: day=(d>0&&d<32? d: 0);break; case4: case6: case9: case11: day=(d>0&&d<31? d: 0);break; case2: day=(isleapyear()? (d>0&&d<30? d: 0): (d>0&&d<29? d: 0));break; } } intisleapyear() { return! (year%4! =0||year%400==0&&year%100! =0); } voidprint() { if(year<0) cout<<"公元前"<<-year<<"年"; else cout<<"公元"< if(month) cout< else cout<<"月份不详! "; if(day) cout< else cout<<"日期不详! "; cout< } }; voidmain() { Dated1(1949,10,1),d2(2004,2,29),d3(-996,4,31); d1.print(); d2.print(); d3.print(); } 输出结果: 公元1949年10月1日 公元2004年2月29日 公元前996年4月日期不详! 7.#include classA { private: inta,b; public: A(inti,intj) {a=i;b=j;} voidmove(intm,intn) { a+=m; b+=n; } voidshow() { cout<<"("< } }; classB: publicA { private: intx,y; public: B(inti,intj,intk,intl): A(i,j) {x=k;y=l;} voidshow() {cout< voidfun(){move(30,50);} voidf1(){A: : show();} }; voidmain() { Ae(10,20); e.show(); Bb(30,40,50,60); b.fun(); b.show(); b.f1(); } 输出结果: (10,20) 50,60 (60,90) 8.#include classB{ private: intY; public: B(inty=0){Y=y;cout<<″B(″< ~B(){cout<<″~B()\n″;} voidprint(){cout< }; classD: publicB{ private: intZ; public: D(inty,intz): B(y) {Z=z; cout<<″D(″< } ~D(){cout<<″~D()\n″;} voidprint(){ B∶∶print(); cout< } }; voidmain() {Dd(11,22); d.print(); } 输出结果: B(11) D(11,22) 112 ~D() ~B() 9. #include classPoint { private: intxcord,ycord; public: Point(intx,inty) {xcord=x;ycord=y;} voidmove(intx1,inty1) { xcord+=x1; ycord+=y1; } voidshow() { cout<<"("< } }; classCircle: publicPoint { private: intradius; public: Circle(intx,inty,intr): Point(x,y) {radius=r;} voidshow() {cout<<"圆心坐标: ";Point: : show();cout<<"半径: "< }; voidmain() { Circlec(10,20,5); c.show(); c.move(-5,5); c.show(); } 输出结果: 圆心坐标: (10,20)半径: 5 圆心坐标: (5,25)半径: 5 10.#include classA { private: doubleX,Y; public: A(doublexx=0,doubleyy=0) {X=xx;Y=yy; cout<<″构造函数被调用(″< } A(A&p){X=p.X;Y=p.Y;} }; Af() {Aa(1,2); returna; } voidmain() {Aa(4,5);Ab(a); b=f(); } 输出结果: 构造函数被调用(4,5) 构造函数被调用(1,2) 11.#include classA{ public: virtualvoidf(){cout<<″A: : f()\n″;} }; classB: publicA { private: char*buf; public: B(inti){ buf=newchar[i]; } voidf(){ cout<<″B: : f()\n″; } ~B(){delete[]buf;} }; voidmain() {A*a=newA; a->f();deletea; a=newB(15);a->f(); } 输出结果: A: : f() B: : f() 12.#include voidmain() {inta[9]={1,2,3,4,5,6,7,8,9}; for(inti=0;i<9;i++){
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 复习题