已知N个数已存入数组A[1..M]的前N个元素中(N<M),为在A[i](1≤i≤N)之前插入—个新数,应先(40),以挪出一个空闲位置插入该数。A.从A[i]开始直到A[1],每个数向后移动一个位置B.从A[1]开始直到A[i],每个数向后移动一个位置C.从A[i]开始直到A[N],每个数向前移动一个位置D.从A[N]开始直到A[i],每个数向后移动一个位置

题目

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

A.从A[i]开始直到A[1],每个数向后移动一个位置

B.从A[1]开始直到A[i],每个数向后移动一个位置

C.从A[i]开始直到A[N],每个数向前移动一个位置

D.从A[N]开始直到A[i],每个数向后移动一个位置


相似考题
参考答案和解析
正确答案:D
解析:对于选项A,从A[i]开始直到A[1]的每个数向后移动一个位置,会将A[i+1]原来的值覆盖,挪出的空闲位置为A[1],显然不符合新元素插入在A[i]之前(即A[i-1]之后)的要求。对于选项B,从A[1]开始直到A[i]的每个数向后移动一个位置,使A[2]的值被改为与A[1]相同,使A[3]的值被改为与A[2]相同。依此类推,A[i]的值等于A[i-1],即完成该操作后,元素A[1]到A[i]的值都相同(等于A[1]),显然不符合新元素插入在A[i]之前的要求。对于选项C,从A[i]开始直到A[N]的每个数向前移动一个位置,使A[i-1]的值被改为A[i]的值,A[i]的值被改为A[i+1]的值,依此类推,A[N-1]的值为A[N]的值,相当于挪出的空闲位置为A[N],显然不符合新元素插入在A[i]之前的要求。对于选项D,从A[N]开始直到A[i]的每个数向后移动一个位置,使且A[N]的值移入A[N+1],A[N-1]的值移入A[N],依此类推,A[i]的值移入A[i+1],这样挪出来的空闲位置为A[i],完成了将新元素插入在A[i-1]之后(即A[i]之前)的操作要求。
更多“已知N个数已存入数组A[1..M]的前N个元素中(N<M),为在A[i](1≤i≤N)之前插入—个新数,应先(40),以挪 ”相关问题
  • 第1题:

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

    A.从A[i]开始直到A[1],每个数向后移动一个位置

    B.从A[1]开始直到A[i],每个数向后移动一个位置

    C.从A[i]开始直到A[N],每个数向前移动一个位置

    D.从A[N]开始直到A[i],每个数向后移动一个位置


    正确答案:D
    解析:根据题干内容,数组A[1..M]元素的结构如图8-10所示。对于选项A,从A[i]开始直到A[1],每个数向后移动一个位置,那么,首先移动A[i]到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[i]的值都变成了A[1]的值。空闲位置是A[1]。如图8-12所示。也不符合题意。对于选项C,从A[i]开始直到A[N],每个数向前移动一个位置,那么,首先移动A[i]到A[i-1]的位置时,会覆盖A[i-1]的内容,A[i]的内容变成A[i+1],依此类推,A[N-1]的内容成为A[N]的内容。而且,最后挪出的空闲位置为A[N],如图8-13所示。显然,不符合题意。对于选项D,从A[N]开始直到A[i],每个数向后移动一个位置,那么,首先移动A[N]到A[N+1]的位置时,会覆盖A[N+1]的内容,A[N-1]的内容移入A[N],依此类推,A[i]的内容移入A[i+1]。而且,最后挪出的空闲位置为A[i],如图8-14所示。显然符合题意。本题正确答案为选项D。

  • 第2题:

    设有一个m行n列的矩阵存储在二维数组A[1..M,1..n]中,将数组元素按行排列,对于A[i,j](1≤i≤m,l≤j≤n),排列在其前面的元素个数为( )。

    A.i*(n-1)+jB.(i-1)*n+J-1C.i*(m-l)+jD.(i-1)*m+J-1


    正确答案:B

  • 第3题:

    长度为n的顺序表,在第i个元素之前插入新元素,则向后移动元素的个数为()。

    A.n-i

    B.n-i-1

    C.n-i+1

    D.i


    B

  • 第4题:

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

    A.从A[i]开始直到A[1],每个数向后移动一个位置

    B.从A[1]开始直到A[i]小每个数向后移动一个位置

    C.从A[i]开始直到A[N],每个数向前移动一个位置

    D.从A[N]开始直到A[i]小每个数向后移动一个位置


    正确答案:D
    解析:本题考查用顺序方式存储线性表元素的插入运算特点。数组A[1..M]元素的布局如下图所示。

    对于选项A,从A[i]开始直到A[1]的每个数向后移动一个位置,会将A[i+1]原来的值覆盖,挪出的空闲位置为A[1],显然不符合新元素插入在A[i]之前(即A[i-1]之后)的要求。对于选项B,从A[1]开始直到A[i]的每个数向后移动一个位置,使A[2]的值被改为与A[1]相同,使A[3]的值被改为与A[2]相同,依此类推,A[i]的值等于A[i-1],即完成该操作后,元素A[1]到A[i]的值都相同(等于A[1])。对于选项C,从A[i]开始直到A[N]的每个数向前移动一个位置,使A[i-1]的值被改为A[i]的值,A[i]的值被改为A[i+1])的值,依此类推,A[N-1)的值为A[N]的值,相当于挪出来的空闲位置为A[N],显然不符合新元素插入在A[i]之前的要求。对于选项D,从A[N]开始直到A[i]的每个数向后移动一个位置,使A[N]的值移入 A[N+1],A[N-1]的值移入A[N],依此类推,A[i]的值移入A[i+1],这样挪出来的空闲位置为A[i],完成了将新元素插入在A[i-1]之后(即A[i]之前)的操作要求。

  • 第5题:

    设有一个m行n列的矩阵存储在二维数组A[1..M,1..n]中,将数组元素按行排列,对于A[i,j](1≤i≤m,l≤j≤n),排列在其前面的元素个数为( ).

    A.i*(n-1)+j
    B.(i-1)*n+J-1
    C.i*(m-l)+j
    D.(i-1)*m+J-1

    答案:B
    解析:
    本题考查数据结构基础知识。二维数组A[1..m,1.n]如下所示。



    对于元素A[i,j],其之前有i-1行、每行n个元素,在第i行上,A[i,j]之前有j-1个元素,因此,按行排列时,A[i,j]之前共有(i-1)*n+j-1个元素。