一  选择题
  1. 对类的构造函数和析构函数描述正确的是__[1]___
    A)构造函数可以重载,析构函数不能重载
    B)构造函数不能重载,析构函数可以重载
    C)构造函数可以重载,析构函数也可以重载
    D)构造函数不能重载,析构函数也不能重载
  2.  类的析构函数的作用是___[2]___
    A)一般成员函数    B)类的初始化  C)对象的初始化    D)删除对象
  3. 假定MyClass为一个类,则该类的拷贝初始化构造函数的声明语句为___[3]___
    A)MyClass&(MyClass  x);    B)MyClass(MyClass  x)
    C)MyClass(MyClass& x);    D)MyClass(MyClass  *x)
  4. 假定MyClass为一个类,则执行MyClass a,b(2),*p;  语句时,自动调用该类构造函数_[4]_次。
    A)2      B)3      C)4      D)5构造函数可以被重载
5  下面对于友元函数描述正确的是__[5]___
    A)友元函数的实现必须在类的内部定义
    B)友元函数是类的成员函数
    C)友元函数破坏了类的封装性和隐藏性
    D)友元函数不能访问类的私有成员
6  在C++中,数据封装要解决的问题是___[6]___
    A)数据的规范化    B)便于数据转换
    C)避免数据丢失    D)防止不同模块之间数据的非法访问
7  一个类的友元函数或友元类能够通过成员操作符访问该类的____[7]____
    A)私有成员    B)保护成员    C)公用成员    D)所有成员
9  为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问
    权限定义为___[9]____
    A)public    B)protected    C)private    D)static
10  下面对静态数据成员的描述中,正确的是___[10]___
    A)静态数据成员可以在类体内进行初始化
    B)静态数据成员不可以被类的对象调用
    C)静态数据成员不能受private控制符的作用
    D)静态数据成员可以直接用类名调用
11  下面对静态数据成员的描述中,正确的是__[11]___
    A)静态数据成员是类的所有对象共享的数据
    B)类的每个对象都有自己的静态数据成员
    C)类的不同对象有不同的静态数据成员值
    D)静态数据成员不能通过类的对象调用
12  对于下面定义的类MyClass,在函数f()中将对象成员n的值修改为50的语句应该
是___[12]___
class MyClass
{
public:
              MyClass(int x) { n = x;}
              void SetNum(int nl){ n =nl; }
private:
            int n;
}
int f( )
{
        MyClass  *ptr = new MyClass(45);
        _____________
}
A) MyClass(50)  B) SetNum(50)  C) ptr->SetNum(50)  D) ptr->n = 50
13下面是类MyClass的定义,对定义中语句描述正确的是___[13]___
class MyClass
{
public:
            void MyClass(int a) { X = a; }            //①
            int f(int a, int b)                      //②
            {
                  X=a;
                  Y=b;
            }
            int f(int a, int b, int c = O)              //③
            {
                  X=a;
                  Y=b;
                  Z=c;
            }
            static void g() { X=10; }              //④
private:
            int X, Y, Z;
};
A)语句①是类MyClass的构造函数定义
B)语句②和语句③实现类成员函数的重载
C)语句④实现对类成员变量X的更新操作
D)语句①和④都不正确, ②和③有二义。
二、 填空题
15  在C语言中,编程的单位是__①___;在C++语言中,编程的单位是__②____。
16  类是对具有共同属性和行为的一类事物的抽象描述,共同属性被描述为类中的
  __①___,共同行为被描述为类中的__②____。
17  类的具体表现是通过定义_______来操作的。
18  对类中的成员函数和属性的访问是通过__①___、__②____和__③___这3
    个关键字来控制的。
19  一般情况下,按照面向对象的要求,把类中的数据成员(属性)定义为__①___权
    限,而把成员函数(方法)定义为__②____权限。   
20)  在类定义中,数据和成员函数默认权限是_________。
21  类中构造函数有__①___个,析构函数有__②____个。
22  类中的构造函数是一个特殊的成员函数,它由类的对象__①___调用,它的作用
    是__②____。
23  在定义类的对象时,C++程序将自动调用该对象的______函数初始化对象自身。
24  在撤销类的对象时,C++程序将自动调用该对象的______函数。
25 __①___运算符对指定类型对象动态分配内存并返回____②____。
26 ________运算符删除(25)题中的运算符所动态分配的内存空间。
27  假定用户没有给一个名为MyClass的类定义构造函数,则系统为其定义的默认构造
    函数形式为______。
28  假定用户没有给一个名为MyClass的类定义析构函数,则系统为其定义的默认析构
    函数形式为______。
29  在类中定义和实现的函数称为________。
30  非成员函数应声明为类的________才能访问这个类的private成员。
31  若要把类FriendClass定义为类MyClass的友元类,则应在类MyClass的定义中加入
    语句________。
32  若要把函数void FriendFunction()定义为类MyClass的友元函数,则应在类MyClass   
    的定义中加入语句_______。
33下面的类中定义了一个关于星期的枚举类型,请完成下面的程序。
          class MyClass
{
public:
    enum Week {Sun,Mon,Tue,Wed,Thur,Fri,Sat };
    Week week;
        }
void fun(MyClass &my)
{
            ___①____= __②____; //将对象my的week赋值为所定义的枚举类型
                                //值为3的枚举量
        }
34  在下面程序的横线处填上适当的语句,使该程序执行结果为10。
#include <iostream.h>
class MyClass
{
public:
            ___①____        //为x置值
            ___②____        //取x值
private:
            int x;
};
void main()
{
        MyClass my(10);
cout << my.GetNum() << endl;
}
35  完成下面的类定义。
class MyClass
{
public:
            MyClass( ) { x = 0; }
              ___①___ int GetNum(__②____ my);
private:
            int x;
};
int GetNum(__②____  my)
{
        return my.x;
}
三、编写程序:
1.定义一个Point类来处理三维点points(x,y,z).该类有一默认的constructor,一copy constructor, 一negate()成员函数将point的x,y和z值各乘-1, 一norm()成员函数返回该点到原点(0,0,0)的距离,一个print()成员函数显示x,y,和z的值。
2.定义一个Person类,它的每个对象表示一个人。数据成员必须包含姓名、出生年份、死亡年份,一个默认的构造函数,一析构函数,读取数据的成员函数,一个print()成员函数显示所有数据。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。