Chinaunix首页 | 论坛 | 博客
  • 博客访问: 154879
  • 博文数量: 24
  • 博客积分: 15
  • 博客等级: 民兵
  • 技术积分: 100
  • 用 户 组: 普通用户
  • 注册时间: 2011-10-15 00:14
文章分类

全部博文(24)

文章存档

2015年(3)

2014年(2)

2013年(7)

2012年(12)

分类: C/C++

2013-02-26 22:20:54

1.  下列关于对象概念的描述中,( A )是错误的。

  A. 对象就是C语言中的结构变量

   B. 对象代表着正在创建的系统中的一个实体

  C. 对象()是一个状态和操作(或方法)的封装体

  D. 对象之间的信息传递是通过消息进行的

2.  分析下面的C++代码段:

   class Employee

   {

   private:

          int a;

   protected:

          int b;

   public:

          int c;

   };

   class Director:public Employee{};

   Main()中,下列( C)操作是正确的。

   a) Employee obj;

obj.b=1;

   b) Director boj;

obj.b=10;

   c) Employee obj;

obj.c=3;

   d) Director obj;

obj.a=20;

3.  #include       

   #define SQR(x) x*x

   void main()

   {

      int a=10,k=2,m=1;

      a/=SQR(k+m);

      cout<

   }

   执行上面的C++程序后,a的值是( B )。

   a) 10

   b) 2

   c) 9

   d) 0

4.  C++ 基类中的private成员通过( D )类型的继承,可以被派生类访问。

   a) public

   b) protected

   c) private

   d) 任何类型的继承都不能使得派生类可以访问基类的private成员

 

5.  下列概念()体现了面向对象的多态性。( B

   a) 虚基类

   b) 虚函数

   c) 对象容器

   d) 封装

6.  #include

   class One

   {

   public:

          void display(){cout<<"1"<<"";}

   };

   class Two:public One

   {

       public:

          void display(){cout<<"2"<<"";}

   };

    void main()

   {

          One first;

          Two second;

          first.display();

          second.display();

          One *p=&first;

          p->display();

          p=&second;

          p->display();

   }

   C++中,以上程序的运行结果为( C )。

   a) 1 1 1 2

   b) 1 2 1 2

   c) 1 2 1 1

   d) 2 1 1 2 

7.  #include

   class A

   {

   public:

      A(){cout<<"A construct";}

   };

   class B:public A

   {

   public:

      B():A(){cout<<"B construct"<

   };

   void main(){B obj;}

   上面的C++程序运行的结果是( B )。

   a) B construct  A construct

   b) A construct  B construct

   c) A construct 

   d) B construct

8.  class wheel

   {

      int num;

   public:

        wheel (int w){num=w;}

   };

   class car

{

      wheel carWheel;

   public:

              //写出car的构造函数

   }

   C++中,上面程序中,空白处正确的语句是(B  )。

   a) void car(int n)::carWheel(n){}

   b) car(int n): carWheel(n){}

   c) void car(int n):: carWheel(n){}

   d) car(int n):: carWheel(n){}

9.  class Employee

   {

   private :

      int a ;

   protected:

      int b;

   public :

      int c;

      void display();

   };

   class Director:public Employee

   {

   public :

      void show();

   };

   C++中,以下操作正确的是(  D)。

   a) void Employee::show(){cout<

   b) void Director::display(){cout<

   c) void Director::show(){cout<

   d) void Director::show(){cout<

10. C++中,下列类的成员函数( C )属于纯虚函数。

   A void display();

   B Virtual void display();

   C Virtual void display()=0;

   D Virtual void display(){int a=0};

11. C++中,下列关于继承的描述。( A )是错误的。

   a) 继承是基于对象操作的层面而不是类设计的层面上的

   b) 子类可以继承父类的公共行为

   c) 继承是通过重用现有的类来构建新的类的一个过程

   d) 将相关的类组织起来,从而可以共享类中的共同的数据和操作

12. #include

   int &func(int &num)

   {

      num++;

      return num;

   }

       void main()

   {

      int n1,n2=5;

      n1=func(n2);

      cout<

   }

   上面C++程序运行结果是( C ).(选择一项)

   a)  56

   b)  65

   c)  66

   d)  55

 

13. #include

    class A

       {

       public:

      A(){}

      ~A(){cout<<"A destroy";}

       };

       class B:public A

       {

       public:

          B():A(){}

      ~B(){cout<<"B destroy";}

       };

       void main(){B obj;}

       上面的C++程序运行的结果是( A )

       a)  B destroy   A destroy

       b)  A destroy   B destroy

       c)  A destroy

       d)  B destroy

14. 如果基类A A 的派生类B中都有成员函数func()

   要在派生类的func()中调用同名的基类的func()成员函数,下列( B )操作下正确的。

   a) func();

   b) A::func();

   c) B::func();

   d) A.func();

 

