面向对象程序设计(C++)自我测试练习参考答案 联系客服

发布时间 : 星期一 文章面向对象程序设计(C++)自我测试练习参考答案更新完毕开始阅读6d699ec07cd184254a353549

{ Cat a,b; cout<

5.定义一个类,完成如下操作:从键盘上输入两个学生的学号、姓名和计算机课考试分数,然后分别把它们显示出来。要求:把所需要的变量定义为私有变量,输入和输出操作各用一个内联函数来实现。

#include \class CStudent { long ID; char name[10]; int score; public: inline void DataInput() { cout<<\请输入学号、姓名和分数:\ cin>>ID>>name>>score; } inline void Display() { cout<<\学号=\姓名=\分数=\ } };

void main() { CStudent a,b; a.DataInput (); b.DataInput (); a.Display (); b.Display (); }

第7章 继承与派生

一、单选题

1. 下列对派生类的描述中,错误的是( D )。 A.派生类至少有一个基类 B. 派生类可作为另一个类的基类 C. 派生类除了包含它直接定义的成员外,还包含其基类的成员 D. 派生类所继承的基类成员的访问权限保持不变 2. 派生类对象可直接访问基类中的( A )。 A.公有继承的公有成员 B. 公有继承的私有成员

C.公有继承的保护成员 D. 私有继承的公有成员 3.当派生类中有和基类一样名字时,一般来说( C )。 A. 将产生二义性 B. 派生类的同名成员将覆盖基类的成员 C. 是不允许的 D. 基类的同名成员将覆盖派生类的成员 4.在定义一个派生类时,若不使用关键字显示地规定采用何种继承方式,则默认为( A )方式。 A. 私有继承 B. 非私有继承 C. 保护继承 D. 公有继承 5. C++的虚基类机制可以保证( D )。 A. 限定基类只通过一条路径派生出派生类 B.允许基类通过多条路径派生出派生类,派生类也就能多次继承该基类 C. 当一个类多次间接从基类派生以后,派生类对象能保留多份间接基类的成员 D. 当一个类多次间接从基类派生以后,其基类只被一次继承

二、填空题

1.用来派生新类的类称___基(父)类______,而派生出来的新类称为该类的子类或派生类。

2.如果一个派生只有一个唯一的基类,则这样的继承关系称为___单继承___。 3.分析下列程序,根据输出结果完善程序。要求:

(1)在主函数中不可能通过对象c1访问类中的所有数据成员。 (2)程序运行结果为:3 6 9。 #include \class A {

(1)___ protected:_______//最合理的访问权限 int a; public:

A(int i=0){a=i;} };

class B {

(2)__ public:___//最合理的访问权限 int b; public:

B(int i=0){b=i;} };

class C: public A {

int c; B b1; public:

(3) C(int x,int y,int z):A(x)___//根据运行结果定义构造函数 { (4)_ c = z;b1.b=y;_} void show()

{ (5)_ cout<

};

void main() {

C c1(3,6,9); c1.show (); }

三、编程题

1.定义一个基类Animal,有私有整型成员变量age,构造其派生类Dog,在其成员函数SetAge(int n)中直接给age赋值,看看有什么问题,把age改成公有成员变量还会有问题吗“编程试试看。 #include \class Animal {

//public: int age; public: Animal(int i=0){age=i;} };

class Dog: public Animal {

public: void SetAge(int n){ age = n;} };

void main() { Dog d; d.SetAge(6); } 2. 编写一个程序,有一个汽车类vehicle,它具有一个需要传递参数的构造函数,类中的数据成员车轮个数wheels和车重weight放在保护段中;小车类car是它的私有派生类,其中包含载人数passenger_load;卡车类truk是vehicle的私有派生类,其中包含载人数passenger_load和载重量payload。每个类都有相关数据的输出方法。 #include \class vehicle {

protected: int wheels,weight; public: vehicle(int wh,int wt) { wheels=wh;weight=wt; } void disp() {

cout<

class car: private vehicle { int passenger_load; public: car(int a,int b,int c):vehicle(a,b) { passenger_load = c; } void disp() { cout<<\ } };

class truk: private vehicle { int passenger_load,payload; public: truk(int a,int b,int c,int d):vehicle(a,b) { passenger_load=c; payload=d; } void disp() { cout<<\\pa=\p=\ } };

void main() { car a(4,5,30); truk b(4,5,30,100); a.disp (); b.disp (); } 3. 定义一个学生类Student,包括:成绩score及两个静态数据成员总分total和学生人数count;成员函数scoretotal(float s)用于设置分数、求总分及累计学生人数;静态成员函数sum用于返回总分;静态成员函数average()用于求平均分。在main()函数中,输入某班同学成绩,并调用上述函数求全班学生的总分和平均分。