课后习题
一、选择题
1. C#的Windows应用程序的入口点是( )。
A. 某个窗体的Main()方法
B. 某个窗体的Load()事件
C. 某个窗体的Init事件
D. 某个窗体的构造函数
2. 窗体程序代码中的this代表了( )。
A. 当前窗体类
B. 窗体的当前实例
C. 代码所在的方法
D. 代码所在的事件
3. 关于类的虚拟方法的说法中正确的是( )。
A. 虚拟方法就是没有实现的方法
B. 不能在派生类中调用基类的虚拟方法
C. 可以在派生类中重载基类的虚拟方法
D. 基类中不能调用自己的虚拟方法
4. 关于类的属性的说法中错误的是( )。
A. 定义类的属性必须指明它的类型
B. 只有get块的属性称为只读属性
C. 属性比方法的功能更强大
D. static属性可以通过类名访问
5. using namespace的作用是表示( )。
A. 引入名字空间
B. 使用数据库
C. 使用一个文件
D. 使用一段程序
6. 要使程序运行,需要按( )键。
A. F5
B. Ctrl+F5
C. F10
D. F11
7. C#中的数据类型有( )和( )两种。
A. 值类型
B. 调用类型
C. 引用类型
D. 关系类型
8. 以下运算符中,( )是三元运算符。
A. ?:
B. --
C. =
D. < =
9. 下列不能作为类的成员的是( )。
A. 属性
B. 方法
C. 索引器
D. 接口
10. 下列( )不是类的成员的访问修饰符。
A. private
B. base
C. public
D. protected
11. 调用构造函数创建对象时,通常使用( )关键字。
A. typeof
B. new
C. as
D. is
12. 关键字virtual只能用来修饰类的( )成员。
A. 字段
B. 方法
C. 属性
D. 常量
13. 用( )关键字定义的方法,属于整个类而不属于类的某一个具体实例。
A. public
B. static
C. protected
D. private
14. 在属性的访问声明中,对属性的读操作用( )关键字标出,表明属性的值是只读的,不能改写。
A. set
B. get
C. private
D. public
15. 以下关于数组的说法,正确的是( )。
A. 数组属于值类型,但是其元素类型可以是引用类型
B. 交错数组的值也是数组,这些作为元素的数组中的元素的大小可以不同
C. 对于一个已存在的数组实例,不能更改它的维度,但可以调整它的维度大小
D. 交错数组的元素的维度可以不同,但维度大小必须相同
16. 如下数组声明语句中正确的是( )。
A. int[,]A=new int[4,2];
B. int[4,2]A=new int[,];
C. int[,]A=new int[,];
D. int[4,2]A=new int [4,2];
17. 在“int[, ,]B=new int [3,2,4];”数组声明语句中,数组B包含元素的个数为( )。
A. 8
B. 9
C. 24
D. 60
二、思考题
1. 简述C#的两种数据类型包含什么内容?
2. 什么是类?什么是对象?类和对象的关系是什么?
3. 简述构造函数的作用?
4. 类的声明的一般形式是什么?
5. 什么是封装?封装有何特性和好处?
6. 下面的C#程序是否可以正常运行?如果有错误,请改正,使其可以正常运行。
class VariableScope { static int j = 99; static void Main() { for (int i = 0; i < 5; i++) { Console.WriteLine("for i ={0}", i); } int j = 20; Console.WriteLine("class j={0}", VariableScope.j); Console.WriteLine("local j={0}", j); for (int i = 0; i < 5; i++) { int j = 2; Console.WriteLine("{0}*{1}={2}", i, j, i * j); } } }