itgle.com
参考答案和解析
正确答案:B
解析:二维数组可以按照两种方式存储:以行为主序或以列为主序。以行为主序存储时,先存储第一行的元素,之后存储第二行的元素,之后第三行,以此类推。以列为主序时情况相似,先存储第一列的元素,再第二列,再第三列……。题目中数组以列为主序存储,a[2,3]在第二行,第一行有4个元素,第二行a[2,3]前有a[2,1],a[2,2],所以a[2,3]相对于首地址偏移了7。
更多“设数组a[1..3,1..4]中的元素以列为主序存放,每个元素占用1个存储单元,则数组元素a[2,3]相对于数 ”相关问题
  • 第1题:

    设数组a[1..3,1..4]中的元素以列为主序存放,每个元素占用1个存储单元,则数组元素 a[2,3]相对于数组空间首地址的偏移量为______。

    A.6

    B.7

    C.8

    D.9


    正确答案:B
    解析:当数组元素以列为主序存储时,首先存储第1列的所有元素,然后存储第2列的所有元素,再存储第3列的所有元素,以此类推,最后存储最后一列的所有元素。数组元素a[2,3]表示是在第3行的第2个元素。所以,根据以列为主序存储元素的方式,它的位置前有2列元素,再加上两个元素,所以,它的位置为2*3+2=8,相对第一个元素的偏移量为8-1=7。本题正确答案为选项B。

  • 第2题:

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

    A.j*m+i

    B.i*m+j

    C.j*n+i

    D.i*n+i


    正确答案:B
    本题考查程序语言基础知识。对于元素a[ij]按行存储方式下,其前面共有i行(行下标为0至行下标为i-l)、每行m个元素,合计i*m个元素。数组a中行下标为i的元素有a[i,0],a[i,l]....a[i,j-1],a[i,j]....a[i,m-1],显然在该序列中,a[ij]之前有j个元素,因此,数组元素a[i.i](0in,0jm)之前共有i*m+j个元素,由于每个占用1个存储单元,故该元素的存储位置相对于数组空间首地址的偏移量为i*m+j。

  • 第3题:

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

    A.j*m+i
    B.i*m+j
    C.j*n+i
    D.i*n+j

    答案:B
    解析:
    本题考查程序语言基础知识。
    对于元素a[i,j],按行存储方式下,其前面共有i行(行下标为0至行下标为i-1)、每行m个元素,合计i*m个元素。数组a中行下标为i的元素有a[i,0]、a[i,1]、…、a[i,j-1]、a[i,j]、…、a[i,m-1],显然在该序列中,a[i,j]之前有j个元素,因此,数组元素a[i,j](0<i<n,0<j<m)之前共有i*m+j个元素,由于每个占用1个存储单元,故该元素的存储位置相对于数组空间首地址的偏移量为i*m+i。

  • 第4题:

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

  • 第5题:

    设数组a[1..6,0..9]的元素以行为主序存放,每个元素占用一个存储单元,则数组元素a[3,3]的地址为 ( ) 。

    A.a+23
    B.a+27
    C.a+39
    D.a+35

    答案:A
    解析:
    本题考查数组元素的存储。二维数组a[1..6,0..9]的元素排列情况如下所示:a[1,0] a[1,1] a[1,2] a[1,3] a[1,4] a[1,5] a[1,6] a[1,7] a[1,8] a[1,9]a[2,0] a[2,1] a[2,2] a[2,3] a[2,4] a[2,5] a[2,6] a[2,7] a[2,8] a[2,9]a[3,0] a[3,1] a[3,2] a[3,3] a[3,4] a[3,5] a[3,6] a[3,7] a[3,8] a[3,9]a[4,0] a[4,1] a[4,2] a[4,3] a[4,4] a[4,5] a[4,6] a[4,7] a[4,8] a[4,9]a[5,0] a[5,1] a[5,2] a[5,3] a[5,4] a[5,5] a[5,6] a[5,7] a[5,8] a[5,9]a[6,0] a[6,1] a[6,2] a[6,3] a[6,4] a[6,5] a[6,6] a[6,7] a[6,8] 8[6,9]以行为主序存储,元素a[3,3]之前存储了23个元素,由于每个元素仅占一个存储单元,因此元素a[3,3]的存储位置相对于数组空间起始地址的偏移量为23,其地址为 a+23。