若二维数组a有m列,且设a[0][0]位于数组的第一个位置上,则计算任一元素a[i][j]刚在数组中的位置的式子为( )。

admin2010-05-22  11

问题 若二维数组a有m列,且设a[0][0]位于数组的第一个位置上,则计算任一元素a[j]刚在数组中的位置的式子为(  )。

选项 A、i*m+j
B、j*m+i
C、i*m+j-1
D、i*m+j+l

答案8

解析 解此题要注意的问题有两个:一是,二维数组在内存中的存放形式是线性的,且是以行方式排列的。例如:a[3][4]在内存中是以a[0][0],a[0][1],a[0][2],a[0][3],a[1][0],a[1][1],a[1][2],…的顺序排列的。二是,数组的下标范围是从0开始至上限减1为止的。例如:a[5]中5个元素的下标范围是0~4。所以,元素a[j]刚在m列的二维数组a中,其上面已经有a[0][?]~a[i-1][?],i行元素,加上其左面的a[0]~a[j-1],j个元素,再加上自己所处的位置1就是该元素在数组中的位置值了。i行元素的个数是i*m,所以元素a[j]在数组中的位置为i*+j+1。得出结论后还应该验证一下,当i=0,j=0时,a[0][0]所处的位置代入式子为0*m+0+1:1,符合题意。故正确答案为D。
转载请注明原文地址:https://jikaoti.com/ti/hLI0FFFM
0

最新回复(0)