案例分析题

试题一
阅读下列说明和流程图,填补流程图中的空缺,将解答填入答题纸的对应栏内。 

【说明】 
设有二维整数数组(矩阵)A[1:m,1:n],其每行元素从左到右是递增的,每列元素从上到下是递增的。以下流程图旨在该矩阵中需找与给定整数X相等的数。如果找不到则输出“false”;只要找到一个(可能有多个)就输出“True”以及该元素的下标i和j(注意数组元素的下标从1开始)。
例如,在如下矩阵中查找整数8,则输出伟:True,4,1
2 4 6 9
4 5 9 10
6 7 10 12
8 9 11 13
流程图中采用的算法如下:从矩阵的右上角元素开始,按照一定的路线逐个取元素与给定整数X进行比较(必要时向左走一步或向下走一步取下一个元素),直到找到相等的数或超出矩阵范围(找不到)。
【流程图】 

【正确答案】

(1)n 
(2)j-1→j 
(3)i+1→I 
(4)j 
(5)C

【答案解析】

读题,可以看出元素查找的过程为从右上角开始,往右或者往下进行查找。因此,初始值i=1,j=n。
如果查找值小于右上角值,则往右移动一位再进行比较。所以,第二空填j-1→j 。
接下来是判断什么时候跳出循环。此时,终止循环的条件是:j=0,也就是其从最右端移到了最左端。
再看X<A[i, j]不成立时, 执行流程的右枝。 此时, 也就是说第一行的最大值都小于查找值,因此需往下移动一行。 所以第三空填 i+1→I 。