更多“设数组a[0..m,1..n]的每个元素占用1个存储单元,若元素按行存储,则数组元素a[i,j](0≤i≤m,1≤j≤n)相 ”相关问题
  • 第1题:

    设数组a[1..n,1..m](n>1,m>1)中的元素以行为主序存放,每个元素占用1个存储单元,则数组元素a[i,j](1≤i≤n,i≤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

    答案:A
    解析:
    数组 a[1..n,1..m] (n>1, m>1)如图所示:数组元素的存储地址=数组空间首地址+偏移量其中偏移量的计算方式为排列在所访问元素之前的元素个数乘以每个元素占用的存储单元数。对于元素a[i,j],在按行存储(以行为主序存放)方式下,该元素之前的元素个数为(i-1)*m+j-1。

  • 第2题:

    设数组a[0...n-1,0...m-1](n>1,m>1)中的元素以行为主序存放,每个元素占用4个存储单元,则数组元素a[i,j](0≤i
    A.(j*m+i)*4
    B.(i*m+j)*4
    C.(j*n+i)*4
    D.(i*n+j)*4

    答案:B
    解析:
    数组元素的存储地址=数组空间首地址+偏移量,其中偏移量的计算方式为排列在所访问元素之前的元素个数乘以每个元素占用的存储单元数。对于元素a[i,j],在按行存储(以行为主序存放)方式下,从第0行和0列开始算起,每一行有m个元素,每一列有n个元素,每个元素占用4个存储单元,在a[i,j]前面已经有i行元素,然后在本行中,前面有j个元素,所以a[i,j]相对于数组空间首地址的偏移量为(i*m+j)*4。

  • 第3题:

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

    答案:C
    解析:
    本题考查数组元素的存储知识。二维数组arr[1..M,1..N]的元素可以按行存储,也可以按列存储。按列存储时,元素的排列次序为,先是第一列的所有元素,然后是第二列的所有元素,最后是第N列的所有元素。每一列的元素则按行号从小到大依次排列。因此,对于元素arr[i,j],其存储位置如下计算:先计算其前面j-1列上的元素总数,为(j-1)*M,然后计算第j列上排列在arr[i,j]之前的元素数目,为i-1,因此arr[i,j]的地址为base+((j-1)*M+i-1)*K。

  • 第4题:

    设数组a[0..n-1,0..m-1](n>1,m>1)中的元素以行为主序存放,每个元素占用4个存储单元,则数组元素a[i,j](0≤i
    A.(j*m+i)*4
    B.(i*m+j)*4
    C.(j*n+i)*4
    D.(i*n+j)*4

    答案:B
    解析:
    【解析】由于a[i,j](0≤i

  • 第5题:

    设数组a[1..n,1..m](n>1,m>1)中的元素以列为主序存放,每个元素占用1个存储单元,则数组元素a[i,j](1≤i≤n,i≤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
    解析:
    数组 a[1..n,1..m] (n>1, m>1)如图所示:数组元素的存储地址=数组空间首地址+偏移量。其中偏移量的计算方式为排列在所访问元素之前的元素个数乘以每个元素占用的存储单元数。



    对于元素a[i,j],在按列存储(以列为主序存放)方式下,该元素之前的元素个数为(j-1)*n+i-1。