C++复习卷
(2015-06-09 15:59:27)
标签:
股票 |
一、单项选择题(20*2分)
1.
A) 不同的对象调用不同名称的函数
B) 不同的对象调用相同名称的函数
C) 一个对象调用不同名称的函数
D) 一个对象调用不同名称的对象
2.
A)
变量a的地址值
C)
变量p的地址值
3.
A)
构造函数
4.
A) virtual void tt()=0
B) void tt(int)=0
C) virtual void tt(int)
D) virtual void tt(int){}
5.
A) 静态数据成员可以在类体内进行初始化
B) 静态数据成员可以直接用类名或者对象名来调用
C) 静态数据成员不能用private控制符修饰
D) 静态数据成员不可以被类的对象调用
6.
A)
析构函数有且仅有一个
C) 析构函数的功能是用来释放一个对象
7.
A)
8.
A) 它可以用来动态创建对象和对象数组
B) 使用它创建对象或对象数组,可以使用运算符DELETE删除
C) 使用它创建对象时要调用构造函数
D) 使用它调用对象数组时不许指定初始值
9.
A)私有继承的公有成员
C)公有继承的保护成员
10.
11.
12.
13.
A) CStudent
B) CStudent
C) CStudent
D) CStudent
14.
A) 友元关系既不对称也不传递。
B) 友元声明可以出现在private部分,也可以出现在public部分。
C) 整个类都可以声明为另一个类的友元。
D ) 类的友元函数必须在类的作用域以外被定义。
15.
A) 纯虚函数是一种特殊的虚函数,它没有具体的实现。
B) 抽象类是指具有纯虚函数的类。
C) 一个基类说明中有纯虚函数,该基类的派生类不再是抽象类。
D) 抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出。
16.
A)
B)
C)
D)
17.
B)
C)
D)
18.
A)
B)
C)
D)
19.
以下定义该类的对象m,并对其成员v初始化的正确操作是
A) M m;
m.v=10;
C) M m;
m.*v=10;
20.
二、判断题(0.5分*10)(对的打√,错的打╳)
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
三、填空题 (10*1分)
1.
2.
3.
4.
5.
6.
7.
四、程序阅读题(4小题,共15分)
1、(3分)
下列程序的运行结果
#include
using namespace std;
class A
{
public:
};
class B:public A
{
public:
};
void main()
{
B
}
2、(3分)
#include
using namespace std;
void main()
{
}
3、(3分)
#include
using namespace std;
class A
{
private:
public:
};
class B: public A
{
private:
public:
};
class C: public A
{
private:
int
c;
public:
};
int
main()
{
}
4 、 (6分)
Constructor of CBase. m_data=abcd
Constructor of CDerived. m_data =abcd
Destructor of CBase. m_data=abcd
问题在于析构过程中只调用了基类的析构函数。正确的析构应该是先执行CDerived的析构函数,再执行CBase的析构函数。 在~CBase()加上virtual关键字即可。
class CBase {
public:
CBase(int i)
{ cout << "Destructor of CBase. m_data=" << m_data <<endl; }
protected:
};
class CDerived: public CBase
{
public:
CDerived(const char *s): CBase(strlen(s))
strcpy(m_data, s);
cout << "Constructor of CDerived. m_data = " << m_data << endl;
}
~CDerived()
{
cout << "Destructor of CDerived. m_data = " << m_data <<endl;
}
private:
};
int main()
{
p = new CDerived (“abcd”);
delete p;
}
五、编程题
1、(15分)设计一个模板,用于求一个数组的最小值。其中数组的元素个数是10,元素的值是随机的。\
(要求:包括完整的程序代码,头文件,函数模板的定义,main()中调用模板)
2、(15分)定义一个长方形(Rectangle)类,包括长度(lenth)和宽度(width)数据成员,重载“<”和“>”运算符,用来实现两个长方形比较面积,例如两个长方形R1和R2,如果R1面积小于R2,则R1返回true,否则返回false。重载“==”运算符,如果两个面积相同,则返回true,否则返回false。
(要求:定义了类,且包含三个运算符重载函数,main()中包括简单示例,调用重载后的运算符)

加载中…