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

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

A.构造函数名与类名相同 B. 构造函数可以重载

C.构造函数可以设置默认参数 D. 构造函数必须指定类型说明 7.下列选项中,为析构函数的特征的是( A )。

A.一个类中只能定义一个析构函数 B. 析构函数名与类名不同

C.析构函数的定义只能在类体内 D. 析构函数可以有一个或多个参数 8.下面关于成员函数特征的描述中,错误的是( A )。

A. 成员函数一定是内联函数 B. 成员函数可以重载 C.成员函数参数可以设置默认 D. 成员函数可以是静态的 9.以下有关友元函数的描述中,错误的是( B )。 `` A. 友元函数不是成员函数

B. 友元函数加强了类的封装性

C. 在友元函数中可以访问所属类的私有成员 D. 友元函数的作用是提高程序运行效率 10.已知一个类A,可以定义类A的对象或定义类A的指针,下列一定不正确的形式是( C)。 A.A a1; B. A a2(12); C. A a3(); D. A *p = new A;

二、填空题

1. 解释类和对象有什么区别是( )。

2.C++关键字private和public有什么区别是( )。 3.在成员函数中,可以通过( )指针访问一个对象的数据。

4. C++中,虽然友元提供了类之间进行数据访问的快捷方式,但它破坏了面向对象程序设计的( 类信息隐蔽性)特性。

5. 写出下例程序的运行结果。

#include class Sample { };

void main() { }

Sample c1(1),c2(3);

cout<<&c1<<\c1.Display(); //B c2.Display(); //C int x;

Sample(int a=0) { this->x = a; } void Display() {

cout<x<<\}

public:

若A行输出是0x0012FF7C,0x0012FF78,则B行和C行的输出是( 1,0x0012FF7C;3,0x0012FF78 )。

三、编程题

1.设计一个表示学生信息类,其中包括:姓名、年龄和3门课程的成绩,并可设置学

生的相关信息,显示学生的信息。

#include \#include \void main(void) {

class MyScore {

private: char name[16]; int age;

int score1,score2,score3; public: void SetData(char *n,int a,int s1,int s2,int s3) { strcpy(name,n); age = a; score1=s1;score2=s2;score3=s3; } void Display() { cout<

MyScore a;

a.SetData(\ a.Display(); }

2.使用成员函数重载设计一个求面积的类,包括圆、三角形和梯形。并设计一个输入成员函数和输出成员函数。 class Area {

public: double r,a,b,h,s;

double MyArea(double); double MyArea(double,double );

double MyArea(double,double,double); void MyInput(); void MyPut(); };

//类中成员函数的实现:

double Area::MyArea (double r)

{ double s; s = 3.14*r*r; return s; }

double Area::MyArea (double a,double h) { double s; s = 0.5*a*h; return s; }

double Area::MyArea (double a,double b,double h) { double s; s = (a+b)*h/2.0; return s; } void Area::MyInput() { cin>>r>>a>>b>>h; } void Area::MyPut() { cout<

{ if(score>=60)cout<<\ else cout<<\ }

public: Grade(char *n,int s=0) { strcpy(name,n); score = s; } void PrintData() { cout<<\ isPass(); } };

void main() { Grade a(\ a.PrintData(); b.PrintData(); c.PrintData(); }

4.定义一个类Cat,拥有静态数据成员HowMangCats,记录Cat的个体数目;静态成员函数GetHowMang,存取HowMangCats。设计程序测试这个类,体会静态数据成员和静态成员函数的用法。

#include \class Cat {

public:

static int HowMangCats; Cat() {

HowMangCats++; }

static int GetHowMang() {

return HowMangCats; } };

int Cat::HowMangCats =0; void main()