阅读以下说明和流程图,填补流程图中的空缺(1)~(5),将解答填入答题纸的对应栏内。 【说明】 下图所示的流程图用于检查数组A[1:n]中的元素是否为自然数1~n的一个排序(含有1~n个数),若是,则输出OK,否则输出所缺的自然数及其个数m

admin2013-07-03  45

问题 阅读以下说明和流程图,填补流程图中的空缺(1)~(5),将解答填入答题纸的对应栏内。
    【说明】
    下图所示的流程图用于检查数组A[1:n]中的元素是否为自然数1~n的一个排序(含有1~n个数),若是,则输出OK,否则输出所缺的自然数及其个数m。
    为检查A[i:n]中是否含有k,只要判断P(k)=(A(1)-k)*(A(2)-k)*…*(A(n)-k)是否等于0即可。
【流程图】
   

选项

答案(1)0 (2)1 (3)P*(A(i)-k) (4)P=0 (5)m+1

解析 本题考查考生设计和阅读流程图的能力。从题目给出的流程图可以看出,首先需要对m赋值,然后对k:1,2,…,n进行循环,检查数组A中是否包含k。为此,在该循环中,需要嵌套内循环来计算P(k),然后判断计算结果P的值是否为0,以此来判断数组A中是否包含k。由于m表示所缺的自然数,在初始时其值应为0,因此, (1)处应填入0。
    为了对i循环计算累乘的P(k),需要先在P中送初值1。因此,(2)处应填入1,然后在(3)处进行累乘运算,并将结果送给P,(3)处应填入P*(A(i)~k)。
    (4)和(5)处用以实现判断P是否为0,若是,则输出OK,否则输出所缺的自然数及其个数m。在内循环结束后,(4)处应实现判断P是否为0,P=0表示数组A中含有k,否则表示数组A中缺少k。因此,(4)处应填入P=0。如果数据A中缺少k,则变量m的值应加1。因此,(5)处应填入m+1。
    循环k结束后,应根据m的值决定输出结果。m为0表示数组A中包含全部自然数1~n,即数组A的元素为自然数1~n的一个排列,m不为0表示数组A中缺少m个自然数,可将其输出。
转载请注明原文地址:https://jikaoti.com/ti/jbW7FFFM
0

最新回复(0)