2024年3月12日发(作者:)

附录B 部分习题参考答案

第1章

1.

2.

3.

4.

A

D

D

A C

5. C# 源程序由代码和代码注释组成,代码又可以分为引用部分和主体部分。主体代码都

在命名空间之中,包括各种类型及其成员的定义。

6. 启动MSIL反汇编程序,通过菜单“文件| 打开”定位到系统Windows文件夹的

“”子目录下(后5位表示.NET Framework 2.0的详

细版本号),打开其中的文件,从中可查看System等命名空间下的类型组织,

如图A.1所示:

图A.1 System程序集反汇编

第2章

1.

2.

3.

4.

5.

6.

AC

B

BD

CD

C

B

7. D

8. (1)结构类型和枚举类型都是复合类型。结构类型是多个简单值类型的组合,因而结

构类型的变量就是多项内容的组合而成的一个实体。枚举类型则表示一组逻辑上相关联的内

容,枚举类型的变量在某一时刻只体现其中的一项内容。

(2)值类型的变量直接包含自身的所有数据,每创建一个变量,就在内存中开辟一块

区域;只有通过变量才能修改它所包含的数据。而引用类型的变量只存储对目标数据的引用,

每创建一个变量,就增加一个指向目标数据的指针;有可能出现多个引用类型的变量指向同

一份数据的情况,这时修改一个变量就会影响到其它所有的变量。

9. 代码段的输出为:

Hi Frank

Welcome

10. 程序的输出为:

星期Wednesday

月份Apr

季节3

11. 参考源代码如下:

ine("SByte: {0} ~ {1}", ue, ue);

ine("Byte: {0} ~ {1}", ue, ue);

ine("Int16: {0} ~ {1}", ue, ue);

ine("UInt16: {0} ~ {1}", ue, ue);

ine("Int32: {0} ~ {1}", ue, ue);

//……

12. 不可以,因为整数和枚举都是值类型,而数组转换要求数据元素的类型都是引用类型。

13. 可以,但要利用装箱和拆箱技术,看下面的程序:

class Program

{

static void Main()

{

object[][] d = new object[3][];

d[0] = new object[] { 1, 2, 3 };

d[1] = new object[] { 1.5F, 2.5F, 3.0F };

d[2] = new object[] { 1.25, 2.5, 3.14 };

for (int i = 0; i < 3; i++)

for (int j = 0; j < 3; j++)

ine(d[i][j]);

}

}

14. (略)

第3章

1. AD

2. AB