已知N个数已存入数组A[1..M]的前N个元素中(N<M),为在A[i](1≤i≤N)之前插入一个新数,应先______,以挪出一个空闲位置插入该数。

admin2019-05-23  9

问题 已知N个数已存入数组A[1..M]的前N个元素中(N<M),为在A(1≤i≤N)之前插入一个新数,应先______,以挪出一个空闲位置插入该数。

选项 A、从A开始直到A[1],每个数向后移动一个位置
B、从A[1]开始直到A,每个数向后移动一个位置
C、从A开始直到A[N],每个数向前移动一个位置
D、从A[N]开始直到A,每个数向后移动一个位置

答案D

解析 根据题干内容,数组A[1..M]元素的结构如图8-10所示。
  
   对于选项A,从A开始直到A[1],每个数向后移动一个位置,那么,首先移动
  A到A[i+1]的位置时,会覆盖A[i+1]的内容。而且,最后挪出的空闲位置为A[1],如图8-11所示。显然,不符合题意。
    
   对于选项B,首先A[1]内容向后移动到A[2]内容,那么,A[2]的内容被A[1]的内容所覆盖,A[2]内容再继续向后移,实际上是将A[1]内容又覆盖了A[3]内容。依此类推。最后,A[2]~A的值都变成了A[1]的值。空闲位置是A[1]。如图8-12所示。也不符合题意。
  
  对于选项C,从A开始直到A[N],每个数向前移动一个位置,那么,首先移动 A到A[i-1]的位置时,会覆盖A[i-1]的内容,A的内容变成A[i+1],依此类推, A[N-1]的内容成为A[N]的内容。而且,最后挪出的空闲位置为A[N],如图8-13所示。显然,不符合题意。
   
   对于选项D,从A[N]开始直到A,每个数向后移动一个位置,那么,首先移动 A[N]到A[N+1]的位置时,会覆盖A[N+1]的内容,A[N-1]的内容移入A[N],依此类推,A的内容移入A[i+1]。而且,最后挪出的空闲位置为A,如图8-14所示。显然符合题意。本题正确答案为选项D。
转载请注明原文地址:https://kaotiyun.com/show/SvVZ777K
0

随机试题
最新回复(0)