学年第2学期西南交大面向对象程序设计主观题作业.docx

上传人:b****5 文档编号:7439804 上传时间:2023-01-24 格式:DOCX 页数:15 大小:120.63KB
下载 相关 举报
学年第2学期西南交大面向对象程序设计主观题作业.docx_第1页
第1页 / 共15页
学年第2学期西南交大面向对象程序设计主观题作业.docx_第2页
第2页 / 共15页
学年第2学期西南交大面向对象程序设计主观题作业.docx_第3页
第3页 / 共15页
学年第2学期西南交大面向对象程序设计主观题作业.docx_第4页
第4页 / 共15页
学年第2学期西南交大面向对象程序设计主观题作业.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

学年第2学期西南交大面向对象程序设计主观题作业.docx

《学年第2学期西南交大面向对象程序设计主观题作业.docx》由会员分享,可在线阅读,更多相关《学年第2学期西南交大面向对象程序设计主观题作业.docx(15页珍藏版)》请在冰豆网上搜索。

学年第2学期西南交大面向对象程序设计主观题作业.docx

学年第2学期西南交大面向对象程序设计主观题作业

第一次作业

二、主观题(共9道小题)

22.在C++中,当用class定义一个类时,数据成员和成员函数的默认访问权限是【30】,而struct中成员的默认访问权限是【31】

参考答案:

30)私有(或者private)31)公有(或者public)

23.编写程序声明类Student,有数据成员、学号、成绩,定义函数成员用于返回各数据成员信息,定义对象数组,实现10个学生的分数录入及平均分计算。

参考答案:

^include

classStudent

{public:

floatgetScore():

private:

charname[10];

longnum;

floatscore;

};

类的成员函数的定义和主函数部分自己完成

24.类的继承是面向对象程序设讣中的重要机制,继承方式有三种,分别是:

【1】、【2】和【3】°

参考答案:

1)公有继承2)私有继承3)受保护继承

25.带有纯虚函数的类是【4】。

参考答案:

4)抽象类

26.在C卄程序中,动态建立和删除堆对象是采用【5】和【6】这两个运

算符来实现的。

参考答案:

5)new6)delete

27.假定AB为一个类,则执行〃ABa[9];〃语句时,系统自动调用该类构造函数的次数为【7】.

参考答案:

7)9

28.当一个类对象被创建时,系统将自动调用该类的构造函数,而【8】函数是在对象的生存期即将结束的时刻由系统自动调用的。

参考答案:

8)析构

29.类中具有相似功能的不同函数使用同一个名称来实现,这称为【9】。

面向对象的多态性可以分为四类,分别是:

参数多态、强制多态、【10】和

[H]O

参考答案:

9)多态10)重载11)包含

30.C++程序也需要有主函数的入口,必须而且只能是一个名为的函数【12】参考答案:

12)main

第二次作业

二、主观题(共15道小题)

g算术表达式;-b+舶的c语言表达式是;【13】

算术表达式:

I护-他I的C语言表达式是:

【14】

(1)s=a+b/2;则s=【21】;a

(2)s=a>b?

(a-b):

(a+b);则s=【22】;o

(引s=102%b+a++5则*【23】;e【24】

12.⑷s=b&&!

(c>=a)&&(a<=10)||b;则沪[25]m

参考答案:

21)1022)323)1024)925)1

13.面向对象的程序设计有四大特征,是【26】、【27】、【28】、【29】。

参考答案:

26)-29)抽象封装继承多态(答案顺序可交换)

14.

Sinclude

intarea(int1=5,intw二5)

{

returnl*w;

}

voidmain()

{

cout«area()<;

cout«area(10,2)<;

cout«area

(2)<;

}

参考答案:

结果:

25

20

10

考察知识点:

带默认形参值的函数。

默认形参值必须按照从右向左顺序定义。

调用时,实参按从左向右顺序初始化形参)

本题招关知识点「构造函数>

include<迫.炭网切

classclock

public:

clockfmtnewH,intnewNLmtnewS),〃构造函数

voidsetTime(inlnewH,intnewM,intne^vS)*

W-ZAAA/v*v\A/V/-AWvWSAAV-^-ZSWZZ,2Z74222

{hour=navH;mirLUte=nwivi;second=newS;}<-'

»V*/WWW/

voidshowTime()Q

W"・Z•/•/

