面向对象程序设计编程题复习及其答案.docx

上传人:b****0 文档编号:10037516 上传时间:2023-05-23 格式:DOCX 页数:35 大小:20.95KB
下载 相关 举报
面向对象程序设计编程题复习及其答案.docx_第1页
第1页 / 共35页
面向对象程序设计编程题复习及其答案.docx_第2页
第2页 / 共35页
面向对象程序设计编程题复习及其答案.docx_第3页
第3页 / 共35页
面向对象程序设计编程题复习及其答案.docx_第4页
第4页 / 共35页
面向对象程序设计编程题复习及其答案.docx_第5页
第5页 / 共35页
面向对象程序设计编程题复习及其答案.docx_第6页
第6页 / 共35页
面向对象程序设计编程题复习及其答案.docx_第7页
第7页 / 共35页
面向对象程序设计编程题复习及其答案.docx_第8页
第8页 / 共35页
面向对象程序设计编程题复习及其答案.docx_第9页
第9页 / 共35页
面向对象程序设计编程题复习及其答案.docx_第10页
第10页 / 共35页
面向对象程序设计编程题复习及其答案.docx_第11页
第11页 / 共35页
面向对象程序设计编程题复习及其答案.docx_第12页
第12页 / 共35页
面向对象程序设计编程题复习及其答案.docx_第13页
第13页 / 共35页
面向对象程序设计编程题复习及其答案.docx_第14页
第14页 / 共35页
面向对象程序设计编程题复习及其答案.docx_第15页
第15页 / 共35页
面向对象程序设计编程题复习及其答案.docx_第16页
第16页 / 共35页
面向对象程序设计编程题复习及其答案.docx_第17页
第17页 / 共35页
面向对象程序设计编程题复习及其答案.docx_第18页
第18页 / 共35页
面向对象程序设计编程题复习及其答案.docx_第19页
第19页 / 共35页
面向对象程序设计编程题复习及其答案.docx_第20页
第20页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

面向对象程序设计编程题复习及其答案.docx

《面向对象程序设计编程题复习及其答案.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计编程题复习及其答案.docx(35页珍藏版)》请在冰点文库上搜索。

面向对象程序设计编程题复习及其答案.docx

面向对象程序设计编程题复习及其答案

《面向对象程序披廿》复习題

1、(C++的输人綸出)天猫优惠券,我就要券.591q.

定义一个函Umax,实现输入两f数a、b,比较并U小到大输岀。

2、(函数的重载)

(1)定义一个带两个参数的函Umax,输岀最大值。

(2)B定义一个带三个参数的函Umax,输岀最大值。

(3)主函数测试之。

3、(有默认参数的函数)

将题2用带默认参数的函数实现。

4、(变量的引用)

(1)定义一个swapl函数,以普通形参传人两个变量a、b,互换a、b的值。

(2)定义一个swap2函数,以指针形参传人两f变量a、b,互换a、b的值。

(3)定义一个swap3函数,以引用形参输人两个变量a、b,互换a、b的值。

(4)主函数定义两个变量x、y传人三个函数,观察x、y值前后的变化。

5、(类的定义)

定义一个student类,数据成员包祐:

学号num,name,年Rage,tf别sex,成员函数色扌舌:

(1)set函数,建盘输人学号,,年龄,性别

(2)display函数,输出学生信息。

6、(沟造函数和折构函数)

定义一个student类,数据成员包牯:

学号num,name,年ftage,ft别sex,成员函nets:

(1)沟造函数,初始化学号,,年龄,II别

(2)display函数,输岀学生信息。

(3)析梅函数,输出学生学号。

(4)主函数定义名个对象,并注恿构造函数和折沟函数的调用顺序。

7、(沟造函数的重颈)

在題6基础上增加一彳、默认构造函数,实现构造函数的重我

8、将题6用带默认参数的构造函数实现。

9、(对象数组和对象的动态建立)

在題8基础上,实现如下壬函数:

(1)在主函数中定义一个包含三个学生的数组,并初始化之。

(2)在主函数中定义一个student类指针p并用newg算符分配动态存

(3)用deleteN除p指向的动态存。

(4)观察梅造函数和折沟函数的调用。

10、(复制构造函数)

