c++上机试题及答案.docx
- 文档编号:2103512
- 上传时间:2022-10-26
- 格式:DOCX
- 页数:9
- 大小:16.67KB
c++上机试题及答案.docx
《c++上机试题及答案.docx》由会员分享,可在线阅读,更多相关《c++上机试题及答案.docx(9页珍藏版)》请在冰豆网上搜索。
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; };
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 上机 试题 答案