一.填空题(每空
1 分,共 12 分)
1 面向对象的语言具有__
封装
_
_____性、__
继承
_
______性、__
多态
______性。
2 能 用 foreach 遍 历 访 问 的 对 象 需 要 实 现 ___
_Ienumerable_
___________ 接 口 或 声 明 ___
_
_GetEnumerator
___________方法的类型。
3
当类
T 只声明了私有实例构造函数时,则在 T 的程序文本外部,__
_不可以
___
(可以
or 不
可以)从
T 派生出新的类,在 T 的内部__
可以
__
(可以
or 不可以)直接创建 T 的任何实例 ,
在
T 的外部__
不可以
_
_
(可以
or 不可以)直接创建 T 的任何实例。
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
接口是一种引用类型,在接口中可以声明( ),但不可以声明公有的域或私有的成员
变量。