15. 读下面C++程序:

   #include

   class vehicle

   {

      protected:

         int wheels;

      public:

         vehicle(int in_wheels=4){wheels=in_wheels;}

         int get_wheels(){  return wheels;}

   };

   void main()

   {

      vehicle unicyclel;

      vehicle unicycle2(3);

      cout<<"The unickele1 has"<

      cout<<"The unickele2 has"<

   }

   编译后输出结果为( C )。

   aThe unicycle1 has 0 wheel.

      The unicycle2 has 3 wheel.

   bThe unicycle1 has 4 wheel.

      The unicycle2 has 4 wheel.

   cThe unicycle1 has 4 wheel.

      The unicycle2 has 3 wheel.

   dThe unicycle1 has 0 wheel.

       The unicycle2 has 4 wheel.

 

16. 对类的构造函数和析构函数描述正确的是(  A
  A)构造函数可以重载,析构函数不能重载
  B)构造函数不能重载,析构函数可以重载
  C)构造函数可以重载,析构函数也可以重载
  D)构造函数不能重载,析构函数也不能重载

 

17. 下面对静态数据成员的描述中,正确的是( A
  A)静态数据成员是类的所有对象共享的数据  
  B)类的每个对象都有自己的静态数据成员
  C)类的不同对象有不同的静态数据成员值    
  D)静态数据成员不能通过类的对象调用

18. 可以用p.a的形式访问派生类对象p的基类成员a,其中a(D  )
  A)私有继承的公有成员                    
  B)公有继承的私有成员
  C)公有继承的保护成员                    
  D)公有继承的公有成员

19. 建立派生类对象时,3种构造函数分别是a(基类的构造函数)b(成员对象的构造函数)c(派生类的构造函数)3种构造函数的调用顺序为( A )
  A)abc               
  B)acb              
  C)cab              
  D)cba

20. 下面关于虚函数的描述,错误的是( B )
A)
在成员函数声明的前面加上virtual修饰,就可把该函数声明为虚函数
B)
基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数
C)
虚函数可以是另一个类的友元函数,但不能是静态成员函数
D)
基类中说明的纯虚函数在其任何派生类中都必须实现

21. C++语言是从早期的C语言逐渐发展演变而来的.C语言相比,它在求解问题方法上进行的最大改进是(B  
A)
面向过程  B)面向对象  C)安全性  D)复用性

22. 下面描述中,表达错误的是( B
A)
公有继承时基类中的public成员在派生类中仍是public的  
B)
公有继承是基类中的private成员在派生类中仍是private的(不可访问) 
C)
公有继承时基类中的protected成员在派生类中仍是protected的  
D)
私有继承时基类中的public成员在派生类中是private

23. 在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是C  )

A.派生类的对象可以赋给基类的对象

B.派生类的对象可以初始化基类的引用

C派生类的对象可以直接访问基类中的成员

D.派生类的对象的地址可以赋给指向基类的指针

24. 定义派生类时,若不使用关键字显示地规定采用何种继承方式,则默认方式为(  A ) 

A.私有继承

B.非私有继承

C.保护继承

D.公有继承

25. 在函数的返回值类型与返回值表达式的类型的模式中,( B )是错误的。

A.函数返回值的类型是在定义函数时确定,在函数调用时是不能改变的

B.函数返回值的类型就是返回值表达式的类型

C.函数返回值表达式类型与函数返回值类型不同时,表达式类型应转换成函数返回值类型

D.函数返回值类型决定了返回值表达式的类型

 

 

26. 完成下列程序

要求输出以下内容

*

*.*.

*..*..*..

*...*...*...*...

*....*....*....*....*....

*.....*.....*.....*.....*.....*.....

*......*......*......*......*......*......*......

*.......*.......*.......*.......*.......*.......*.......*.......

完成以下程序

#include

using namespace std;

 

#define  N 8

 

int main(void)

{

   int i;

   int j;

   int k;

 

   for(i = 0; i < N ; i++)

   {

      for(j = i; j >= 0; j--) 

      { 

         cout << "*";

         for(k = i; k > 0; k-- )

         {

            cout << ".";

         }

      }

      cout << endl;

   }

   return 0;

}

 

 

 

 

 

27. 完成代码

背景:某网络游戏存在战士(Fighter)、野蛮人(Savage)、白法师(WhiteWitch)三种角色,它们具有 Role接口,Role接口提供显示方法display()。现要将黑法师(BlackWitch)角色加入此网络游戏以实现功能扩充。已知某第三方库已经提供了法师 (Witch)类,且完全满足系统新增的黑法师角色所需的功能,但法师(witch)不是由Role派生而来,它提供的显示方法(displayself())不能被系统直接使用。要求既使用了法师(Witch),又遵循了Role规定的接口,既避免了从头开发一个新的黑法师类,又可以不修改游戏中已经定义的接口。

要求1:给出RoleFighterSavageWhiteWitch的类定义

要求2:给出BlackWitchwitch的类定义

要求3:设计一个类,提供通用的角色显示方法(int show(int type)),根据输入值(整形值)生成特定的角色实例,并对之进行显示操作。

  C++试题.rar   

阅读(2351) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~