{cout«hour«"、》«minute«*"«sec&fLd<

0VvVvVrA\AAAA^-X

privates2

inthour?

minute^

second;

^ock^JM(mtn^H,intnewM,intn^S)

main()卩

void

 

{clockmyclock(0,0,0)?

2myclock.showyTime();p>AA

myclock.setTime(11,1412);“

妙如城删T醱();卩

15.}a

参考答案:

运行结果:

0:

0:

0

11:

11:

12

classpoint.匸

public;-

point.(M-xx=05-tyy=0)t-

^1-3-T

poB-b(Polinif-

wo.d翼m()七

〔couTrA-ccL字AACountPA人endh)t-private;

poB-t:

P05-二PG-S-L0P)

t

COUilLP十+5f-

 

5-Lpoint.”»countpHFswAWYWWYYVvoidmain()t(point.A(495)3tcoutxA二p・A八endhc

A.metc();poil=B《A);go&a<0a人endk>ss«o>cssssx

B.getc(;t

16・)t

>

Objectid“1

B”

Objectid:

2

 

继孚与派生过程中构造函数的调用心

include仙挠

classB2(public:

Bl(inti){cout«"cobstructingBl"«i«endl;}

、、、小2^250VW/WW*

classB2a{public:

B2(iiitj){cout<

}

};3

classB3“(public:

B3(){cout«,,c&nstmctingB3,,«,,*,,«end.l;}Q

};则

classC:

卩讪lkBl.irul)licB2・publicB3〃三个

{public:

C==C

V^AZS/

(b)2

BL(<),ift?

idberB2(n),lft&inb^rBl(d),B2

piiv^ate:

BlmembeiBb"

B2manJb“B5«'

B3mQmJ)QL*3;

V7)i(lrnaiiiiC){Col)j(1,2»3,4);}□参考答繁:

结果:

constructingBl3constructingB22constructingB3*constructingBl4

constructingB21constructingB3*下面程序的运行结果是⑤•2deludeu切煎卿氏U”

如fuel(焕谕诚cK/mt妙2

cp=x*卅y*y;Q

voidmain.()<-*

inta=4,b=3,c=5,d=6;卩

fu.ncl(a,b,c,d)>'

cout<

18.H

参考答案:

运行结果:

56

考察知识点:

参数的传递,本题传递了实参的值

19.下面程序的运行结果是。

#include

intfund(intx,inty,int*cp,int*dp)

{

*cp=x*x+y*y;

*dp二x*x_y*y;

}

voidmain()

{

inta=4,b—S,c二5,d=6;

fund(a,b,&c,&d);

cout«>

}

参考答案:

运行结果:

257

考察知识点:

参数的传递,本题传递了实参的地址

20.该程序的输出是

^include"stdio.h”

voidmain()

{

chara[40]=ngoodnight畀,*p;

for(p=a;*p!

二'a";p++)putchar(水p一32);

}

参考答案:

运行结果:

GOODNIGHT

考察知识点:

字符串的处理一一大小写字母的转换

本题相关知识点:

派生类成员的标识右访问C作用域分辨符的便用)include可女威购功加屮

class

2

public:

诞期;卩

voidfun(){cout«,,ftiernberofBln«endl?

}Q

}■p

classB2卩

public:

Q

intnv;4

WX0WXrt

void伽(、磁谢“血舉敢:

of时*则!

;”

};J

classD1:

publicB1,publicB2a

g

public:

迫t卿Q

wid.fim(){ggygcflft&mbeT

 

参考答案:

运行结果:

memberofDImemberofBlmemberofB2

1

2

3

分析:

存中nv有三个拷贝,fun也有三个拷贝。

22.考察知识点:

静态局部变量

nclude

intf(int):

intmain()

{inti;

for(i=l;i<=5;i++)

cout<«,J;&NBSP;&NBSP;

returnO;

}

intf(inti)

{staticintk=l;

k+二1;

returnk;

}

参考答案:

运行结果:

23456

23.下面程序的运行结果是。

Sinclude

voidmain()

{

for(i=l;i<10;i++)

{

if(i%3=0)continue;

cout<;

}

}

参考答案:

运行结果:

124578

考察知识点:

continue的使用

第三次作业

一、主观题(共5道小题)

L声明一个rectangle和circle类,rectangle和circle类都有getArea()函数用于计算矩形(retangle)对象和圆形(circle)对象的而积,在main中初始化一个矩形类对象和一个圆形类对象并利用getArea函数求岀面积。

参考答案:

#include

classcircle

{public:

circle(floatr){radius二r;}

floatgetArea();

private:

floatradius;

};

floatcircle:

:

getAreaO

{return3・14水radius^radius;}

classrectangle

{public:

rectangle(float11,floatwl){1=11;w=wl)

floatgetAreaO;

private:

float1,w;

};

floatrectangle:

:

getAreaO

{returnl*w;}

voidmain()

{circlecirclel(3);

rectanglereel(3,5);

cout«/>

cout«/>

2.定义Boat与Car两个类,二者都有weight属性,定义_•者的一个友元函数totalWeight(),计算二者的重量和。

苗“elude^lostream^

classBoat*-1

(public:

a

Boat(doublew){weight=\^}“

FrienddoubletotalWeid.it(BoatCar

privatesa

doubleweight?

d

};A

classCar"

(public:

*

Car(doublew)(weight=^Y,)Q

FiwiwldoubletotAlWe-iglit(BoatC^r

private:

a

doubleweight;卩

};3

doubletotnlW^idit(Boat&bC?

w&b)*

〔retiuiiA-wei^lit+b

voidtmin0u

2

Boat莎或诚:

弼汁

Ch◎或曲50);屮

参考答案:

3.定义point类来描述平面上的点,包含私有数据成员x和y。

定义友元函数Distance计算两点距离

参考答案:

#inelude

Point(doublesdoubleyy){}

doubleGetz();丄

\AA*A••人

FiieivldoubleDKhme(Point&九Point<■*

private:

*

doublez,y;□

};卩

doublePoint:

:

Getn()*»

WhAWVv

(return}Q

doubleDistance(Pointk^a>Point&b)卩

(doubledz=a.x-b.x;

、V-ZA*vWv*vWvV-z

doubledy=a.y-b.y;“

returnsqrt

{Pointpl(3.0,4.0),p2(6.0,8.0)5Q

pl.Getzy():

Q

p2.Getzy(h卩

doubled=DKtAiwe(pl,p2);心

滋意,Distance是一个函数,而不是Spoint的公有函数,所以这里直接调用

cout<<,,Distanceis"«d«endl;亠

\ZVWS/V**>WWh/

4.定义复数类,重载+,水为复数类的成员函数,实现复数类对象的+,*运算。

参考答案:

細clud*织或^:

心classcomplex〃复数类声明a

2public:

3

complex(d-outiler=0.0,doublei=0.0)p(real^nmg=i;}〃构造函数〜complezoperator+(complexc2)?

〃运算符十重载为成员函数~

complexoperator*(complexc2);voiddisplay()?

/简出复数/

private:

佩有数据成员Q

complexcomfe;;operator十(complexc2)“

returncomplex(real+c2.real,imag+c2.imag);complexcomplex:

:

o-perator冰(comples:

c2)丄

丄V-AAAA^Ka/vV-/丄儿

c3.display();心

c3n严c2:

"便用重载运算符完成复数乘法acout«,,c3=cPc2=,,5屮

c3.display();a

5.编写程序声明类Point,有数据成员X,Y,为其定义友元函数实现重载+。

includea

classPoint*-'

(public:

a

Point(double忍doubleyy)Q

〔mx;7=溉)屮

doubleGetzy();□

Friendoperator+(Point&a,Point&b);〃声明友元函数

private;卩

doubley;2

};d

doublePoint:

:

Get^()>

{cout«x«ur«y«^.dl;}屮

Pointoperator+(Poiiit&;vPoint&b)Q

依(umPoiiM瞬也西加也於;W

voidmain()』

{Pointpl(3.0,4.0),p2(6.0,8.0)卫3;u

pl.Get繆()?

Q

p2.Getxy();卩

p3=pl+p2;卩

〃注意,+不是point咸员函数,所以可直接调用心

p3.Getny();心

}“

运础果…

3.0,4.2

6.0,8.0^

参考答案:

90123

第四次作业

一、主观题(共2道小题)

1.编写程序声明类Student,有数据成员、学号、成绩,定义函数成员用于返回各数据成员信息,定义对象数组,实现10个学生的分数录入及平均分计算。

参考答案:

#include

classStudent

{public:

floatgetScore();

private:

charname[10];

longnum;

floatscore;

};

类的成员函数的定义和主函数部分自己完成

2.声明一个基类Shape,在此基础上派生出Rectangle和Circle,二者都有GetArea()函数计算对象面积。

参考答案:

classShape{

public:

floatgetArea(){};

};

classcircle:

publicShape

{public:

circle(floatr){radius=r;}

floatgetArea(){return3.14水r&dius*radius;}

private:

floatradius;

};

classrectangle:

publicShape

{public:

rectangle(float11,floatwl){1=11;w=wl)

floatgetArea();{returnl*w;}

private:

float1,w;

);

voidmain()

{

circlecirclel(3);

rectanglereel(3,5):

cout

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

当前位置:首页 > 外语学习 > 韩语学习

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

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