C++第二学期期末考试复习资料(考试题全部来源于此)(4)

2019-04-10 09:05

class XA{ int x; public: XA(int n) {x=n;}

};

class XB: public XA{

int y;

public: XB(int a,int b);

};

在构造函数XB的下列定义中,正确的是(B)。 A.XB::XB(int a,int b):x(a),y(b){ } B.XB::XB(int a,int b):XA(a),y(b) { } C.XB::XB(int a,int b):x(a),XB(b){ } D.XB::XB(int a,int b):XA(a),XB(b){ } 3.10有如下程序: #include using namespace std; class Base{ private:

void fun1( ) const {cout<<”fun1”;} protected:

void fun2( ) const {cout<<”fun2”;}

public: void fun3( ) const {cout<<”fun3”;}

};

class Derived : protected Base{ public: void fun4( ) const {cout<<”fun4”;} };

int main(){ Derived obj; obj.fun1( ); //① obj.fun2( ); //② obj.fun3( ); //③ obj.fun4( ); //④

}

其中没有语法错误的语句是(D )。

A.①

B.②

C.③

4.写出程序运行结果 4.l#include using namespace std; class B1{ public:

D.④

};

B1(int i){ ~B1( ){

cout<<”constructing B1 “<

class B2 { public: };

class C:public B2, virtual public B1 { int j; public:

C(int a,int b,int c):B1(a),memberB1(b) ,j(c){} B2( ){ cout<<”constructing B3 *”<

cout<<”destructing B3”<

private: };

int main( ){ }

constructing B1 1 constructing B3 * constructing B1 2 constructing B3 * destructing B3 destructing B1 destructing B3 destructing B1

4.2#include using namespace std; class B{ public: };

class D:public B{ public: };

void f(B& rb){ }

int main( ){

D d;

B b,&rb1=b,&rb2=d; rb.f1();

void f1(){cout<<\void f1(){cout<<\C obj(1,2,3); B1 memberB1; B2 memberB2;

}

f(rb1); return 0;

f(rb2);

B::f1 B::f1

5.编程题

5.1定义一个Point类,派生出Rectangle类和Circle类,计算各派生类对象的面积Area()。 #include using namespace std; const double PI=3.14159; class Point { public:

Point(double x=0, double y=0) {X=x;Y=y;}

void ShowPoint() {cout<<\

private: };

class Rectangle: public Point { public:

Rectangle(double w,double h,double x,double y):Point(x,y) {width=w,height=h;Area();} void Area() {area= width*height;} void ShowArea(){ }

cout<<\double X,Y;

private: };

class Circle: public Point { public:

Circle(double r,double x, double y):Point(x,y) {radius=r;Area();}

void Area() {area= PI*radius*radius;} void ShowArea(){ }

cout<<\double width,height,area;

private: };

int main(){

Rectangle r(10,8,0,0); Circle c(4,3,5); r.ShowArea(); c.ShowArea(); double radius,area;

}

return 0;

5.2设计一个建筑物类Building,由它派生出教学楼Teach-Building和宿舍楼类Dorm-Building,前者包括教学楼编号、层数、教室数、总面积等基本信息,后者包括宿舍楼编号、层数、宿舍数、总面积和容纳学生总人数等基本信息。 #include #include using namespace std; enum AMPM{AM=1,PM}; class Building{ public:

Building(char *); void ShowBuilding(){ }

cout<

protected: };

Building::Building(char *name){ };

class Teach_Building: public Building { public:

Teach_Building(char *,int,int,int,int); void ShowTeach_Building(){ }

Building::ShowBuilding(); cout<<\cout<<\

cout<<\cout<<\strcpy(Name,name); char Name[30];

protected: };

Teach_Building::Teach_Building(char *name,int no,int fl,int cr,int ar):Building(name){ }

class Dorm_Building:public Building { public:

Dorm_Building(char *,int,int,int,int,int); void ShowDorm_Building(){

Building::ShowBuilding(); cout<<\cout<<\

No=no;Floors=fl;ClassRooms=cr;Area=ar; int No,Floors,ClassRooms,Area;

}

cout<<\cout<<\

cout<<\

protected: };

Dorm_Building:: Dorm_Building(char *name,int no,int fl,int dr,int ar,int sn):Building(name){ }

int main(){ }

5.3定义并描述一个Table类和一个Circle类,由它们共同派生出RoundTable类。 (这题做得不太满意) #include using namespace std; class Table{ public:

Table(int legs){ }

Legs=legs;

Teach_Building tb(\主教学楼\Dorm_Building db(\北苑男生宿舍\tb.ShowTeach_Building(); db.ShowDorm_Building(); return 0;

No=no;Floors=fl;DormRooms=dr;Area=ar;StudentNum=sn; int No,Floors,DormRooms,Area,StudentNum;

protected: };

class Circle{ public:

Circle(int radius){ }

Radius=radius; int Legs;

protected: };

class RoundTable:public Table,public Circle{ public:

RoundTable(int legs,int radius):Table(legs),Circle(radius){} int Radius;

protected: };


C++第二学期期末考试复习资料(考试题全部来源于此)(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:外汇储备投资

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: