78
39
25
50
二维数组k[1..7,1..9],每元素大小占2个字节,而且使用列存储,a[5,4]的偏移量为()个字节。
所以a[5,4] 左边有3列,上面有4行,按照列存储的话 就是 (3x7+4)2=25x2 =50 ;
拓展一下:如果是安装行存储 那么就是 上面有4行 4x9= 36 左边有3列 (36+3)x2 = 78 也就是 A答案
个人理解为: 先说哦我们习惯的K[7][9],默认是行优先(下标是从0开始),是一个7*9的矩阵。a[5,4]表示:第6行的第5列(下标是从0开始哈); 而题目要求,K[1..7, 1..9],列优先(注意:下标是从1开始的!!!),因此代表的是一个9*7的矩阵, 由于转置了,故a[5,4]变成了a[4,5],而a[4,5]代表第4行的第5列(此处的下标是从1开始!!!)。 也即:(3 * 7 + 4)* 2 = 50;
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题