C++面向对象程序设计模拟试题6
C++面向对象程序设计模拟试题六
一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中,只有一个是苻合题目要求的。请将其代码填写在题后的括号内。错选,多选或未选均无分。
1.类的析构函数( d )。
A)作为类的一般成员函数B)类初始化时被调用
C)对象初始化时被调用D)对象被删除时被调用
*2.一个类的友元函数或友元类可以访问该类的( d )。
A)私有成员 B)保护成员 C)公有成员 D)所有成员
*3.下列关于成员函数特征的描述中,( a ) 是错误的。
A)成员函数一定是内联函数B)成员函数可以重载
come up
C)成员函数可以设置参数的默认值 D)成员函数可以是静态的
*4.下列函数中,( c ) 不是类的成员函数。
A)构造函数B)析构函数C)友元函数D)拷贝构造函数
*5.下列对派生类的描述中,( b ) 是错误的。
A)一个派生类可以作为另一个派生类的基类
B)派生类至少有一个基类
C)派生类的成员除了它自己的成员外, 还包含了它的基类的成员
D)派生类中继承的基类成员的访问权限到派生类中保持不变calarts
6.下列的描述中,( d ) 是错误的。
A)公有继承时基类中的public成员在派生类中仍是public的
B)公有继承时基类中的private成员在派生类中仍是private的
C)公有继承时基类中的protected成员在派生类中仍是protected的
D)私有继承时基类中的public成员在派生类中仍是private的alpha什么意思
7.下列虚基类的声明中正确的是( a )。
A)class virtual B: public A B)virtual class B: public A
C)class B: public A virtual D)class B: virtual public A
8.若类A和类B的定义如下:
class A
{
int i, j;
public:
A(int m, int n): i(m), j(n) {}
int Geti() { return i;}
};
class B: public A
{
int k;
public:
B(int m, int n, int u): A(m, n), k(u) {}
void Make() { k = i * j; }
};
int main()
{
B b(1, 2, 3);
return 0;
}
nanguo则上述定义中,( a ) 是非法的表达式.
grindingA)k=i*j; B)int k; C)return i; D)void Make( ) 9.若有以下程序:
#include
using namespace std;
class A
{
public:
int a;
angelisA() { a =10; }
};
class A1: public A
{
public:
A1() { a = a + 1; } \
};
class A2: public A
{
public:
printscreenA2() { a = a + 2; }
};
吝啬鬼什么意思
class B: public A1, public A2
{
public:
B() {}
void Print() { cout << a << endl; }
};x疾病
int main()
{
B obj;
obj.Print();
return 0;
}
则程序编译或运行后的输出结果为:a
高考方案A)提示语法错误B)13 C)12 D)10
10.在下面的4个关键字中,( a ) 是用来说明虚函数的。
A)virtual B)public C)protected D)private
二、填空题(本大题共5小题,每小题2分,共10分)将正确的答案写在每小题的空格内,错填或不填均无分。
1.通过类创建(对象)来要调用构造函数。
2.假定AB为一个类,则执行“AB a[10];”语句时,系统自动调用该类的构造函数的次数为(10 )。
3.使用函数模板的方法是先说明函数模板,然后实例化成相应的(模板函数)进行调用执行。