现在的位置: 首页 > 综合 > 正文

第五章 数组和广义表练习题

2019年03月06日 ⁄ 综合 ⁄ 共 1282字 ⁄ 字号 评论关闭

1、设有二维数组A(m*n),其中每个元素占w个存储单元,第一个元素a[1][1]的起始地址为L,则以列主序方式存储a[i][j]的存储单元地址是__________.

2、C语言是按行主序方式顺序存储数组,设有定义int
a[3][2][2][3];要求列出其所有数组元素在内存中的存储次序.

3、试编写算法,将数组int
A[n]中的所有奇数移到所有偶数之前.要求时间复杂度为O(n).

4、在C语言中有定义,float b[5][7];设其首地址是1900,则元素
b[3][5]的存储地址是________.

5、设矩阵A是一个对称矩阵,为了节省存储,将其下三角部分按行序存放在一维数组B[
1, n(n-1)/2 ]中,对下三角部分中任一元素ai,j(i≤j),
在一维数组B中下标k的值是(
      

A、i(i-1)/2+j-1   
B、i(i-1)/2+j     
C、i(i+1)/2+j-1       
D、i(i+1)/2+j

6、数组通常只有两种运算_________和_______

7、什么是稀疏矩阵?

8、三维数组a[5][7][9]共含有_______个元素.

9、数组通常采用链式存储结构(  )

10、设数组a[1…60,
1…70]的基地址为2048,每个元素占2个存储单元,若以列序为主序顺序存储,则元素a[32,58]的存储地址为       

11、求三维数组A(m*n*p)按行优先顺序存储的地址计算公式___________.

    
其中:d为每个元素占的存储单元数.

12、求下列广义表运算的结果

(1) head((x,y,z))=______________

(2) tail((a,b),(x,y))=_______________.

13、求下列广义表运算的结果

(1)head(tail((x,y),(a,b)))=________________

(2)tail(head((a,b,c),(x,y),(e,f)))=______________

14、假设有60行70列的二维数组a[1…60,
1…70]以列序为主序顺序存储,其基地址为10000,每个元素占2个存储单元,那么第32行第58列的元素a[32,58]的存储地址为(    
)。(无第0行第0列元素)

  
A、16902   
B、16904     
C、14454      
D、答案A, B, C均不对

15、三元素组表中的每个结点对应于稀疏矩阵的一个非零元素,它包含有三个数据项,分别表示该元素的行下标、     
       

16、求下列广义表操作的结果:GetHead【((a,b),(c,d))】===       
 
GetHead【GetTail【((a,b),(c,d))】】=== 
    
;

17、求下列广义表操作的结果:GetHead【GetTail【GetHead【((a,b),(c,d))】】】===    
;
GetTail【GetHead【GetTail【((a,b),(c,d))】】】===  
      
;

抱歉!评论已关闭.