更多“设二维数组A[1..m,1..n](即m行n列)按行存储在数组B”相关问题
  • 第1题:

    设二维数组a[1..m, 1..n] 含有m*n 个整数。 ① 写一个算法判断a中所有元素是否互不相同?输出相关信息(yes/no); ② 试分析算法的时间复杂度。


    参考答案:①判断二维数组中元素是否互不相同,只有逐个比较,找到一对相等的元素,就可结论为不是互不相同。如何达到每个元素同其它元素比较一次且只一次?在当前行,每个元素要同本行后面的元素比较一次(下面第一个循环控制变量p的for循环),然后同第i+1行及以后各行元素比较一次,这就是循环控制变量k和p的二层for循环。
      [算法描述]
      int JudgEqual(ing a[m][n],int m,n)
      //判断二维数组中所有元素是否互不相同,如是,返回1;否则,返回0。
      {for(i=0;i  for(j=0;j  {for(p=j+1;p  if(a[i][j]==a[i][p]) {cout<<“no”; return(0); }
      //只要有一个相同的,就结论不是互不相同
      for(k=i+1;k  for(p=0;p  if(a[i][j]==a[k][p]) { cout<<“no”; return(0); }
      }// for(j=0;j  cout<<“yes”; return(1); //元素互不相同
      }//算法JudgEqual结束
      ②二维数组中的每一个元素同其它元素都比较一次,数组中共m*n个元素,第1个元素同其它m*n-1个元素比较,第2个元素同其它m*n-2 个元素比较,……,第m*n-1个元素同最后一个元素(m*n)比较一次,所以在元素互不相等时总的比较次数为 (m*n-1)+(m*n-2)+…+2+1=(m*n)(m*n-1)/2。在有相同元素时,可能第一次比较就相同,也可能最后一次比较时相同,设在(m*n-1)个位置上均可能相同,这时的平均比较次数约为(m*n)(m*n-1)/4,总的时间复杂度是O(n4)。

  • 第2题:

    ●若二维数组arr[1..M,1..N】的首地址为base,数组元素按列存储且每个元素占用K个存储单元,则元素arr[i,j]在该数组空间的地址为 (21)。

    (21)

    A. base+((i-1)*M+j-1)*K

    B.base+((i-1)*N+j-1)*K

    C.base+((j-1)*M+i-1)*K

    D.base+((j-1)*N+i-1)*K


    正确答案:C

  • 第3题:

    设数组a[1..n,1..m](n>1,m>1)中的元素以行为主序存放,每个元素占用1个存储单元,则数组元素a[i,j](1<=i<=n,1<=j<=m)相对于数组空间首地址的偏移量为(35)。

    A.(i-1)*m+j-1

    B.(i-1)*n+j-1

    C.(j-1)*m+i-1

    D.(j-1)*n+i-1


    正确答案:A
    二维数组元素的存储布局可以按行安排,也可以按列安排。元素a[i.j]相对于数组空间首地址的偏移量计算方法为:先算出存储在该元素之前的行数(或列数),然后算出在该元素所在行(或列)上排在a[i.j]之前的元素个数。根据以上信息算出存储在a[i,j]之前的元素个数,再乘以每个元素占用的存储单元个数即可。本题中数组元素按行存储,在a[i,j]之前有i-1行(行号为1、…、i-1)、每行m个元素,在其所在行,a[i,j]之前有j-1个元素,因此偏移量为(i-1)*m+j-1。

  • 第4题:

    设有一个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

  • 第5题:

    二维数组a[1..N,1..n]可以按行存储或按列存储。对于数组元素a[i,j](1,=

    A.i≠j

    B.i=j

    C.i>j

    D.i


    正确答案:B

  • 第6题:

    设数组a[1..m,1..n](m>1,n>1)中的元素按行存放,每个元素占用1个存储单元,则数组元素a[i,j](1≤i≤m,1≤j≤n)相对于数组首元素的偏移量为( )。

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

    答案:B
    解析:
    存储数组元素时,需要将元素按照某种顺序排列。对于二维及多维数组,则有按行存储和按列存储两种方式,其不同在于同一个元素相对于数组空间起始位置的偏移量不同。本问题中 n 行 m 列的二维数组 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,由于每个元素占一个单元,该表达式的值就是偏移量。

  • 第7题:

    设有一个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个元素。

  • 第8题:

    什么叫二维数组的行序优先存储?什么叫二维数组的列序优先存储?


    正确答案:所谓行序优先存储,其基本思想为:从第1行的元素开始按顺序存储,第1行元素存储完成后,再按顺序存储第2行的元素,然后依次存储第3行,……直到最后一行的所有元素存储完毕为止。而列序优先存储即为:依次按顺序存储第1列,第2列,……直到最后一列的所有元素存储完毕为止。

  • 第9题:

    设二维数组A[m][n]按列优先存储,每个元素占1个存储单元,元素A00的存储地址loc(A00),则Aij的存储地址loc(Aij)=()。


    正确答案:loc(a00)+(j*m+i)*1

  • 第10题:

    填空题
    设二维数组A[m][n]按列优先存储,每个元素占1个存储单元,元素A00的存储地址loc(A00),则Aij的存储地址loc(Aij)=()。

    正确答案: loc(a00)+(j*m+i)*1
    解析: 暂无解析

  • 第11题:

    单选题
    若二维数组arr[1..M,1..N]的首地址为base,数组元素按列存储且每个元素占用K个存储单元,则元素arr[i,j]在该数组空间的地址为()。
    A

    base+((i-1)*M+j-1)*K

    B

    base+((i-1)*N+j-1)*K

    C

    base+((j-1)*M+i-1)*K

    D

    base+((j-1)*N+i-1)*K


    正确答案: A
    解析: 数据arr共M行N列,下标均从1开始。元素arr[i,j]在数据arr的第i行第j列,如果数组元素按列存储,则1~j-1列共有(j-1)*M个元素,a[i,j]之前共(j-1)*M+i-1个元素,元素arr[i,j]在该数组空间的地址为base+((j-1)*M+i-1)*K。

  • 第12题:

    单选题
    设二维数组A[l.m,1..n](即m行n列)按行存储在数组B[1.m*n]中,则二维数组元素Ai,j]在一维数组B中的下标为()。
    A

    (i-1)*n+j

    B

    (i-1)*n+j-1

    C

    i*(j-1)

    D

    j*m+i-1


    正确答案: D
    解析:

  • 第13题:

    设二维数组A[1..m,1..n](即m行n列)按行存储在数组B[1..m*n]中,则二维数组元素A[i,j]在一维数组B中的下标为()。

    A.(i-1)*n+j

    B、(i-1)*n+j-1

    C.i*(j-1)

    D、j*m+i-1


    参考答案:A
    解释:特殊值法。取i=j=1,易知A[1,1]的的下标为1,四个选项中仅有A选项能确定的值为1,故选A。

  • 第14题:

    ●设数组a[1..m,1..n](m>1,n>2)中的元素以行为主序存放,每个元素占用1个存储单元,则最后一个数组元素a[m,n】相对于数组空间首地址的偏移量为( )。

    A.(m-l)*n+n-l

    B.(m-l)*n

    C.m*(n-l)

    D.m*n


    正确答案:A

  • 第15题:

    ●设有二维数组a[1..m,1..n](2<m<n),其第一个元素为a[1,1],最后一个元素为a[m,n],若数组元素以行为主序存放,每个元素占用k个存储单元(k>1),则元素a[2,2]的存储位置相对于数组空间首地址的偏移量为(35)。

    A.(n+1)*k

    B.n*k+l

    C.(m+1)*k

    D.m*k+l


    正确答案:A

  • 第16题:

    设数组 A[ 1..m,1...n.] 的每个元素占用 1 个存储单元,对于数组元素 A[i,j] (1≤i≤m≤1≤j≤n),在按行存储方式下,其相对于数组空间首地址的偏移量为( );在按列存储方式下,其相对于数组空间首地址的偏移量为( )。

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


    正确答案:B,D

  • 第17题:

    设数组A[1..m,1..n]的每个元素占用1个存储单元,对于数组元素A[i,j](1≤i≤m,1≤j≤n),在按行存储方式下,其相对于数组空间首地址的偏移量为( );在按列存储方式下,其相对于数组空间首地址的偏移量为(请作答此空)。

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

    答案:D
    解析:
    本题考查数据结构基础知识。数组A[1..m,1..n]的元素排列如下。

    解答该问题需先计算排列在a[i,j]之前的元素个数。
    按行方式存储下,元素a[i,j]之前有i-1行,每行n个元素,在第i行上a[i,j]之前有j-1个元素,因此,a[i,j]之前共有(i-1)*n+j-1个元素。
    在按列存储方式下,元素a[i,j]之前有i-1列,每列m个元素,在a[i,j]所在列(即第j列),排在它之前的元素有i-1个,因此,a[i,j]之前共有(i-1)*m+i-1个元素。
    数组中指定元素的存储位置相对于数组空间首地址的偏移量等于k*d,其中k为排在该元素前的元素个数,d为每个元素占用的存储单元数。

  • 第18题:

    设数组a[1..n,1..m](n>1,m>1)中的元素以列为主序存放,每个元素占用1个存储单元,则数组元素a[i,j](1≤i≤n,1≤j≤m)相对于数组空间首地址的偏移量为( )。

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

    答案:D
    解析:
    本题考查程序语言基础知识。
    存储数组元素时,需要将元素按照某种顺序排列。对于二维及多维数组,则有按行存储和按列存储两种方式,其不同在于同一个元素相对于数组空间起始位置的偏移量不同。本问题中n行m列的二维数组a[1..n,1..m]是按列存储,则对于元素a[i,j]来说,它之前有完整的j-1列、每列n个元素,在第j列上排在a[i,j]之前的元素个数是i-1个,因此排列在a[i,j]之前的元素个数为(j-1)*n+i-1,由于每个元素占一个单元,该表达式的值就是偏移量。

  • 第19题:

    设二维数组intM[4][4],每个元素(整数)占2个存储单元,元素按行优先的顺序存储,数组的起始地址为200,元素M[1][1]的地址是()


    正确答案:210

  • 第20题:

    设二维数组A[1„m,1„n]按行存储在数组B中,则二维数组元素A[i,j]在一维数组B中的下标为()。

    • A、n*(i-1)+j
    • B、n*(i-1)+j-1
    • C、i*(j-1)
    • D、j*m+i-1

    正确答案:A

  • 第21题:

    问答题
    什么叫二维数组的行序优先存储?什么叫二维数组的列序优先存储?

    正确答案: 所谓行序优先存储,其基本思想为:从第1行的元素开始按顺序存储,第1行元素存储完成后,再按顺序存储第2行的元素,然后依次存储第3行,……直到最后一行的所有元素存储完毕为止。而列序优先存储即为:依次按顺序存储第1列,第2列,……直到最后一列的所有元素存储完毕为止。
    解析: 暂无解析

  • 第22题:

    单选题
    设二维数组A[1.. m,1.. n](即m行n列)按行存储在数组B[1.. m*n]中,则二维数组元素A[i,j]在一维数组B中的下标为()。
    A

    (i-1)*n+j

    B

    (i-1)*n+j-1

    C

    i*(j-1)

    D

    j*m+i-1


    正确答案: D
    解析: 特殊值法。取i=j=1,易知A[1,1]的的下标为1,四个选项中仅有A选项能确定的值为1,故选A。

  • 第23题:

    填空题
    设二维数组intM[4][4],每个元素(整数)占2个存储单元,元素按行优先的顺序存储,数组的起始地址为100,元素M[2][3]的地址是()

    正确答案: 122
    解析: 暂无解析

  • 第24题:

    单选题
    设二维数组A[1„m,1„n]按行存储在数组B中,则二维数组元素A[i,j]在一维数组B中的下标为()。
    A

    n*(i-1)+j

    B

    n*(i-1)+j-1

    C

    i*(j-1)

    D

    j*m+i-1


    正确答案: C
    解析: 暂无解析