软考中级

若有数组声明 a[0..3,0..2,1..4],设编译时为 a 分配的存储空间首地址为base_a,且每个数组元素占据一个存储单元。当元素以行为序存放(即按 a[0,0,1],a[0,0,2],a[0,0,3],a[0,0,4],a[0,1,1],a[0,1,2],…,a[3,2,4]顺序存储),则数组元素a[2,2,2]在其存储空间中相对base_a的偏移量是 (55) 。A.8B.12C.33D.48

题目

若有数组声明 a[0..3,0..2,1..4],设编译时为 a 分配的存储空间首地址为base_a,且每个数组元素占据一个存储单元。当元素以行为序存放(即按 a[0,0,1],a[0,0,2],a[0,0,3],a[0,0,4],a[0,1,1],a[0,1,2],…,a[3,2,4]顺序存储),则数组元素a[2,2,2]在其存储空间中相对base_a的偏移量是 (55) 。

A.8

B.12

C.33

D.48

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

设有数组A[1..8,1..10],数组的每个元素占3字节,数组从内存首地址BA开始以列序为主序顺序存放,则数组元素 A[5,8]的存储首地址为()。

A.BA+141

B.BA+180

C.BA+222

D.BA+225


270272231

第2题:

06110041:设array为一数组,则表达式sizeof(array)/sizeof(array[0])的结果为()。

A.array数组首地址

B.array数组中元素个数

C.array数组中每个元素所占的字节数

D.array数组占的总字节数


B

第3题:

若有数组声明a[0..3,0..2,1..4],设编译时为a分配的存储空间首地址为base_a。且每个数组元素占据一个存储单元。当元素以行为序存放(即按a(0,0,1),a[0,0,2],a[0,0,3],a[0,0,4],a[0,1, 1),a[0,1,2],……,a[3,2,4]顺序存储),则数组元素a[3,1,3]在其存储空间中相对base_a的偏移量是(60)。

A.23

B.24

C.42

D.43


正确答案:C
解析:对于数组声明a[0..3,0..2,1..4],元素布局如下。
  a[0,0,1]  a[0,0,2]  a[0,0,3]  a[0,0,4]
  a[0,1,1]  a[0,1,2]  a[0,1,3]  a[0,1,4]
  a[0,2,1]  a[0,2,2]  a[0,2,3]  a[0,2,4]
  a[1,0,1]  a[1,0,2]  a[1,0,3]  a[1,0,4]
  a[1,1,1]  a[1,1,2]  a[1,1,3]  a[1,1,4]
  a[1,2,1]  a[1,2,2]  a[1,2,3]  a[1,2,4]
  a[2,0,1]  a[2,0,2]  a[2,0,3]  a[2,0,4]
  a[2,1,1]  a[2,1,2]  a[2,1,3]  a[2,1,4]
  a[2,2,1]  a[2,2,2]  a[2,2,3]  a[2,2,4]
  a[3,0,1]  a[3,0,2]  a[3,0,3]  a[3,0,4]
  a[3,1,1]  a[3,1,2]  a[3,1,3]  a[3,1,4]
  a[3,2,1]  a[3,2,2]  a[3,2,3]  a[3,2,4]
  当元素以行为序存放时,排列在a[3,1,3]之前的元素个数为42个,因此该元素在其存储空间中相对base_a的偏移量是42。

第4题:

若有数组声明a[0..3,0..2,1..4),设编译时为a分配的存储空间首地址为base a,且每个数组元素占据一个存储单元。当元素以行为序存放(即按a[0,0,1),a[0,0,2], a[0,0,3],a[0,0,4],a[0,1,1],a[0,1,2],…,a[3,2,4]顺序存储),则数组元素a[2,2,2]在其存储空间中相对base_ a的偏移量是(50)。

A.8

B.12

C.33

D.48


正确答案:C
解析:本题数组元素存储基础知识。
对于数组声明a[0.3,0..2,1..4],元素布局如下:
a[0,0,1] a[0,0,2] a[0,0,3] a[0,0,4]
a[0,1,1] a[0,1,2] a[0,1,3] a[0,1,4]
a[0,2,1] a[0,2,2] a[0,2,3] a[0,2,4]
a[1,0,1] a[1,0,2] a[1,0,3] a[1,0,4]
a[1,1,1] a[1,1,2] a[1,1,3] a[1,1,4]
a[1,2,1] a[1,2,2] a[1,2,3] a[1,2,4]
a[2,0,1] a[2,0,2] a[2,0,3] a[2,0,4]
a[2,1,1] a[2,2,2] a[2,2,3] a[2,2,4]
a[3,0,1] a[3,0,2] a[3,0,3] a[3,0,4]
a[3,1,1] a[3,1,2] a[3,1,3] a[3,1,4]
a[3,2,1] a[3,2,2] a[3,2,3] a[3,2,4]
  当元素以行为序存放时,排列在a[2,2,2]之前的元素个数为33个,因此该元素在其存储空间中相对base_ a的偏移量是33。

第5题:

若有定义float a[15],*p=a;,且数组a的首地址为300H,则p+13所指向的数组元素的地址为 ( )。

A.334H

B.30DH

C.352H

D.31AH


正确答案:C
解析:解答本题,首先要明白在对指针进行加,减运算的时候,数字“1”不是十进制的数“1”,而是指“1”个存储单元长度,而 1个存储单元长度占多少存储空间,应该视具体情况而定。如果基本类型是int型,移动1个存储单元的长度就是位移2个字节,如果基本类型是float型,移动1个存储单元的长度就是位移4个字节。所以p+13所指向的数组元素的地址为:300H+(13*4)H=352H。

第6题:

● 若有数组声明 a[0..3,0..2,1..4],设编译时为 a 分配的存储空间首地址为base_a,且每个数组元素占据一个存储单元。当元素以行为序存放(即按 a[0,0,1],a[0,0,2],a[0,0,3],a[0,0,4],a[0,1,1],a[0,1,2],…,a[3,2,4]顺序存储),则数组元素a[2,2,2]在其存储空间中相对base_a的偏移量是 (50) 。

(50)

A. 8

B. 12

C. 33

D. 48


正确答案:C



第7题:

若有定义float a[15],*p=a;,且数组a的首地址为300H,则p+13所指向的数组元素的地址为 ( )

A.334H

B.30DH

C.352H

D.31AH


正确答案:C
解析:解答本题,首先要明白在对指针进行加、减运算的时候,数字“1”不是+进制的数“1”,而是指“1”个存储单元长度,而1个存储单元长度占多少存储空间,应该视具体情况而定。如果基本类型是int型,移动1个存储单元的长度就是位移2个字节,如果基本类型是float型,移动1个存储单元的长度就是位移4个字节。所以 p+13所指向的数组元素的地址为:300H+(13*4) H=352H。

第8题:

若有定义float a[15],*p=a;,且数组a的首地址为300H,则p+13所指向的数组元素的地址为( )。

A.334H

B.30DH

C.352H

D.31AH


正确答案:C
解析:解答本题,首先要明白在对指针进行加、减运算的时候,数字“1”不是十进制的数“1”,而是指"1"个存储单元长度,而1个存储单元长度占多少存储空间,应该视具体情况而定。如果基本类型是 int型,移动1个存储单元的长度就是位移2个字节,如果基本类型是float型,移动1个存储单元的长度就是位移4个字节。所以p+13所指向的数组元素的地址:300H+(13*上标)4)H=352H。

第9题:

设C数组A[20][10]每个元素占2个存储单元,且第1个元素的首地址为2000,则元素A[8][9]的存储地址为()。


参考答案:2178