第3章程序与递归:组合、抽象与构造练习题答案解析 下载本文

第3章 程序与递归:组合、抽象与构造

1、关于计算系统与程序,下列说法正确的是_____。

(A)只有用计算机语言编写出来的代码才是程序,其他都不能称其为程序; (B)构造计算系统是不需要程序的,程序对构造计算系统没有什么帮助; (C)任何系统都需要程序,只是这个程序是由人来执行还是由机器自动执行,可以由机器自动执行程序的系统被称为计算系统; (D)程序是用户表达的随使用者目的不同而千变万化的复杂动作,不是使用者实现的而是需要计算系统事先完成的。

答案:C 解释:

本题考查程序,计算系统等的概念;

(A)程序 = 基本动作指令的一个组合或执行序列, 用以实现复杂的动作,只用计算机语言编写出来的代码称为程序,这个概念太狭隘了,A错误;(B)计算系统的一部分是由程序组成的,所以B错误;(C)计算系统 = 基本动作 + 指令 + 程序执行机构,任何系统都需要系统,C完全正确;(D)程序 = 基本动作指令的一个组合或执行序列, 用以实现复杂的动作,并不是由用户表达的,随使用者的不同而千变万化的复杂动作。所以D是错的;

具体内容参考第三章视频之“程序的作用和本质” 及第三章课件。

2、关于程序,下列说法不正确的是_____。

(A)“程序”是由人编写的、以告知计算系统实现人所期望的复杂动作; (B)“程序”可以由系统自动解释执行,也可以由人解释由系统执行; (C)普通人是很难理解“程序”的,其也和“程序”无关; (D)“程序”几乎和每个人都有关系,如自动售票系统、自动取款机等。

答案:C 解释:

本题考查程序的概念;

程序 = 基本动作指令的一个组合或执行序列, 用以实现复杂的动作,所以A,B,D都是正确的;C说普通人很难理解程序,这显然是错误的。所以选C; 具体内容参考第三章视频之“程序的作用和本质” 及第三章课件。

大学计算机-计算思维练习题集

3、关于程序,下列说法不正确的是_____。

(A)程序的基本特征是复合、抽象与构造;

(B)复合就是对简单元素的各种组合,即将一个(些)元素代入到另一个(些)元素中; (C)抽象是对各种元素的组合进行命名,并将该名字用于更复杂的组合构造中; (D)程序就是通过组合、抽象、再组合等构造出来的; (E)上述说法有不正确的。

答案:E 解释:

本题考查程序的概念;

(A)程序的特征即是:组合-抽象-构造,所以A正确;(B)复合即是将简单的基本动作指令组合起来,实现复杂动作。B正确;(C)抽象:将经常使用的、可由低层次系统实现的一些复杂动作,进行命名,以作为高层次系统的指令被使用,C正确;(D)通过前面三个选项可知,程序就是通过组合,抽象,再组合这样构造出来的。综上可知E不正确。

具体内容参考第三章视频之“程序的作用和本质” 及第三章课件。

4、一般而言,设计和实现一个计算系统,需要设计和实现_____。

(A)基本动作和程序;

(B)基本动作和控制基本动作的指令;

(C)基本动作、控制基本动作的指令和一个程序执行机构; (D)基本动作、控制基本动作的指令和程序。

答案:C 解释:

本题考查计算系统的概念;

计算系统 = 基本动作 + 指令 + 程序执行机构,所以ABC都描述不完整,只有C正确; 具体内容参考第三章视频之“程序的作用和本质” 及第三章课件。

5、一般而言,一个较高抽象层次的计算系统是可以这样实现的,即_____。

(A)将较低抽象层次的重复性组合,命名为较高抽象层次的指令;

(B)利用较高抽象层次的指令进行复合、抽象与构造,即形成高抽象层次的程序; (C)高抽象层次的程序通过其程序执行机构解释为高抽象层次的指令及其操作次序; (D)高抽象层次的指令被替换为低抽象层次的程序,再由低抽象层次的程序执行机构解释并执行。 (E)上述A-D全部。

大学计算机-计算思维练习题集

答案:E 解释:

本题考查计算系统的概念;

(A)抽象:将经常使用的、可由低层次系统实现的一些复杂动作,进行命名,以作为高层次系统的指令被使用,所以,A正确;(B)程序本身即是复合,抽象,构造的过程,B正确;(C)(D)的描述都完全正确;所以综上所述,应该选E;

具体内容参考第三章视频之“程序的作用和本质” 及第三章课件。

6、熟悉下列运算组合式(前缀表达式),其中结果为56的是_____。

(A) (* 7 (+ 5 2));

(B) (* (+ 5 3) (+ 5 2)); (C) (+ 20 (+ 6 6)); (D) (- (* 9 8) (- 20 2))。

答案:B 解释:

本题考查基本运算组合式的构造与计算,尤其是嵌套的运算组合式的计算 对于一个前缀表达式的求值而言,首先要从右至左扫描表达式,从右边第一个字符开始判断,如果当前字符是数字则一直到数字串的末尾再记录下来,如果是运算符,则将右边离得最近的两个“数字串”作相应的运算,以此作为一个新的“数字串”并记录下来。一直扫描到表达式的最左端时,最后运算的值也就是表达式的值。所以,(A)的中缀表达式7*(2+5)=49;(B)(3+5)*(2+5)=56;所以选B;(C)20+(6+6)=32;(D)(9*8)-(20 - 2)=54;所以答案选B;

具体内容参考第三章视频之“程序构造示例(I)” 及第三章课件。

208?4,其正确的运算组合式(前缀表示法)为_____。 7、对于计算式

3*6?8*210?(A) (/ (+ 10 / 20 + 8 4) (+ * 3 6 * 8 2 )); (B) ((10 + (20 / (8 + 4))) / ((3 * 6) + (8 * 2)));

(C) (/ (+ 10 (/ 20 (+ 8 4))) (+ (* 3 6) (* 8 2))); (D) (/ (/ 20 (+ 10 (+ 8 4))) (* (+ 3 6) (+ 8 2)))。

答案:C 解释: