第3章 程序与递归:组合、抽象与构造
1、关于计算系统与程序,下列说法正确的是_____。
(A)只有用计算机语言编写出来的代码才是程序,其他都不能称其为程序; (B)构造计算系统是不需要程序的,程序对构造计算系统没有什么帮助; (C)任何系统都需要程序,只是这个程序是由人来执行还是由机器自动执行,可以由机器自动执行程序的系统被称为计算系统;
(D)程序是用户表达的随使用者目的不同而千变万化的复杂动作,不是使用者实现的而是需要计算系统事先完成的。
答案是:C 2、关于程序,下列说法不正确的是_____。
(A)“程序”是由人编写的、以告知计算系统实现人所期望的复杂动作; (B)“程序”可以由系统自动解释执行,也可以由人解释由系统执行; (C)普通人是很难理解“程序”的,其也和“程序”无关;
(D)“程序”几乎和每个人都有关系,如自动售票系统、自动取款机等。
答案是:C 3、关于程序,下列说法不正确的是_____。 (A)程序的基本特征是复合、抽象与构造;
(B)复合就是对简单元素的各种组合,即将一个(些)元素代入到另一个(些)元素中;
(C)抽象是对各种元素的组合进行命名,并将该名字用于更复杂的组合构造中; (D)程序就是通过组合、抽象、再组合等构造出来的; (E)上述说法有不正确的。
答案是:E 4、一般而言,设计和实现一个计算系统,需要设计和实现_____。 (A)基本动作和程序;
(B)基本动作和控制基本动作的指令;
(C)基本动作、控制基本动作的指令和一个程序执行机构; (D)基本动作、控制基本动作的指令和程序。
答案是:C 5、一般而言,一个较高抽象层次的计算系统是可以这样实现的,即_____。 (A)将较低抽象层次的重复性组合,命名为较高抽象层次的指令; (B)利用较高抽象层次的指令进行复合、抽象与构造,即形成高抽象层次的程序; (C)高抽象层次的程序通过其程序执行机构解释为高抽象层次的指令及其操作次序;
(D)高抽象层次的指令被替换为低抽象层次的程序,再由低抽象层次的程序执行机构解释并执行。 (E)上述A-D全部。
答案是:E 6、熟悉下列运算组合式(前缀表达式),其中结果为56的是_____。 (A) (* 7 (+ 5 2));
(B) (* (+ 5 3) (+ 5 2)); (C) (+ 20 (+ 6 6));
(D) (- (* 9 8) (- 20 2))。
//本题考查基本运算组合式的构造与计算,尤其是嵌套的运算组合式的计算
答案是:B 7、对于计算式,其正确的运算组合式(前缀表示法)为_____。
(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 8、请用define运算,定义一个过程实现计算a3,其正确定义的过程为_____。 (A) (define cube a (* a a a)); (B) (define (cube x) (* x x x)); (C) (define (cube a (* a a a))); (D) (define (cube a) (* x x x)))。 //本题考查新运算符(即过程)的定义
答案是:B 9、已知一个新运算被定义为(define (newCalc x y)
(* (+ x 1) (* y 2))),问newCalc可以完成的计算功能为_____。 (A) (x+1)+2y; (B) (x+1)*2y; (C) (x+1) +(y+2); (D) (x+1)*(y+2)。
//本题考查新运算符(即过程)的定义
答案是:B 10、已知一个新运算被定义为(define (newCalc x y)
(* (+ x 1) (* y 2))),问正确使用了newCalc并得到正确结果的为_____。
(A) ((newCalc) (4 5)),其结果为50; (B) (newCalc 4),其结果为40; (C) (newCalc 4 5),其结果为50; (D) (newCalc 2 3),其结果为21。 //本题考查新运算符(即过程)的定义和使用
答案是:C 11、已知一个新运算被定义为(define (newCalc x y) (* (+ x 1) (+ y 1))),问(newCalc (newCalc (newCalc 1 1) 2) 3)的计算结果为_____。
(A) 6 ;(B) 13; (C) 64; (D) 24。
答案是:C 12、已知一个新运算被定义为(define (newCalc x y)
(* (+ x 1) (+ y 1))),问(newCalc (newCalc (newCalc 1 1) (newCalc 1 1)) (newCalc 1 1))的计算结果为_____。 (A) 1 ;(B) 64; (C) 130; (D) 8。
//本题考查新运算符(即过程)的定义和嵌套使用
答案是:C 13、已知一个运算被定义为(define (firstCalc x) (* x x)),在其基础上进一步定义新运算secondCalc为x2+y2+z2,下列运算组合式书写正确的是_____。
(A) (define secondCalc (+ (firstCalc x) (firstCalc y) (firstC
alc z)));
(B) (define (secondCalc x y z) (+ firstCalc x y z)); (C) (define (secondCalc x y
z) (+ (firstCalc x) (firstCalc y) (firstCalc z))); (D) (define secondCalc x y
z (+ (firstCalc x) (firstCalc y) (firstCalc z)))。 (E) (define (secondCalc x y
z) (+ (firstCalc x) (firstCalc x) (firstCalc x)))。 //本题考查新运算符(即过程)的定义,以及形式参数的使用
答案是:C 14、已知一个运算被定义为(define (firstCalc x) (* x x)),在其基础上进一步定义新运算为
(define (secondCalc x) (firstCalc (firstCalc (firstCalc x)))),问secondCalc表达的运算功能为_____。 (A) x*x*x; (B) x2+x2+x2; (C) ((x2)2)2; (D) x4。
//本题考查新运算符(即过程)的定义和嵌套使用
答案是:C 15、用条件运算符定义一个过程。正确的定义为_____。 (A) (define (f x y) (cond ((x>y) (* x x x)) ((x=y ) 0)
((x (B) (define (f x y) (cond ((> x y ) (* x x x)) ((= x y ) 0) ((< x y ) (* y y y)) )); (C) (define (f x y) (cond ((x>y) (x*x*x)) ((x=y ) 0) ((x (D) (define (f x y) (cond ((< x y ) (* x x x)) ((= x y ) 0) ((> x y ) (* y y y)) ))。 //本题考查条件运算符的使用及分支处理
相关推荐: