网站导航:首页 -> 软件水平考试 -> 软件水平考试指导 -> 面向对象程序设计C++复习资料(一)

面向对象程序设计C++复习资料(一)

一、名词解释 
1、多态性   2、构造函数   3、继承性   4、友元 
二、填空 
1、类的三大基本特性__________、__________、__________。 
2、c++语言的函数参数传递方式有__________。 
3、含有虚函数的类称为__________,含有纯虚函数的类为__________,为克服重复继承的二义性,用__________声明的基类称为虚基类,用__________声明函数称为虚函数。 
4、在含有对象成员的派生类中,构造函数的调用次序,基类的构造函数对象成员的构造函数,派生类的构造函数的调用次序? 
5、派生类对基类继承控制访问有三种__________。 

三、单项选择 
1、那个不是c++的基本数据类型(   )。 
2、c++语言中有哪些存放在动态存储区。 (  ) 
3、下面对于指针的描述不正确的是(  )。 
  a、指针是地址变量         b、指针不能用除0以外的常量赋值 
  c、两个指针变量的加减法无意义   d、指针指向不同基类型的变量长度不同 
4、下面对于析构函数的描述中不正确的是(  )。 
  a、析构函数是内置函数       b、析构函数与类名相同 
  c、析构函数不能有参数       d、析构函数在对象撤销时自动执行 
5、下列指针用法中错误的是(  )。 
  a、int i; int *ptr=&i;      b、int i; int *ptr; i=*ptr; 
  c、int *ptr; ptr=0;        d、int i=5; int *ptr; *ptr=i; 
6、派生类的对象对它的基类成员中什么是可访问的(  )。 
  a、公有继承的公有成员       b、公有继承的私有成员 
  c、公有继承的保护成员       d、私有继承的公有成员 

四、简答 
1、什么是多重继承的名字冲突?怎样解决多重继承的名字冲突? 
2、说明c++系统保留字protected的用法。 
3、什么是抽象类?抽象类有什么特点? 

五、分析下列程序,写出结果 
1、#include<iostream.h> 
   int g=1; 
   void disp( ) 
   { 
    int i=1; 
    static int s=1; 
    cout<<'g='<<g<<'\n'; 
    cout<<'i='<<i<<'\n'; 
    cout<<'s='<<s<<'\s'; 
    g=g+1;i=i+1;s=s+1; 
   } 
    int main() 
   { 
    while(g<s) 
     disp; 
     return 0; 
   } 
2、#include<iostream.h> 
   class aaa{ 
     int a,b; 
   public: 
    aaa(int i,int j) 
    {a=i,b=j; 
     cout<<'c\n'; 
    } 
    ~aaa(){cout<<'d\n';} 
   void print( ) 
   { 
    void aaa::print( ) 
    {cout<<a<<','<<b<<'\n';} 
   void main() 
   { 
    aaa *a1,*a2; 
    a1=new aaa(1,2) 
    a2=new aaa(5,6) 
    a1->print(); 
    a2->print(); 
    delete a1; 
    delete a2; 
    } 
3、#include<iostream.h> 
   class b1{ 
    public: 
     b1(int x) 
      {cout<<x<<'->a\n';} 
     ~b1() 
      {cout<<'b\n';} 
    }; 
   class b2{ 
    public: 
     b2(int x)