软件设计师1990年下午试题1(流程图解析)

[说明]

有一种游戏,是用滚球击十个柱-比赛分为十局,每局可滚球一次或多次,其规则和记分方法如下;

(1)若一局的第一个球击倒全部十个柱( 称为 strike ),则这局不再滚球( 例外,对第十局来说,还可补滚两次球 ),其得分为 10 加下两次滚球所击倒的柱数。

(2)若一局的第一个球未击倒十个柱,则可对剩下的柱再滚一次球。如果这局的两次滚球击倒全部十个柱( 称为 spare ),则这局不再滚球( 例外,对第十局来说,还可补滚一次球 ),其得分为 10 加上下一次滚球所击倒的柱数,否则,这局也不再滚球,其得分为本局两次滚球所击倒的柱数之和。 

(3)总得分为十局得分之和。 

流程图读入每球击倒的柱数,计算并输出每局得分 scor 及总分 total。图中 ball1 和 ball2 分别存放每局第一个球和第二个球( 如有的话 )所击倒的柱数,frame 用于对局计数。 

[问题1] 

填充流程图中的 ①~⑤,使之成为完整的流程图。 

[问题2] 

若要把每球击倒的柱数记录在一个一维效组中,这个数组最少要有几个元素,最多要有 几个元素。
[问题3] 

若计算每局得分的规则增加一条:当前面各局累积得分超过 100 分时,每取得一次 strike 奖励 5 分,那么右边的小流程图应插在总流程图中 A~H 的哪一个位置上。 

 

答案:

[问题1]

①ball2→ball1 ②lO+ball1+ball2→score ⑧ball1+ball2:10

④10+ball1→score ⑤ball1+ball2→score
[问题2]

最少11个,最多21个
[问题3]

小流程图应插在总流程图的B点

原文地址:https://www.cnblogs.com/djcsch2001/p/2096470.html