C++练习试卷2及参考答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C++练习试卷2及参考答案

一、填空题(每小题2分,共16分)

1.对象中封装了描述该对象的①和②,每个对象就是一个微小的

程序。

2.类是抽象的,①占用内存,而对象是具体的,②占用内存。

3.封装可以使得程序中各部分之间的相互影响变①,并且提高程序的安全性。

4.继承的方式有三种:①继承、②继承、③继承。

5.虚拟函数在①时表现出多态功能;而重载函数则在②时表现出多态性。

6.定义抽象类就是在类定义中至少声明一个①函数。

7.所谓模板是一种使用类型参数来产生一系列①或②的机制,是C++的一个重要特性。

8.如果异常错误类型为C++的类,并且该类有其基类,则应该将①类的错误处理程序放在前面, ②类的错误处理程序放在后面。

二、单项选择题(每小题2分,共20分)

1、下列函数中,( )不能重载.

A.成员函数

B.非成员函数

C.析构函数

D.构造函数

2、.继承具有( ),即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员.

A.规律性

B.传递性

C.重复性

D.多样性

3、已知:print()函数是一个类的常成员函数,它无返回值,下列表示中, ( )是正确的.

A.void print() const

B.const viod print()

C.void const print()

D.void print(const)

4、.类模板的使用实际上是将类模板实例化成一个具体的( ).

A.类

B.对象

C.函数

D.模板类

5、( )是析构函数的特征.

A.一个类中只能定义一个析构函数

B.析构函数名与类名不同

C.析构函数的定义只能在类体内

D.析构函数可以有一个或多个参数

6、采用函数重载的目的在于( ).

A.实现共享

B.减少空间

C.提高速度

D.使用方便,提高可读性

7、下列do-while循环的循环次数为( ).

已知:

int i=6;

do{cout<

i--;

}while(i!=0);

A.0

B.1

C.3

D.无限

8、C++语言中规定函数的返回值的类型是由( ).

A.return语句中的表达式类型所决定

B.调用该函数时的主调用函数类型所决定

C.调用该函数时系统临时决定

D.在定义该函数时所指定的函数类型所决定

9、( ).是子类对父类的函数覆盖而不是重载,而覆盖是一种浮在表面的遮掩,而不是渗透性、摧毁性的重建。

A. 重载函数

B.友元函数

C.虚函数

D.模板函数

10、要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用( )合适。

A. 内联函数;

B. 重载函数;

C. 递归调用;

D. 嵌套调用。

三、简述题(9分)

简述对象化编程与过程化编程的优缺点。

四、阅读程序,写出运行结果(每小题7分,共35分)

1.

//////////////////////////////

// cat.h //

//////////////////////////////

#include

class Cat

{ public:

int GetAge();

void SetAge(int age);

void Meow(); //喵喵叫protected:

int itsAge;

};

int Cat::GetAge()

{return itsAge;}

void Cat::SetAge(int age) {itsAge=age;}

void Cat::Meow()

{cout<<“Meow.\n”;}

////////////////////////////////////////

// cat.cpp //

////////////////////////////////////////

#include

#include “cat.h”

void main()

{Cat frisky;

frisky.SetAge(5);

frisky.Meow();

cout<<“frisky is a cat who is”

<

<<“years old. \n”;

frisky.Meow();}

2.===========================================================

#include

class A

{ public:

A(); A(int i,int j);

~A(){cout<<"Destructor.\n";}

void print();

private:

int a,b;

};

A::A() { a=5;b=10;

cout<<"Default constructor.\n"; } A::A(int i,int j)

{ a=i,b=j;cout<<"Constructor.\n";} void A::print()

{cout<<"a="<

{ A obj1,obj2(15,18);

obj1.print();

obj2.print(); }

3.============================================================

#include

void main()

{ int x=7,y=3;

switch(x%2) // 求余数

{ case 1:

switch (y)

{ case 0:cout<<"AAAA\t";

case 1:cout<<"BBBB\t";break;

default: cout<<"CCCC\t";

}

case 2:cout<<"Thanks\n";

}

}

4. ============================================================

#include #include template

T min(T& a, T& b) { return a>b?b:a;} char* min(char* a, char* b)

{ return (strcmp(a, b)>0 ? b: a);} void main()

{ cout <

5. ===========================================================

#include

class ST

{public:

ST(){cout<<”constructing…”<

~ ST(){cout<<”destructing…”<

void main()

{ ST st;

相关文档
最新文档