设二维数组A[1.. m,1.. n](即m行n列)按行存储在数

题目

设二维数组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
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

● 设数组a[0..m,1..n]的每个元素占用1个存储单元,若元素按行存储,则数组元素a[i,j](0≤i≤m,1≤j≤n)相对于数组空间首地址的偏移量为 (32) 。

(32)

A. (i+1)*n+j

B. i*n+j-1

C. i*m+j

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


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

第2题:

设二维数组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。

第3题:

●对于二维数组a[1..N,1..N]中的一个元素a[i,j](1≤i,j≤N),存储在a[i,j]之前的元素个数(21)。

(21)A.与按行存储或按列存储方式无关

B.在i=j时与按行存储或按列存储方式无关

C.在按行存储方式下比按列存储方式下要多

D.在按行存储方式下比按列存储方式下要少


正确答案:B

第4题:

以下fun函数的功能是在N行M列的整型二维数组中,选出一个最大值作为函数值返回,请填空。(设M,N已定义)

int fun(int a[N][M])

{int i,j,row=0,col=0;

for(i=0;i<N;i++)

for(j=0;j<M;j++)

if(a[i][j]>a[row][col])(row=i;col=j;)

return(_____);

}


正确答案:a[row][col]
a[row][col] 解析:嵌套循环,依次遍历二维数组的所有元素,从a[0][0]开始,先按行,后按列,a[row][col]先取a[0][0],若后面的元素比他大,则将此i、j值存入row、col中,即记录元素中当前最大值。循环结束返回a[row][col],即数组最大值。

第5题:

● 下三角矩阵A[0..8,0..8]如下所示,若将其下三角元素(即行下标不小于列下标的所有元素)按列 列列 列压缩存储在数组M[0..m]中,即A[0,0]存储在M[0]、A[1,0]存储在M[1]、A[2,0]存储在M[2],…,A[8,8]存储在M[44],则元素A[5,5]存储在 (37) 。若将其下三角元素按行 行行 行压缩存储在数组 M[0..m]中,即 A[0,0]存储在 M[0]、A[1,0]存储在 M[1]、A[1,1]存储在M[2],…,A[8,8]存储在M[44],则元素A[5,5]存储在 (38) 。


正确答案:C,B

第6题:

有n个顶点的无向图的邻接矩阵是用()数组存储。

A、一维

B、n行n列

C、任意行n列

D、n行任意列


参考答案:B

第7题:

若关系R为M列P行,关系S为N列Q行,则R×S的结果为()列()行。

A.M+N、P+Q

B.M+N、P×Q

C.M×N、P+Q

D.M×N、P×Q


参考答案:B

第8题:

设二维数组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

第9题:

对于二维数组a[0.. 4,1.. 5],设每个元素占1个存储单元,且以列为主序存储,则元素a[2,2]相对于数组空间起始地址的偏移量是______。

A.5

B.7

C.10

D.15


正确答案:B
解析:此类题型以前考过多次,为了让大家能更好地理解题目的意思以及解题的思想,图3-81给出了二维数组a[0..4,1..5]的结构。因为以列为主序存储,所以a[0,1]存储在1号存储单元,a[1,1]存储在2号存储单元……以此类推,a[2,2]存储在8号存储单元,所以相对于数组空间起始地址的偏移量为8-1,即7。偏移量就是差值。所以答案为:B。此外,若数组以行为主序存储,则数组的结构如图3-82所示。

第10题:

●设下三角矩阵(上三角部分的元素值都为 0)A[0..n,0..n]如下所示,将该三角矩阵的所有非零元素(即行下标不小于列下标的元素)按行优先压缩存储在容量足够大的数组M[ ]中(下标从1 开始),则元素 A[I,j](O≤i≤n,j≤i)存储在数组M 的 (57) 中。


正确答案:A
试题(57)分析本题考查数组存储的基础知识。按行方式存储时,元素A[i,j]之前的元素个数为(1+2+…+i+j),由于数组M的下标从1开始,因此,存储A[i,j]的是M[1+2+…+i+j+1],即M[i(i+1)/2+j+1]。参考答案(57)A

更多相关问题