在题8基础上新増加一个夏制沟造函数,并主函数新増夏制沟造对象。

11、(静态成员)

定义一个student类,数据成员包牯:

学号num,name,U?

绩score,累加总分sum,累廿人数count。

成员函数內括:

构造函数貌廿人数count;

(1)非静态成员total函数,求sumo

(2)静态成员average函数,求平血成绩。

(3)主函数定义色含3个学生的数组,求三个学生的平均成绩。

12、(友元函数)

定义一个Time类,松有数据成员:

时hour、分minute、秒second成员函数:

构造函数Time()

定义一个更元函数display,使之前问秋有成员输岀时分枚。

13、(运算符重载)

(1)定义一个复数类,实现对“+”,》,<<的重裁,使之可实现以下主函数。

intmain()

{

plexa(3,4),b(1,2),c,d,e,f;

c=a+b;

d=a+5;

e=3+b;

cin»f;

cout«f«endl;

return0;

I

(2)定义一个Time类,实现对“++”的前缀、后缀重裁。

P134

i++:

单目运算符天猫优惠券,我就要券.591q.

14、(单址;承及派生类构造函数)

(1)定义一个person类,数据成员fifi:

name,年龄age,性别sex

成员函数:

枸造函数及display函数

(2)定义一个派生类student,公有墨承与person类,新贈成员:

专tmajor,人

学日期enterdate(Date类自定义)。

(3)主函数定义student对象,各类构造函数的啣用顺序。

15、(多抵承)

在14g基础上由person类再盪生岀teacher类,新増成员:

职称title,I资wage

16、(虚擁承)

由student类和teacher类共同派生出graduate类,新増成员:

年级grade,将person类定义成虛基类,实观用虛進承解决二义性。

17、(抽象类及多态性)

定义一个抽象基类Shape,由它派生岀5个派生类,Circle(圆形)、Square(正方形)、Rectangle(矩形)、Trapezoid(悌形)、Trian°el(三角形)。

用虚函数分别it算几何图形面枳,并求他Hl的和。

要求定义一个基类岳针,使它指向毎一个派生类对象,体现其多态性。

1、#includeusingnamespacestd;

voidmax()

{

inta,b;

cout«"请输入两个数:

"«endl;

cin»a»b;

if(a>b)

else

cout«a«B"«b«endl;

intmain()

{

max();

return0;

}

2、#includeusingnamespacestd;

voidmax(intaJntb)

{

if(a>b)

cout«a«endl;else

cout«b«endl;

}

voidmaxfintajntbjntc)

if(a>b&&a>c)cout«a«endl;

elseif(b>c)

cout«b«endl;

else

cout«c«endl;

}

intmain()

{

max(2,5);

max(7,5,3);

return0;

}

3、#includeusingnamespacestd;

