第7章算法程序与计算系统之灵魂练习题答案解析 下载本文

答案:C 解释:

本题考查对堆栈结构的理解。 堆栈只有栈顶一个数据进出口。栈顶指针的值代表了堆栈中数据的个数。将栈底的元素弹出,则首先必须要使堆栈变空,需要连续十次弹出操作。再将其他9个元素压入堆栈,需要9次推入操作。故(C)选项正确。 详细内容请参考第七章视频“算法,程序与计算系统之灵魂”与第七章课件。

9. 程序流程图是表达算法控制结构或者说算法步骤的重要方法。回答下列问题: (1)观察下图I.,没有错误的流程图为_________。

图I.

(A)流程图(a)无错误; (B)流程图(b)无错误; (C)流程图(c)无错误; (D)没有无错误的流程图;

答案:D 解释:

本题考查流程图的知识点;

图(a)中,在进行“循环控制条件成立?”这一判断时,不应该使用方向,而应该用菱形判断,所以流程图(a)错误;图(b)中,当判断循环控制条件成立为是后,修改部分的返回箭头不应该指向初始化部分,而应该返回判断“循环控制条件成立?”,所以流程图(b)错误;图(c)中,有两处错误,一是在判断“循环控制条件成立?”时,没有标明两个箭头方向是“是”还是“否”,二是同图(b)一样,返回箭头不应该标在初始化部分,所以流程图(c)错误;综上所述,三个图当中都有错误。

详细内容请参考第七章视频“算法设计---算法思想的精确表达(II)”与第七章课件。

(2)观察下图II.,该流程图中存在错误,下列说法最完整准确的是_________。

图II.

(A)条件判断框不应为矩形,而应为菱形或六角形; (B)条件判断框中引出的箭头应标记Yes(是)或No(否),表明条件满足或不满足时的程序走向;

(C)仅仅包含错误(A)和(B);

(D)除错误(A)和(B)外,还包括其他错误;

答案:D 解释:

本题考查流程图的知识点;

条件判断框“循环控制条件成立?”应该为菱形或六角形,不是矩形,所以A正确;同时条件判断框中引出的箭头要标记是或否,表明程序的走向,所以B也正确;根据流程图,在判断控制条件是否成立时,当条件为“是”时,返回部分不应该是初始化部分,而应该是“需循环执行的规则或语句”,所以该图中不止AB两个错误,正确答案选D;

详细内容请参考第七章视频“算法设计---算法思想的精确表达(II)”与第七章课件。

10. 阅读下列算法,回答:

Start of the algorithm(算法开始)

(1)输入N的值; (2)设 i 的值为1;

(3)如果 i<=N,则执行第(4)步,否则转到第(7)步执行;

(4)计算 sum + i,并将结果赋给sum; (5)计算 i+1,并将结果赋给i; (6)返回到第3步继续执行; (7)输出sum的结果。

End of the algorithm(算法结束)

答案:B 解释:

本题考查步骤描述法 ;

在上述步骤中,主要欠缺的是程序的初始化,虽然有将i的初始值设为1,但sum的初始值确忽略了,这样,没办法正确计算sum=1+2+3….+N,应该把sum初始值设为0;

详细内容请参考第七章视频“算法设计---算法思想的精确表达(II)”与第七章课件。

11. 阅读下列算法,回答:

Start of the algorithm(算法开始)

(1) N=10; (2) i=2;sum=2;

(3) 如果 i<=N,则执行第(4)步,否则转到第(8)步执行; (4) 如果i / 2 ==0 则转到第(6)步执行; (5) sum = sum + i; (6) i = i+1;

(7) 返回到第(3)步继续执行; (8) 输出sum的结果。 End of the algorithm(算法结束)

上述算法_________。

(A)能够正确地计算sum=1+2+3+4+?+N; (B)不能正确地计算sum=1+2+3+4+?+N;

答案:B 解释:

本题考查步骤叙述法;由题意,可画出如图所示的流程图:

算法执行的结果为_________。

(A) 24; (B) 26; (C) 55; (D) 45; (E) 46;

所以,当i为奇数时,sum=sum+i;i=3,sum=5; i=5,sum=10;i=7,sum=17;i=9,sum=26;综上所述,结果为26,选B;具体内容请参考课堂视频“算法设计---算法思想的精确表达(III)”和第七章课件;

12. TSP算法流程图如下图I.示意,回答下列问题: