问题 填空题

[说明]

某单位动态收集的数据中常包含重复的数据,所以需要进行处理,使得重复的数据仅出现一次。下面流程图的功能是:在n(n≥1)个数据D1,D2,…,Dn中,选出其中所有不重复的k个数据,置于原来前k个数据的位置上。

该流程图的算法如下:第1个数据必然被选出,然后从第2个数据开始,逐个考察其余的数据。假设D1,D2,…,Dm(m≥1)是已经选出的、不重复的数据,则对于数据Di(m<i≤n),将其依次与Dm,Dm-1,…,D1进行比较,若没有发现与之相同者,则Di被选出并置于Dm+1的位置上;否则对Di不做处理。

例如,如下10个数据:

5,2,2,7,4,4,7,1,9,1 (n=10)

经过上述算法处理后的结果为:

5,2,7,4,1,9 (k=6)

[流程图]

本题流程图如图8-32所示。

注:循环开始的说明按照“循环变量名:循环初值,循环终值,增量”格式描述。

(5)处填()

答案

参考答案:m←m+1或其等价形式

解析:

在流程图中,初始时应将m设置为1,(1)处应为1,对于n个数据(n>1)而言,接着应逐个考查D[2],…,D[n]的内容,因此循环应该对i=2,n,1进行,所以(2)处应为2。考查D[i]时,需要将其分别与D[m],D[m-1],…,D[1]逐个比较,所以循环应对j=m,1,-1进行,所以(3)处应为m。当比较过程中发现重复时,则不做处理,若没有重复,则应将D[i]存入D[m+1],所以(4)处应为D[m+1],然后,将重复计数器m加1,所以(5)处应为m←m+1。

单项选择题
默写题