问题 填空题

试题七
阅读以下说明和流程图,填补流程图中的空缺。
[说明]
假设数组A中的各元素A(1),A(2),…,A(M)已经按从小到大排序(M≥1);数组B中的各元素B(1),B(2),…,B(N)也已经按从小到大排序(N≥1)。执行下面的流程图后,可以将数组A与数组B中所有的元素全都存入数组C中,且按从小到大排序(注意:序列中相同的数全部保留并不计排列顺序)。例如,设数组A中有元素:2,5,6,7,9;数组B中有元素2,3,4,7;则数组C中将有元素:2,2,3,4,5,6,7,7,9。
[流程图]
本题流程图如图8-31所示。

答案

参考答案:i

解析: 本题中,i、i、k是数组A、B、C的下标,初始时都应该是1。所以(1)处应为1。为了实现升序排列,将A(i)与B(j)进行比较后,如果A(i)≤B(j),那么应该将A(i)→C(k)。所以(2)处为A(i)。如果A(i)>B(j),则应将B(j)→C(k)。所以(3)处应为B(j)。通过判断i>M是否成立来比较数组A是否已经取完。如果i>M,则表示数组A中的元素已经全部取出,需要将数组B中剩余的元素逐个移入C(k)。因此,空(4)处应填i,空(6)处应填B(j)。对于数组B处的元素何时移完,需要判断j>N是否成立。因此,空(8)处应填j。同样,空(3)处将B(j)存入C(k),直到j>N时数组B中的元素取完。此时,需要将数组A中剩余的元素逐个移入C(k),直到i>M时全部完成。因此,空(5)处应填j,空(7)处应填A(i),空(9)处应填i。

单项选择题
填空题