您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > c++上机试题及答案
A.类的定义TimeLimit:1000MSMemoryLimit:32768KTotalSubmit:659(260users)TotalAccepted:116(114users)SpecialJudge:NoDescription定义一个Circle类,有私有数据成员radius(半径);公有成员函数getArea(),用来计算圆的面积;实现能初始化半径的构造函数,以及拷贝构造函数。要在主函数中定义两个对象,并且输出两个对象的面积。其中第二个由第一个对象初始化,圆周率取为3.14。(15分)Input包含一个整数。Output输出一行,是两个对象的面积值。具体参照样例。SampleInput2SampleOutput12.5612.56A题#includeiostreamusingnamespacestd;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);cinr;area1=A.getArea(r);area2=B.getArea(r);coutarea1area2endl;return0;}B.静态数据成员TimeLimit:1000MSMemoryLimit:32768KTotalSubmit:270(173users)TotalAccepted:60(57users)SpecialJudge:NoDescription定义一个Lingjian类,拥有整型的数据成员Weight和静态数据成员AllWeights(初始化为0),每定义一个对象,AllWeights增加该零件的重量Weight;析构函数中删除Weight;静态成员函数GetWeights()获取Weights。设计程序,定义两个对象之后,输出类的AllWeights。其中Weight是在main()函数中从文件读数对单个零件重量赋值。(15分)注意:必须按照描述要求书写代码,否则不给分。Input包含一个整数。Output输出一行,是Lengths的值。具体参照样例。SampleInput1224SampleOutput36B题#includeiostreamusingnamespacestd;classLingjian{public:Lingjian(intWeights){AllWeights=AllWeights+Weights;}~Lingjian(){Weights=0;}staticintGetWeights(){returnWeights;}staticintAllWeights;staticintWeights;};intLingjian::AllWeights=0;intLingjian::Weights=0;intmain(){inta,b;cinab;LingjianA(a);LingjianB(b);coutB.AllWeightsendl;return0;}C.友元函数TimeLimit:1000MSMemoryLimit:32768KTotalSubmit:400(230users)TotalAccepted:98(97users)SpecialJudge:NoDescription定义狮子Lion与老虎Tiger两个类,二者都有weight私有整型属性,定义二者的一个友元函数totalWeight(),计算二者的重量和。设计程序,定义狮子与老虎两个对象之后,调用totalWeight(),计算二者的重量和,然后输出。其中狮子与老虎的Weight是在main()函数中从文件读数赋值。(15分)注意:必须按照描述要求书写代码,否则不给分。Input包含一个整数。Output重量和输出一行,是重量和的值。具体参照样例。SampleInput240280SampleOutput520C题#includeiostreamusingnamespacestd;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;cinw1w2;LionL(w1);TigerT(w2);couttotalWeight(L,T)endl;}D.用指针访问二维数组TimeLimit:1000MSMemoryLimit:32768KTotalSubmit:161(115users)TotalAccepted:39(38users)SpecialJudge:NoDescription定义一个3x3的二维数组,从文件中读入数据。设计一个函数名为average,该函数的第一个参数是二维数组,第二个参数是行数,功能为对整个二维数组求平均值,返回值为最后的平均值,要求用以指针形式访问数组,不能使用下标形式(如a[1][2])。在主函数main中调用average求平均值,输出数组的平均值。(15分)注意:必须按照描述要求书写代码,否则扣分或者不给分。Input输入有三行,每行有3个浮点数,浮点数范围[-200,200]Output输出数组的平均值。具体参照样例。输出不要求精度控制,使用C++默认的输出即可。如将浮点数f输出到一行,使用coutfendl;输出即可。SampleInput123.1123.3124.5124135145122133213SampleOutput138.1D题#includeiostreamusingnamespacestd;floataverage(floata[3][3],inti){floatsum=0;for(inti=0;i3;i++)for(intj=0;j3;j++){sum+=*(*(a+i)+j);}returnsum/9;}intmain(){floataverage(floata[3][3],inti);floata[3][3];floataver;for(inti=0;i3;i++)for(intj=0;j3;j++)cin*(*(a+i)+j);;aver=average(a,3);coutaverendl;}E.派生类TimeLimit:1000MSMemoryLimit:32768KTotalSubmit:164(119users)TotalAccepted:27(25users)SpecialJudge:NoDescription设计一个名为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()而得到的点的坐标值。SampleInput12133445SampleOutput4658E题#includeiostreamusingnamespacestd;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;};intmain(){intx,y,lenght,width;intxx,yy;cinxylenghtwidth;RectangleR1;R1.initRectangle(x,y,lenght,width);RectangleR2(R1);R2.getRightUpPoint(&xx,&yy);coutxxyyendl;return0;}
本文标题:c++上机试题及答案
链接地址:https://www.777doc.com/doc-1832435 .html