视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
c++复习试卷 4
2025-10-05 17:17:33 责编:小OO
文档
课程名称: 面向对象程序设计    (  B卷  闭卷)

适用专业年级:计算机科学与技术08级 考试时间: 100分钟

一、判断题,正确的打√,错误的打×(每小题1分,共10分)

1.类的友员函数是指可以访问本类私有成员的其它类的成员函数。(  ×    )

2.在定义二维数组时,语句“int  a[][3]={{1,3,5},{2}};”是正确的。(   √  )

3.如果一个类的所有对象都共享某一个变量,则应当将该变量定义为该类的私有成员。( × )

4.函数重载时,它们的参数个数和类型要求都不能相同。(   ×   )

5.在文档/视图结构的程序中,输出是在OnDraw()函数中完成的。(   √   )

6.在C++中,标识符Max和MAX是不一样的。(   √   )

7.析构函数的作用是当对象不用时,删除对象。(   ×  )

8.在C++中,文件的输入输出可以通过iostream类对象来完成。(  ×    )

9.在声明一个类时,可以不同时声明类的数据成员和成员函数。(   √    )

10.在VC6.0开发环境中,可以同时开发几个工程。(    √    )

二、简答题(每小题8分,共24分)

1.简要说明面向对象的程序设计的四个主要特征。 

答:主要特征:1)、抽象,即忽略当前主题中与目标无关的那些方面,把它的主要特征抽取出来。抽象包括数据抽象和代码抽象。2)、封装,它是将抽象得到的数据成员和代码相结合,形成一个有机的整体。并且,封装可以隐藏内部的细节。3)、继承,它提供了代码重用的一种方式,派生类可以重用基类的属性和行为。4)、多态性,它是指不同类的对象对同一消息作出不同反应,即c++的代码可以根据运行情况的不同而执行不同的操作。

2.类和结构有什么异同? 

答:结构是类的一种特例,在结构体中也可以定义成员函数、构造函数和析构函数,成员也可使用private、protected、public。结构和类的区别是:在缺省情况下,结构中的所有成员都是公有的,而在类中是私有的.

3.多态性是指什么?C++中多态性是如何实现的?

答:多态性是指:向不同的对象发送同一个消息,不同的对象在接收时会产生不同的行为(即方法)。  C++中,多态性是通过指针和虚函数来实现的。

三、填空题(每空2分,共10分)

1.根据程序说明和程序中的注释,填充程序中不完整的部分。

类Number的成员函数Factorial是递归函数,功能是求n!(即n的阶乘,假设n>0)。

#include

using namespace std;

class Number

private:

    int Num;

public:    

    int n;

    int Factorial (int n) //递归函数Factorial (n)求n! 。

    {

        if (___(1)_n==0__) return 1;

        else return ___(2)_n*Factorial (n-1)__;   

    }

    int GetNum()

    {

        return Num;

    }

Number(int n=1) {if (n<=0) Num=1; else Num = n;}

};

void main()

{    

    Number *p1,*p2;

    p1 = ___(3)_new Number__;//动态生成由p1指向的Number对象,使用缺省参数。

    P2 =___(4)__new Number(7)_;//动态生成由p2指向的Number对象,并使Num为7。

    cout<Factorial(___(5)_p2->GetNum()__);//输出Num!。

    delete p1;

    delete p2;

}

四、阅读下面的程序,写出程序运行的结果。(共26分)

1.程序1(6分)

#include

using namespace std;

int main()

{

 int a=7,b;

 int &c=b;

 int f(int x,int y,int z);

 b=a++;

 c=f(a,b,c);

cout<<"a="<   AA(int a) {cout<<"AA con"<~AA( ){cout<<"AA des"<};

class BB

{

public:

    BB(int b=2) {cout<<"BB con"<~BB( ){cout<<"BB des"<};

class CC:public AA,public BB

{

public:

    CC( ):member(5 ),BB( ),AA( ) {cout<<"CC con."<~CC( ){cout<<"CC des"<private:

    AA  member;

};

void main( )

{

    CC  obj;

}

运行结果为:

AA con

BB con2

AA con5

CC con.

CC des

AA des

BB des

AA des

五、理解问答题(10分)

说明:读懂如下程序,回答题后的问题。

#include

class Person                     

{

private:

int Num;

public:

int age;

char name[10];

    virtual void Speak() 

{ cout<<"No Speak."<};       

class Chinese : public Person                     

{

public:

    virtual void Speak()

{ cout<<"Speak Chinese."<}; 

class American : public Person                

{

public:

    virtual void Speak()

{ cout<<"Speak English."<};

void main()

{

    Person    *p1, obj;             

    Chinese c1;

    American a1; 

    p1 = &c1;  

p1->Speak();

    p1 = &a1;

p1->Speak();

obj = c1;                     

obj.Speak();    

obj = a1;                     

obj.Speak();    

}

请回答的问题:

(1)写出程序运行的结果。(4分)

Speak Chinese.

Speak English.

No Speak.

No Speak.

(2)如果把Person类中的Speak()函数说明语句的virtual去掉,即把语句virtual void Speak()改为:void Speak()。再写出程序运行的结果。(4分)

No Speak.

No Speak.

No Speak.

No Speak.

(3)如果把Person类中的Speak()函数改为纯虚函数,应如何修改该函数?(2分)

    virtual void Speak() = 0;

六、编程题(20分)

定义一个教师类teacher,它的私有数据成员有Num(教工号,为int型)、Name(姓名,为string型)、Age(年龄,为int型)、Sex(性别,为char型)。公用成员函数有:GetNum( ),它返回教工号;Display( ),它输出教师的上述基本信息(注意:Display( )函数在类外定义)。教师类的构造函数原型为:teacher (int Num0=1001, string Name0="彭老师", int Age0=30,char Sex0='1')。

要求:

(1) 编写类teacher,并编写一个主程序,主程序中定义了2个教师对象(其中有一个教师的参数为默认参数,另一个参数可以是任意有效值),然后,输出2个教师的基本信息。

(2)定义一个输出文件TFile.txt,把上述两个教师对象的教工号Num输出到这个文件中。

#include

#include

using namespace std;

class teacher

{

    private:

        int Num;

        string Name;

        int Age;

        char Sex;

    public:

        int GetNum() { return Num;};

        teacher(int Num0=1001, string Name0="彭老师", int Age0=30,char Sex0='1')

        {

            Num = Num0;

            Name = Name0;

            Age = Age0;

            Sex = Sex0;

        }

        void display();

};

void teacher::display()

{

cout<<"Num="<    t1.display();

    t2.display();

    ofstream f1("TFile.txt",ios::out);

f1<    f1.close();

    return 0;

}下载本文

显示全文
专题