您好,欢迎来到刀刀网。
搜索
您的当前位置:首页C++面向对象程序设计模拟试题二

C++面向对象程序设计模拟试题二

来源:刀刀网
C++面向对象程序设计模拟试题二

一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中,只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。

1.说明内联函数的关键字是( a )。

A. inline B. virtual C. define D. static

2.假定CAb为一个类,则执行CAb oX;语句时将自动调用该类的(b )

A. 有参构造函数 B. 无参构造函数

C. 拷贝构造函数 D. 赋值重载函数

3.cin是某个类的标准对象的引用,该类是( b )。

A. ostream B. istream C. stdout D. stdin

4.下面的哪个保留字不能作为函数的返回类型?( c )

A. void B. int C. new D. long

5.不能参与重载的运算符是( a )。

A. 类 B. 函数 C. 函数模板 D. 运算符

6.由于数据隐藏的需要,静态数据成员通常被说明为( a )。

A. 私有的 B. 公有的 C. 保护的 D. 不可访问的

7.编译时多态性使用什么获得?( a )

A. 重载函数 B. 继承 C. 虚函数 D. B和C

8.拷贝构造函数的参数通常是( c )。

A. 无特殊要求 B. 指向对象的指针

C. 自已类对象的常引用 D. 对象

9.C++有几种联编?( b )

A. 1种 B. 2种 C. 3种 D. 4种

10.基类和派生类可以分别称为( b )。

A. “大类”和“小类” B. “父类”和“子类”

C. “小类”和“大类” D. “子类”和“父类”

二、判断正误题(本大题共6小题,每小题2分,共12分)判断正误,在题后的括号内,正确的划上“√”错误的划上“×”。

1.不可以定义抽象类的对象。 ( a )

2.内联函数的定义必须出现在第一次调用内联函数之前。 ( a )

3.模板函数与函数模板的意义完全相同。 ( b )

4.只有常成员函数才可以操作常对象。 ( a )

5.引用可以不初始化。 ( b )

6.使用new运算符创建数组时,可以为该数组指定初始值。 ( b )

三、填空题(本大题共6小题,每小题2分,共12分)不写解答过程,将正确的答案写在每小题的空格内。错填或不填均无分。

1.设函数max是由函数模板实现的,并且max(3.5, 5)和max(3, 5)都是正确的函数调用,则此函数模板具有( 2 )个类型参数。

2.在C++中,函数重载与虚函数帮助实现了类的( 多态 )性。

3.由static修饰的数据成员为该类的所有对象( 都可访问 )。

4.重载函数在参数类型或参数个数上不同,但( 函数名 )相同。

5.使用new建立的动态对象在不用时必须用( delete )释放所占用的空间。

6.重载运算符“<<”的函数名为( operator<< )。

六、编程题(本大题共2个小题,每小题8分,共16分)

1.编写一个函数模板,用于求数组中各元素之和,并编写测试程序进行测试。

函数模板声明如下:

template

Type Sum(Type tArray[], int iSize)

2.定义一个抽象类CShape,它有一个纯虚函数GetLength();派生出四边型类CSquare和圆类CCircle,在派生类中重载函数GetLength(),用于求图形的周长,编写测试程序进行测试。

C++面向对象程序设计模拟试题二参

一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中,只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。

1.A 2.B 3.B 4.C 5.A

6.A 7.A 8.C 9.B 10.B

二、判断正误题(本大题共6小题,每小题2分,共12分)判断正误,在题后的括号内,正确的划上“√”错误的划上“×”。

1.参:√

2.参:√

3.参:×

4.参:√

5.参:×

6.参:×

三、填空题(本大题共6小题,每小题2分,共12分)不写解答过程,将正确的答案写在每小题的空格内。错填或不填均无分。

1.参:2

2.参:多态

3.参:共享

4.参:函数名

5.参:delete

6.参:operator<<

六、编程题(本大题共2个小题,每小题8分,共16分)

1.参考程序:

#include

using namespace std;

template

Type Sum(Type tArray[], int iSize)

{

Type tSum = 0;

for (int i = 0; i < iSize; i++)

{

tSum = tSum + tArray[i];

}

return tSum;

}

int main(void)

{

int a[] = {1, 2, 3};

double b[] = {1.5, 2.8, 8.9, 8};

cout << Sum(a, 3) << endl;

cout << Sum(b, 4) << endl;

return 0;

}

2.参考程序:

#include

using namespace std;

class CShape

{

public:

virtual double GetLength() const = 0;

};

class CSquare:public CShape

{

public:

CSquare(double dWidth, double dHeight)

{

m_dWidth = dWidth;

m_dHeight = dHeight;

}

double GetLength() const

{

return 2 * (m_dWidth + m_dHeight);

}

private:

double m_dWidth, m_dHeight;

};

class CCircle:public CShape

{

public:

CCircle(double dRadius)

{

m_dRadius = dRadius;

}

double GetLength() const

{

return 3.1415926 * m_dRadius * m_dRadius;

}

private:

double m_dRadius;

};

int main(void)

{

CSquare oSquare(2, 3);

cout << oSquare.GetLength() << endl;

CCircle oCircle(10);

cout << oCircle.GetLength() << endl;

return 0;

}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务