算法语言书后习题参考答案(第二版)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)不作要求