附录B 部分习题参考答案 第1 章 1. A 2. D 3. D 4. A C 5. C# 源程序由代码和代码注释组成,代码又可以分为引用部分和主体部分。主体代码都在命名空间之中,包括各种类型及其成员的定义。 6. 启动MSIL 反汇编程序,通过菜单“文件| 打开”定位到系统 Windows 文件夹的“Microsoft.NET\Framework\v2.0.XXXXX”子目录下(后 5 位表示.NET Framework 2.0 的详细版本号),打开其中的mscorlib.dll 文件,从中可查看 System 等命名空间下的类型组织,如图 A.1 所示: 图 A.1 System 程序集反汇编 第2 章 1. AC 2. B 3. BD 4. CD 5. C 6. B 7. D 8. (1)结构类型和枚举类型都是复合类型。结构类型是多个简单值类型的组合,因而结构类型的变量就是多项内容的组合而成的一个实体。枚举类型则表示一组逻辑上相关联的内容,枚举类型的变量在某一时刻只体现其中的一项内容。 (2)值类型的变量直接包含自身的所有数据,每创建一个变量,就在内存中开辟一块区域;只有通过变量才能修改它所包含的数据。而引用类型的变量只存储对目标数据的引用,每创建一个变量,就增加一个指向目标数据的指针;有可能出现多个引用类型的变量指向同一份数据的情况,这时修改一个变量就会影响到其它所有的变量。 9. 代码段的输出为: Hi Frank Welcome 10. 程序的输出为: 星期Wednesday 月份Apr 季节3 11. 参考源代码如下: Console.WriteLine("SByte: {0} ~ {1}", SByte.MinValue, SByte.MaxValue); Console.WriteLine("Byte: {0} ~ {1}", Byte.MinValue, Byte.MaxValue); Console.WriteLine("Int16: {0} ~ {1}", Int16.MinValue, Int16.MaxValue); Console.WriteLine("UInt16: {0} ~ {1}", UInt16.MinValue, UInt16.MaxValue); Console.WriteLine("Int32: {0} ~ {1}", Int32.MinValue, Int32.MaxValue); //…… 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;...