c#复习题2(含答案及解析)

1. (单选题)ArrayList集合的()属性表示集合中实际包含的元素数

  • A. Capacity
  • B. Count
  • C. Total
  • D. Length

正确答案: B

解析:

ArrayList集合的 Capacity属性表示它们所封装的Object []数组的长度

(获取或设置 ArrayList 可以包含的元素个数。)

Count属性是目前ArrayList包含的元素的数量,这个属性是只读的。

(获取 ArrayList 中实际包含的元素个数。)

2. (单选题)下面关于类的继承说法错误的是

  • A. 派生类只能继承于一个基类
  • B. 基类可以定义虚方法成员
  • C. 类的继承不可以传递
  • D. 派生类自然继承基类的成员,但不能继承基类的构造函数成员

正确答案: C

解析:

C# 继承的特点: 1.派生类是对基类的扩展,派生类可以添加新的成员,但不能移除已经继承的成员的定义。 2.继承是可以传递的。 如果 C 从 B 中派生,B 又从 A 中派生,那么 C 不仅继承了B 中声明的成员,同样也继承了 A 中声明的成员。
3. (单选题)下列关于抽象类的说法错误的是

  • A. 抽象类可以实例化
  • B. 抽象类可以包含抽象方法
  • C. 抽象类可以包含抽象属性
  • D. 抽象类可以引用派生类的实例

正确答案: A

解析:

抽象类具有以下特性:

抽象类不能实例化。

抽象类可以包含抽象方法和抽象访问器。

可以定义抽象类型的变量,但其值必须为null或者是其派生的非抽象类的实例

不能用sealed修饰符修饰抽象类,采用sealed 修饰符的类无法继承,而abstract 修饰符要求对类进行继承。

从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实际实现。

抽象类必须为所有接口成员提供实现。

抽象方法是隐式的虚方法。

由重写方法override提供实现,此重写方法是非抽象类的一个成员。

当抽象类从基类继承虚方法时,抽象类可以使用抽象方法重写该虚方法。

只允许在抽象类中使用抽象方法声明。

在抽象方法声明中使用 static 或 virtual 修饰符是错误的。

4. (单选题)多态性可以使

  • A. 同基类的不同类的对象看成相同类型
  • B. 使基类对象看成是派生类的类型
  • C. 相同类型的对象看成是不同类型
  • D. 一种派生类对象看成是另一种派生类对象

正确答案: A

5. (单选题)下列关于接口的说法正确的是

  • A. 接口支持多继承
  • B. 接口中的方法都是公有的,必须有public关键字
  • C. 接口中可以包含字段
  • D. 实现接口的类可以调用接口中的方法

正确答案: A

解析:

接口成员不允许有任何访问修饰符,包括public。

接口是描述规则的,所以接口是不能实例化的,而字段是必须要分配内存实例化的。所以,接口只能有属性,不能有字段。这也是接口和抽象类的区别之一。

6. (单选题)下列关于重载的说法,错误的是

  • A. 方法可以通过指定不同的参数个数重载
  • B. 方法可以通过指定不同的参数类型重载
  • C. 方法可以通过指定不同的参数传递方式重载
  • D. 方法可以通过指定不同的返回值类型重载

正确答案: D

7. (单选题)下面说法中,关于方法重载正确的是

  • A. 重载的方法名可以不相同
  • B. 重载方法的形参个数必须相同
  • C. 重载方法的形参类型必须相同
  • D. 重载就是为了能使同一功能适用于各种类型的数据

正确答案: D

解析

方法名称相同、参数列表不同。参数列表不同主要体现在参数个数或参数的数据类型不同。

8. (单选题)在C#中利用sealed修饰的类()

  • A. 密封,不能继承
  • B. 密封,可以继承
  • C. 表示基类
  • D. 表示抽象类

正确答案: A

9. (单选题)定义抽象方法的关键字是

  • A. virtual
  • B. abstract
  • C. friend
  • D. class

正确答案: B

10. (单选题)异常是在什么时候发生的

  • A. 编译代码时
  • B. 程序运行时
  • C. 最终用户发出请求时
  • D. 不确定何时

正确答案: B

11. (单选题)定义抽象方法的关键字是

  • A. virtual
  • B. abstract
  • C. friend
  • D. class

正确答案: B

12. (单选题)下面关于异常的说法正确的是

  • A. 编译不能通过引发异常
  • B. 运行结果不正确引发异常
  • C. 编译已经通过,运行时出现错误引发异常
  • D. 编译不能通过或运行结果不正确引发异常

正确答案: C

13. (单选题)在面向对象编程中“继承”是指(    )。

  • A. 派生类对象可以不受限制地访问所有的基类对象
  • B. 派生自同一个基类的不同类的对象具有一些共同特征
  • C. 对象之间通过消息进行交互
  • D. 对象的内部细节被隐藏

正确答案: B

14. (单选题)C#程序以_________作为源文件的扩展名。

  • A. c
  • B. cpp
  • C. cs
  • D. exe

正确答案: C

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

  • A. 方法、属性、索引器和事件
  • B. 方法、属性信息、属性;
  • C. 索引器和字段;
  • D. 事件和字段;

正确答案: A

16. (单选题)

接口MyInterface的定义如下: 

 类MyClass定义如下: 

 则下列语句的编译、运行结果如何?(    )

  • A. 运行正常,输出字符串“only a test!”
  • B. 可以编译通过,但运行出现异常
  • C. 编译出错
  • D. 以上都不是

正确答案: A

17. (单选题)系统在调用重载函数时,根据(    )来确定哪个函数是最佳匹配。

  • A. 参数类型或个数
  • B. 参数类型或返回值类型
  • C. 参数个数或返回值类型
  • D. 参数名称与类型

正确答案: A

18. (单选题)什么是C#的拆箱?( 2 分)

  • A. 数值变引用
  • B. 引用变数值
  • C. 引用变原始
  • D. 引用变引用

正确答案: A

解析:

装箱:将数值类型转换为引用类型

拆箱:将引用类型转换为数值类型
19. (单选题)抛出异常用_______语句。

  • A. finally
  • B. throw
  • C. try
  • D. catch

正确答案: B

20. (单选题)判断下列类MyClass 的定义中哪些是合法的抽象类?( 2 分)

  • A. abstract class MyClass { public abstract int getCount(); }
  • B. abstract class MyClass { abstract int getCount(); }
  • C. private abstract class MyClass { abstract int getCount(); }
  • D. sealed abstract class MyClass { abstract int getCount(); }

正确答案: A

  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值