一.选择题(每题只有一个最佳答案,每题2分,一共40分)
1. 有关构造函数的说法不正确的是    D 
A. 构造函数名字和类的名字一样   
B.构造函数在说明类变量时自动执行
C. 构造函数无任何函数类型   
D.构造函数有且只有一个
2. 有关类的说法不正确的是    D   
A. 类是一种用户自定义的数据类型   
B. 只有类中的成员函数才能存取类中的私有数据
  C. 在类中,如果不作特别说明,所指的数据均为私有类型
D. 在类中,如果不作特别说明,所指的成员函数均为公有类型
3. 有关类和对象的说法不正确的是    C   
A. 对象是类的一个实例
B. 任何一个对象只能属于一个具体的类
C. 一个类只能有一个对象
D. 类与对象的关系和数据类型和变量的关系相似
4. 下面有关重载函数的说法中正确的是  D   
A. 重载函数必须具有不同的返回值类型
B. 重载函数形参个数必须不同
C. 重载函数名可以不同
D. 重载函数必须有不同的形参列表
5. 已知类Sample中的一个成员函数说明如下:
  void Set(Sample &a);
  其中,Sample &a 的含义是    C   
  A. 指向类Sample 的指针为a
B. a的地址值赋给变量Set
  C. a是类Sample的对象引用,用来作函数Set()的形参
D. 变量Samplea按位相与作为函数Set()的参数
6. 一个类的友元函数能够访问该类的    D 
A.私有成员    B.保护成员    C.公有成员    D.所有成员
7. 在私有继承中,基类的公有成员将成为其派生类的    C    成员。
A.公有      B.保护        C.私有      D.静态
8. 类的默认的无参构造函数  D   
  A. 在任何情况下都存在   
B. 仅在未定义无参构造函数时存在
C. 仅在未定义有参构造函数时存在           
D. 仅在未定义任何构造函数时存在
9. C++中,通过  A    的机制可以扩充和完善旧的程序设计以适应新的需要。
  A. 继承        B. 封装        C. 多态          D. 重载
10. 虚函数与重载函数的关系以下说法正确的是    D     
A. 重载函数的返回类型及所带的参量可以不同     
B. 重载函数只要求函数名相同即可     
C. 虚函数返回类型不同也可     
D. 虚函数要求函数名、返回类型、参量个数、参量类型和顺序都与基类中原型完全相同。
11. 有以下类的说明,请指出错误的地方    B 
  class CSample
  {
      int a=2.5;        A
      Csample();        B
    Public:
      CSample(int val); C
      ~CSample();      D
  };
12. 若类Aa和类Bb的定义如下:
  class Aa
  {
        int i,j;
        public:
        void get();
    };
    class Bb:Aa
    {
          int k;
          public:
          void make();
          //
      };
      void Bb::make()
      {
            k=i*j;
      }
  则上述定义中,    D    是非法的表达式。
  A. void get();    B. int k;
  C. void make();    D. k=i*j;
13. 假设person是一个类,p1是该类的一个对象,p2是指向p1的指针,getname是该类的一个成员函数,则以下不正确的表达是    C   
  A. ame()                B. p1.getname()
  C. p1.person::getname()            D. p2->getname()
14. 4个类:disp为基类,它含有一个需传递一个参数的构造函数,用它来为其私有成员x赋值,并显示;类a中含有一个disp类的成员对象;类b为类a的派生类,并在其中也含有一个disp类的成员对象;类c是类b的派生类。类的构造如下,请填写出正确的输出结果。
    #include<iostream.h>
    class disp
    {  int x;
      public:
指向类成员函数的指针        disp(int x){disp::x=x; cout<<class disp<<endl;}
    };
    class a
    {  disp dl;
      public:
          a(int x):dl(x){cout<<class a<<endl}
    };
    class b:public a
    {  disp d2;
        public:
            b(int x):a(x),d2(x){cout<<class b<<endl}
      };
    class c: public b
    {  public:
          c(int x):b(x)
          {cout<<class c<<endl;}
    };
    void main()
    {
        c obj(5);
      }
  运行结果为:
              14
              (15) B 
              (16) A 
              (17) C
    18
  A. class disp    B.class a      C.class b      D.class c
19. 应在下列程序划线处填入的正确语句是     
    #include<iostream.h>
    class Base
    {  public:
      void fun(){cout<<Base::fun<<endl;
    };
    class Derived:public Base
    {  void fun()
        {              C           
            cout<<Derived::fun<<endl;
        }
    }
  A. fun();                            B. Base.fun(); 
C. Base::fun();                      D. Base->fun();
20. 下面程序哪句是错误的    C   
class base{
      //
};
class derive:base{
      //
};
main()
{
      base obj1,*ptr1;      A
      derive obj2;          B
      ptr1=&obj2;            C
      ptr1=&obj1;            D
      //
}
二.填空题 123分,234567题各9分,一共60分)
1. 构造函数 是个特殊成员函数,用于初始化类的数据成员。
2. 派生类从基类私有派生时,基类的共有成员在派生类中是  私有 成员。
3. swap()函数利用引用作为参数实现两个变量的交换,将程序填写完整。
    #include<iostream.h>
    void swap(  int &x,int &y )
    {
        int temp;
        temp=x;
        x=y                ;
        y=temp;
      }
    void main()
    {
        int a,b;
        cin>>a>>b;
        swap( a,b );
        cout<<a<<””<<b<<endl;
      }
4. 下面程序的运行结果是 x=6  y=6 
x=y     
#include<iostream.h>
  class Sample
  {
    int x,y;
    public:
    Sample(){x=y=0;}
    Sample(int a,int b){x=a;y=b;}
    ~Sample()
      {
          if(x==y)
            cout<<x=y<<endl;
          else
              cout<<x!=y<<endl;
        }
      void disp()
        {  cout<<x=<<x<<y=<<y<<endl;}
    };
    void main()
    {
      Sample s1(6,6);
      S1.disp();
    }
n=30,k=3
n=20,k=3
  n=10,k=3
5. 下面程序的运行结果是                      
#include<iostream.h>
  class CSample
  {  int n;
    static int k;

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