算法语言书后习题参考答案(第二版)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

算法语言书后习题参考答案(第二版)

第一章

1(1)A (2)D (3)D (4)AC

第二章

1、(1)AC (2)BD (3)CD (4)C (5)B (6)D

2、(2)Hi Frank

Welcome

(3)3 Apr Wed

第三章

1(1) A (2) AB (3) AD

2(5)方法MyMethod1的重载形式不合法,因为访问限制修饰符和返回类型都不是方法的标识。

方法MyMethod2的重载形式合法。

(6) 运行结果为

x=0, y=5, z=0

x=0, y=5, z=5

(8)应将

public static readonly InnerClasses inner;

改成

public static readonly InnerClasses inner=new InnerClasses();

运行结果为

7

9

13

第四章

1(1)C(2)A(3)BC(4)A(5)A

第(5)涉及到对负数的移位,不要求掌握对负数的移位,但要求掌握对正数的移位。

2(10)true true false true false

第五章

1(1)没有一个是正确的(2)C(3)D(4)A(5)B(6)D(7)BC

第(6)题应改为:

下面语句所计算的x数学表达式为_______。

for (int x = 0, y = 1, z = 1; z <= 10; x += y, y *= ++z)

第(7)的选项A应改为:

A. int x = 1, y = 0; while (true) if ((x += (y++)) > 100) break;

第六章

1(1)D(2)A(3)D(4)不作要求(5)AC

2(7)没有错误。但它在属性的get访问函数中修改了所封装的字段值,这违反了访问函数的设计原则,容易引起误解。应避免使用这类代码。

第七章

1(1)C(2)没有一个正确(3)B(4)AC (5) ABD(不作要求)

2 (9) 代码中存在一处错误,派生类B的属性Y在重载基类A的属性Y时,必须同时重载

其get和set访问函数。修改时要么为B的属性Y增加set访问函数,要么去掉A的属性Y中的set访问函数声明

(10) 代码能通过编译,但在逻辑上是错误的,因为A的构造函数中调用了B的构造函

数,而B的构造函数又调用基类A的构造函数,从而导致死循环(堆栈溢出)。这样A 和B都不能被创建实例。

第八章

1(1)B(2)AD(3)C(4)A

第九章

选择题不作要求

第十章

1(1)ABCD(2)A(3)BC(4)BC

2 (6) 泛型类D的定义中存在错误,它的类型限制要求构造函数类型A要有默认的

无参数构造函数,但A是抽象类,它定义的默认构造函数仅供非抽象派生类使用,而对自身不起作用。修改方法只能是取消D的类型限制,或者将A改为非抽象类。

2 (9)

第十一章

1(1)AB(2)AD(3)C

第十四章

1(1)ABCD(2)D(3)CB

第十五章

1(1)BD(2)ABD(3)C(4)不作要求

第十六章

1(1)不作要求(2)D(3)不作要求(4)不作要求

相关文档
最新文档