background image

一.填空题(每空

1 分,共 12 分)

1 面向对象的语言具有__

封装

_

_____性、__

继承

_

______性、__

多态

______性。

2 能 用 foreach 遍 历 访 问 的 对 象 需 要 实 现   ___

_Ienumerable_

___________ 接 口 或 声 明 ___

_

_GetEnumerator

___________方法的类型。

3

当类

只声明了私有实例构造函数时,则在 的程序文本外部,__

_不可以

___

 

(可以

or 

可以)从

派生出新的类,在 的内部__

可以

__

 

(可以

or 不可以)直接创建 的任何实例 ,

的外部__

不可以

_

_

 

(可以

or 不可以)直接创建 的任何实例。

4. 委托声明的关键字是__

Delegate

____  

5. override

与重载的区别:

 

override 覆盖是基类中函数的重写。

重载:

方法或函数的名称

相同,参数或许参数类型不同,进行多次重载实现功能。

 

. 不定项选择(每题 2 分,共 18)

Question 1

 以下叙述正确的是:

      A. 接口中可以有虚方法。     

B. 一个类可以实现多个接口。

     

 C. 接口不能被实例化

       D. 接口中可以包含已实现的方法。

Question 2

 以下描述错误的是()

  

1.

 在 C++中支持抽象类而在 C#中不支持抽象类。

  

2. C++中可在头文件中声明类的成员而在 CPP 文件中定义类的成员,在 C#中没有头文

件并且在同一处声明和定义类的成员。
  

3. 在 C#中可使用 new 修饰符显式隐藏从基类继承的成员。

4. 在 C#中要在派生类中重新定义基类的虚函数必须在前面加 Override。

Question 3
  声明一个委托

public delegate int myCallBack(int x); 则用该委托产生的回调方法的原型

应该是
  

1. void myCallBack(int x)

 

 

2. int receive(int num)

  

3. string receive(int x)

4. 不确定的

Question 4

下列描述错误的是()

 

a) 类不可以多重继承而接口可以; 
b) 
抽象类自身可以定义成员而接口不可以; 
c) 
抽象类和接口都不能被实例化; 

d) 一个类可以有多个基类和多个基接口;

Question 5

下列关于构造函数的描述正确的是()

 

a) 构造函数可以声明返回类型。 
b) 
构造函数不可以用 private 修饰 

c) 构造函数必须与类名相同 

d) 构造函数不能带参数

Question 6

 接口是一种引用类型,在接口中可以声明(  ),但不可以声明公有的域或私有的成员
变量。