voidmax(inta,intbjntc=0){

if(a>b&&a>c)

cout«a«endl;

elseif(b>c)

else

cout«c«endl;

intmain()

{

max(2,5);

max(7,5,3);

return0;

1

4、#includeusingnamespacestd;

voidswap1(inta,intb)

{

inttemp;

temp=a;

a=b;

b=temp;

}

voidswap2(int*a,int*b)

inttemp;

temp=*a;

*a=*b;

*b=temp;

I

voidswap3(int&ajnt&b)

{

inttemp;

temp=a;

a=b;

b=temp;

I

intmain()

{

intx,y;

x=5;y=7;

swap1(x,y);

coutcc'XFvvxcc”y=,,«y«endI;

x=5;y=7;

swap2(&x,&y);

x=5;y=7;

swap3(x,y);

cout«,,x="«x«"y=H«y«endl;

return0;

I

5、#include

include

usingnamespacestd;

classstudent

{

private:

intnum;

stringname;

intage;

charsex;

public:

voidset()

cout«"iO人:

学号,,年龄,性别(form)"«endl;

cin»num»name»age»sex;

voiddisplayOcout«"学号:

w«num«endl;

cout«":

"«name«endl;

cout«"年龄:

Wvagevvendl;cout«B1l9J:

"«sex«endl;

intmain()

{

students;

s.set();

s.displayf);

return0;

}

6、#includeinclude

usingnamespacestd;

classstudentprivate:

intnum;

stringname;

intage;

charsex;

public:

/*voidset()

{

cout«"请输人:

学号,,年齡,性别(form)"«endl;cin»num»name»age»sex;

}

*/

studentfintnum,stringnamejntajnts)

{

cout«"调用构造函数num=H«num«endl;

this->num=num;

this->name=name;

age=a;

sex=s;

}天猫优無券,找就要券.591q.

voiddisplayO

cout«"学号:

M«num«endl;

cout«":

”<

cout«""«age«endl;

cout«'ttSO:

"«sex«endl;

}

-studentf)

{

cout«'ffi构函数学号:

M«num«endl;

intmain()

{

students(1001三・,25,f),s1(1002;'四",24,'mJ;

//s.set();

s.displayf);

s1.display();

return0;

I

7、#include

includeusingnamespacestd;

classstudentprivate:

intnum;

stringname;

intage;

charsex;

public:

/*voidset()

{

cout«"iO人:

学号,,年龄,性别(form)"«endl;cin»num»name»age»sex;

I

*/

studentf)

cout«"调用构造函数num="«0«endl;

num=0;

name=m,;

age=18;

sex=f;

student(intnum,stringnamejntajnts)

cout«"调用构造函数num』vvrwmvvendl;

this->num=num;

this->name=name;

age=a;

sex=s;

voiddisplayO

cout«"学号:

"«num«endl;

cout«":

"«name«endl;

cout«""«age«endl;

cout«"性别:

"vvsexvvendl;

}

-studentf)

I

cout«"ffi构函数学号:

H«num«endl;

intmain()

students(1001;三:

25,f),s1(1002,110,,,24,,m,),s2;

//s.set();

s.displayO;

cout«endl;

s1.display();

cout«endl;

s2.display();

cout«endl;

return0;

8、#include

include

usingnamespacestd;

天猫优惠券,我就要券.591q.

classstudent

{

private:

intnum;

stringname;

intage;

charsex;

public:

studentfintnum=O,stringname=IIB,inta=18Jnts='f')

I

cout«B调用构造函Unum="«num«endl;

this->num=num;

this->name=name;

age=a;

sex=s;

voiddisplayO

cout«"学号:

"cvnumcvendl;cout«":

"«name«endl;

cout«"年龄:

"«age«endl;

cout«'tf9J:

"«sex«endl;

I

-studentf)

cout«"

天猫优惠券我就要券・591q.学号:

-«num«endl;

intmain()

