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

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))】】】===         ;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值