若一维数组的首个元素是a0,每个元素占d个字节,则其随机存取公式是( )?
A: Loc(ai) = Loc(a0) + (i+1)*d
B: Loc(ai) = Loc(a0) + i*d
C: Loc(ai) = Loc(a0) + (i-1)*d
D: Loc(ai) = Loc(a0) + i
A: Loc(ai) = Loc(a0) + (i+1)*d
B: Loc(ai) = Loc(a0) + i*d
C: Loc(ai) = Loc(a0) + (i-1)*d
D: Loc(ai) = Loc(a0) + i
举一反三
- 假设线性表中元素为(a1,a2,…,ai-1,ai,ai+1,…,an),设第一个元素a1的内存地址为LOC(a1),而每个元素在计算机内占t个存储单元,则第i个元素ai的首地址为______。 A: LOC(ai)=(i-1)×t(其中1≤i≤n) B: LOC(ai)=LOC(a1)+i×t(其中1≤i≤n) C: LOC((ai)=LOC(a1)+(i-1)×t(其中1≤i≤n) D: LOC(ai)=LOC(a1)+(i+1)×t(其中1≤i≤n)
- 设m行n列二维数组按行优先顺序存储,则元素A[i][j]的地址是。[/i] A: LOC(A[0][0])+(i*m+j) B: LOC(A[0][0])+(i*n+j) C: LOC(A[0][0])+[(i-1)*n+j-1] D: LOC(A[0][0])+[(i-1)*m+j-1]
- 按行优先顺序存储下三角矩阵 A: LOC(aij)=LOC(a11)+i×(i+1)/2+j B: LOC(aij)=LOC(a11)+i×(i+1)/2+(j-1) C: LOC(aij)=LOC(a11)+i×(i-1)/2+j D: LOC(aij)=LOC(a11)+i×(i-1)/2+(j-1)
- 将10个数据按升序顺序排序,补全选择排序程序代码中语句。 main() {int a[10],n=10, i, j, loc,t; for(i=0;i[n;i++) scanf("%d",&a[i]); for(_____;i<n-1;i++) { ____________; for(j=i+1;j<10;j++) if(a[loc]]a[j]) loc=j; if(loc!=i) {t=a[i]; a[i]=a[loc]; a[loc]=t;} } for(i=0;i<10;i++) printf("%d ",a[i]); }[/i][/i][/i][/i] A: i=0 和 loc=i+1 B: i=0 和 loc=i C: i=1 和 loc=i D: i=1和 loc=i+1
- 按行优先顺序存储下三角矩阵的非零元素,则计算非零元素aij(1≤j≤n)的地址的公式为其中入为每个数组元素所占用的存储单元空间。 A: LOC(aij)=LOC(a11)+[i×(i+1)/2+j]*λ B: LOC(aij)=LOC(a11)+[i×(i+1)/2+(j-1)]*λ C: LOC(aij)=LOC(a11)+[i×(i-1)/2+j]*λ D: LOC(aij)=LOC(a11)+[i×(i+1)/2+(j-1))]*λ 下列题目基于下图所示的二叉树: