c++上机试题及答案.docx

上传人:b****1 文档编号:2103512 上传时间:2022-10-26 格式:DOCX 页数:9 大小:16.67KB
下载 相关 举报
c++上机试题及答案.docx_第1页
第1页 / 共9页
c++上机试题及答案.docx_第2页
第2页 / 共9页
c++上机试题及答案.docx_第3页
第3页 / 共9页
c++上机试题及答案.docx_第4页
第4页 / 共9页
c++上机试题及答案.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

c++上机试题及答案.docx

《c++上机试题及答案.docx》由会员分享,可在线阅读,更多相关《c++上机试题及答案.docx(9页珍藏版)》请在冰豆网上搜索。

c++上机试题及答案.docx

c++上机试题及答案

A.类的定义

TimeLimit:

1000MSMemoryLimit:

32768K

TotalSubmit:

659(260users)TotalAccepted:

116(114users)SpecialJudge:

No

Description

定义一个Circle类,有私有数据成员radius(半径);公有成员函数getArea(),用来计算圆的面积;实现能初始化半径的构造函数,以及拷贝构造函数。

要在主函数中定义两个对象,并且输出两个对象的面积。

其中第二个由第一个对象初始化,圆周率取为3.14。

(15分)

Input

包含一个整数。

Output

输出一行,是两个对象的面积值。

具体参照样例。

SampleInput

2

SampleOutput

12.5612.56

A题

#include

usingnamespacestd;

classCircle

{

public:

Circle(intr):

radius(r){}

Circle(Circle&p);

doublegetArea(intradius);

private:

intradius;

};

Circle:

:

Circle(Circle&p)

{

radius=p.radius;

}

doubleCircle:

:

getArea(intradius)

{

floatarea;

area=3.14*radius*radius;

returnarea;

}

intmain()

{

intr;

doublearea1,area2;

CircleA(r);

CircleB(A);

cin>>r;

area1=A.getArea(r);

area2=B.getArea(r);

cout<

return0;

}

B.静态数据成员

TimeLimit:

1000MSMemoryLimit:

32768K

TotalSubmit:

270(173users)TotalAccepted:

60(57users)SpecialJudge:

No

Description

定义一个Lingjian类,拥有整型的数据成员Weight和静态数据成员AllWeights(初始化为0),每定义一个对象,AllWeights增加该零件的重量Weight;析构函数中删除Weight;静态成员函数GetWeights()获取Weights。

设计程序,定义两个对象之后,输出类的AllWeights。

其中Weight是在main()函数中从文件读数对单个零件重量赋值。

(15分)

 

注意:

必须按照描述要求书写代码,否则不给分。

Input

包含一个整数。

Output

输出一行,是Lengths的值。

具体参照样例。

SampleInput

1224

SampleOutput

36

B题

#include

usingnamespacestd;

classLingjian

{

public:

Lingjian(intWeights){AllWeights=AllWeights+Weights;}

~Lingjian(){Weights=0;}

staticintGetWeights(){returnWeights;}

staticintAllWeights;

staticintWeights;

};

intLingjian:

:

AllWeights=0;

intLingjian:

:

Weights=0;

intmain()

{

inta,b;

cin>>a>>b;

LingjianA(a);

LingjianB(b);

cout<

return0;

}

C.友元函数

TimeLimit:

1000MSMemoryLimit:

32768K

TotalSubmit:

400(230users)TotalAccepted:

98(97users)SpecialJudge:

No

Description

定义狮子Lion与老虎Tiger两个类,二者都有weight私有整型属性,定义二者的一个友元函数totalWeight(),计算二者的重量和。

设计程序,定义狮子与老虎两个对象之后,调用totalWeight(),计算二者的重量和,然后输出。

其中狮子与老虎的Weight是在main()函数中从文件读数赋值。

(15分)

注意:

必须按照描述要求书写代码,否则不给分。

Input

包含一个整数。

Output

重量和输出一行,是重量和的值。

具体参照样例。

SampleInput

240280

SampleOutput

520

C题

#include

usingnamespacestd;

classTiger;

classLion

{

public:

Lion(intL):

weight(L){}

friendinttotalWeight(Lion&aLion,Tiger&aTiger);

private:

intweight;

};

classTiger

{

public:

Tiger(intT):

weight(T){}

friendinttotalWeight(Lion&aLion,Tiger&aTiger);

private:

intweight;

};

inttotalWeight(Lion&aLion,Tiger&aTiger)

{

returnaLion.weight+aTiger.weight;

}

intmain()

{

intw1,w2;

cin>>w1>>w2;

LionL(w1);

TigerT(w2);

cout<

}

D.用指针访问二维数组

TimeLimit:

1000MSMemoryLimit:

32768K

TotalSubmit:

161(115users)TotalAccepted:

39(38users)SpecialJudge:

No

Description

定义一个3x3的二维数组,从文件中读入数据。

设计一个函数名为average,该函数的第一个参数是二维数组,第二个参数是行数,功能为对整个二维数组求平均值,返回值为最后的平均值,要求用以指针形式访问数组,不能使用下标形式(如a[1][2])。

在主函数main中调用average求平均值,输出数组的平均值。

(15分)

注意:

必须按照描述要求书写代码,否则扣分或者不给分。

Input

输入有三行,每行有3个浮点数,浮点数范围[-200,200]

Output

输出数组的平均值。

具体参照样例。

输出不要求精度控制,使用C++默认的输出即可。

如将浮点数f输出到一行,使用cout<

SampleInput

123.1123.3124.5124135145122133213

SampleOutput

138.1

D题

#include

usingnamespacestd;

floataverage(floata[3][3],inti)

{

floatsum=0;

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

for(intj=0;j<3;j++)

{

sum+=*(*(a+i)+j);

}

returnsum/9;

}

intmain()

{

floataverage(floata[3][3],inti);

floata[3][3];

floataver;

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

for(intj=0;j<3;j++)

cin>>*(*(a+i)+j);;

aver=average(a,3);

cout<

}

E.派生类

TimeLimit:

1000MSMemoryLimit:

32768K

TotalSubmit:

164(119users)TotalAccepted:

27(25users)SpecialJudge:

No

Description

设计一个名为Point的点类和一个名为Rectangle的矩形类。

点类的属性是整型的x和y坐标。

矩形类是从点类派生的,点坐标为矩形的左下角的点坐标,并增加两个整型属性,分别是长(X方向)和高(Y方向)。

同时还有获取(并计算)右上角点的成员函数getRightUpPoint()。

要求设计实现这两个类,并且矩形类还要实现带参数的构造函数,以及拷贝构造函数。

从文件读取数据构造一个矩形对象R1,使用拷贝构造函数构造矩形对象变量名为R2,进而调用R2的getRightUpPoint()得到右上角坐标,然后输出该坐标值。

写出完整的C++测试派生类构造函数、拷贝构造函数的程序代码。

(20分)

注意:

必须按照描述要求书写代码,否则不给分。

Input

输入有两行,第一行两个整数x1,y1表示矩形的左上角坐标(x1,y1);第二行两个整数lenght,width表示矩形的长(X方向)和高(Y方向)

Output

输出有一行,是调用R2的getRightUpPoint()而得到的点的坐标值。

SampleInput

1213

3445

SampleOutput

4658

E题

#include

usingnamespacestd;

classPoint

{

public:

voidinitPoint(intx=0,inty=0){this->x=x;this->y=y;}

intgetX()const{returnx;}

intgetY()const{returny;}

private:

floatx,y;

};

classRectangle:

publicPoint

{

public:

voidinitRectangle(intx,inty,intw,inth)

{

initPoint(x,y);

this->w=w;

this->h=h;

}

intgetH()const{returnh;}

intgetW()const{returnw;}

voidgetRightUpPoint(int*xx,int*yy)

{

*xx=getX()+getW();

*yy=getY()+getH();

}

private:

intw,h;

};

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

当前位置:首页 > 党团工作 > 思想汇报心得体会

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

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