设数组a[5..20,3..16]的元素以行为主序存放,每个元素占用两个存储单元,则数组元素a[i,j](5≤i≤20,3≤j≤16)的地址计算公式为(108)。A.a-146+28i+2jB.a-116+28i+2jC.a-144+28i+2iD.a-118+28i+2j

题目

设数组a[5..20,3..16]的元素以行为主序存放,每个元素占用两个存储单元,则数组元素a[i,j](5≤i≤20,3≤j≤16)的地址计算公式为(108)。

A.a-146+28i+2j

B.a-116+28i+2j

C.a-144+28i+2i

D.a-118+28i+2j


相似考题
参考答案和解析
正确答案:D
解析:本题可以用特殊值法:代入a[5,3]的地址(i=5,j=3),只有a-146+28i+2j是正确的。
更多“设数组a[5..20,3..16]的元素以行为主序存放,每个元素占用两个存储单元,则数组元素a[i,j](5≤i≤20, ”相关问题
  • 第1题:

    设数组a[1…7,6…10]中的元素以列为主序存放,每个元素占用2个存储单元,则数组元素 a[i,j](1≤i≤7,6≤j≤10)的地址可以表示为(46)。

    A.a-84+i+7j

    B.a-22+5i+j

    C.a-86+i+7j

    D.a-22+i+7j


    正确答案:C
    解析:将数组s视作一个7×5的矩阵,那么元素a[i,j]位于其中第i行第j-5列。以列为主序存放数组元素时,a[i,j]排在第i+(j-5-1)*7位。因此其地址为a+[i+(j-5-1)*7-1]*2=a-86+i+7j。

  • 第2题:

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

  • 第3题:

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

  • 第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行且每行有m个元素(行下标为0,1,…,i-1),即i*m个,行下标为i时,排列在a[i,j]切之前的元素有a[i,0],a[i,1],…,a[i,j-1],即j个,所以一共有i*m+j个元素排在a[i,j]之前,因此该元素的存储位置相对于数组空间首地址的偏移量为(i*m+j)*4。

  • 第5题:

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