{

students(1001;三:

25,f),s1(1002;0",24,'m'),s2;

//s.set();

s.displayO;

cout«endl;

s1.display();

cout«endl;

s2.display();

cout«endl;

return0;

I

9、#include

include

usingnamespacestd;

classstudent

private:

intnum;

stringname;

intage;

charsex;

public:

studentfintnum=O,stringname=,,B,inta=18,ints=,f,)(

cout«"调用构造函数num="«num«endl;

this->num=num;

this->name=name;

age=a;

sex=s;

I

voiddisplayO

I

cout«"学号:

Zmumccendl;

cout«B:

M«name«endl;

cout«"年龄:

tcagevcendl;

cout«'ttJiJ:

"«sex«endl;

~student()

{

cout«"ffi构函数学号:

H«num«endl;

intmain()

{

students[3]={student(1001,"三",25,f),student。

002:

四",24,'m')};

for(inti=0;i<3;i++)

{

天猫优惠券,我就要券.591q.

s[i].display();

cout«endl;

}

student*p;

p=newstudent(1003,"王五',23,'f');

p->display();

cout«endl;

deletep;

return0;

I

10、#include

include

usingnamespacestd;

classstudent

{

private:

intnum;

stringname;

intage;

charsex;

public:

studentfintnum=0,stringname=,,B,inta=18,ints='f,)(

cout«'ifi用构造函数num=M«num«endl;

this->num=num;

this->name=name;

age=a;

sex=s;

student(student&s)

{

天掘优惠券,我就要券.591q.

num=s.num;

name=s.name;

age=s.age;

sex=s.sex;

}

voiddisplayO

{

cout«"学号:

tvnumcvendl;

cout«":

"«name«endl;

cout«"年龄:

tvage«endl;

cout«B性别:

"«sex«endl;

}

~student()

{

cout«"|fi构函数学号:

"«num«endl;

intmain()

students1(1OO1;5B,25,,f,);

students2(s1);

s1.display();

s2.display();

return0;

}

11、

#include

include

usingnamespacestd;

classstudent

{

private:

intnum;

stringname;

floatscore;

staticfloatsum;

staticintcount;

public:

studentfintnum=0,stringname=l,B,floats=80)(

this->num=num;

this->name=name;

score=s;

count++;

voiddisplayO

{

cout«"学号:

"«num«endl;cout«":

”《name«endl;

cout«"ffi绩:

"«score«endl;}

voidtotal();

staticfloataverage();

floatstudent:

:

sum=0.0;

intstudent:

:

count=0;

voidstudent:

:

total()

{

sum+=score;

}

floatstudent:

:

average()

{

returnsum/count;

I

intmain()

{

students[3]={student(1001,"三",87),student(1002,"0"),student(1003,"王五:

90)};

for(inti=0;i<3;i++)

s[i].total();

}

cout«"平均成缱:

,«student:

:

average()«endl;

return0;

#include

//include

//usingnamespacestd;

classTime

{

private:

inthour;

intminute;

intsecond;

public:

Time(inth=12,intm=0,ints=0)

{

hour=h;

minute=m;

second=s;

}

friendvoiddisplay(Time&);

voiddisplay(Time&t)

cout«t.hour«B时H«t.minuted分B«t.second«M秒M«endl;

intmain()

Timet,t1(13,12,22);display(t);display(tl);

return0;

13、

(1)

〃方法1:

多次重裁+

#include//include

//usingnamespacestd;

classplexprivate:

floatreal;

floatimage;

public:

plex(floatreal,floatimage)

{

this->real=real;

this->image=image;

1

Plex()

{

real=0;

image=0;

}

friendplexoperator+(plex&a,plex&b);

friendplexoperator+(plex&a,floatb);

friendplexoperator+ffloata,plex&b);

friendostream&ope「ator«(ostream&output,plexa);

friendistream&operator»(istream&input,plexa);

plexoperator+(plex&a,plex&b)

returnplex(a.real+b.real,a.image+b.image);

plexoperator+(plex&a,floatb)

returnplex(a.real+b,a.image);

plexoperator+(floata,plex&b)

returnplex(b.real+a,b.image);

ostream&ope「ator«(ost「eam&output,plexa)

if(a.image>0)

output«a.real«,1+ko.image^'i^endl;

else

output«a.real«a.image«'T«endl;

returnoutput;

istream&operator»(istream&input,plexa){

input»a.real»a.image;

returninput;

I

intmain()

{

plexa(3,4),b(1,2),c,d,e,f;

c=a+b;

d=a+5;

e=3+b;

cout«c«endl;

cin»f;

cout«f«endl;

return0;

〃方法2:

使用转换构造函数实现

#include

classplexprivate:

floatreal;

floatimage;

public:

plex(floatreal,floatimage){

this~>real=real;this->image=image;

}

Plex()

{

real=0;

image=0;

}

//定义转换构造函数

plex(floatr)

{

real=r;

image=0;

friendplexoperator+(plex&a,plex&b);

friendostream&ope「ator«(ostream&output,plexa);

friendistream&operator»(istream&input,plexa);

};

plexoperator+(plex&a,plex&b)

{

returnplex(a.real+b.real,a.image+b.image);

I

ostream&ope「ato「《(ost「eam&output,plexa)

{

if(a.image>0)

outputcca.realccVcca.imageccTccendl;

}

else

{

output«a.real«a.image«"iB«endl;

returnoutput;

istream&operator»(istream&input,plexa){

input»a.real»a.image;

returninput;

}

intmain()

{

plexa(3,4),b(1,2),c,d,e,f;

c=a+b;

d=a+5;

e=3+b;

cout«c«endl;

cin»f;

cout«f«endl;

return0;

}

(2)includeusingnamespacestd;

classTime

{public:

Time(){minute=O;sec=O;}

Time(intmjnts):

minute(m),sec(s){)

Timeoperator++();

Timeoperator++(int);

voiddisplay()(cout«minute«":

"«sec«endl;)

private:

intminute;

intsec;

I;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2