设有一个二维数组A[1…4,1…6],若数组的起始地址为200,并且数据元素以行序为主序存放在数
●设有二维数组a[1..m,1..n](2<m<n),其第一个元素为a[1,1],最后一个元素为a[m,n],若数组元素以行为主序存放,每个元素占用k个存储单元(k>1),则元素a[2,2]的存储位置相对于数组空间首地址的偏移量为(35)。
A.(n+1)*k
B.n*k+l
C.(m+1)*k
D.m*k+l
A.1221
B.1227
C.1239
D.1257
设有一个m行n列的矩阵存储在二维数组A[1..M,1..n]中,将数组元素按行排列,对于A[i,j](1≤i≤m,l≤j≤n),排列在其前面的元素个数为()。
A.i*(n-1)+jB.(i-1)*n+J-1C.i*(m-l)+jD.(i-1)*m+J-1
设有定义:
int x[2][3];
则以下关于二维数组X的叙述错误的是
A.元素x[0]可看作是由3个整型元素组成的一维数组
B.数组x可以看作是由X[0]和X[1]两个元素组成的一维数组
C.可以用x[0]=0;的形式为数组所有元素赋初值0
D.x[O]和x[1]是数组名,分别代表一个地址常量
下列程序定义了N×N的二维数组,并在主函数中赋值。请编写一个函数fun(),函数的功能是:求数组周边元素的平方和并作为函数值返回给主函数。例如,若数组a中的值为
0 1 2 7 9
1 11 21 5 5
2 21 6 11 1
9 7 9 10 2
5 4 1 4 1
则返回主程序后s的值应为310。
[注意] 部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
[试题源程序]
include <stdio.h>
include <conio.h>
include <stdlib.h>
define N 5
int fun(int w[][N])
{
}
main()
{
int a[N][N]={0, 1, 2, 7, 9, 1, 11, 21, 5, 5, 2, 21, 6, 11, 1, 9, 7, 9, 10, 2, 5, 4, 1, 4, 1};
int i, j;
int s;
clrscr()
printf("*****The array*****\n");
for(i=0; i<N; i++)
{
for(j=0; j<N; j++)
{
printf("%4d", a[i][j]);
}
printf("\n');
}
s=fun(a);
printf("*****THE RESULT*****\n");
printf("The sum is: %d\n", s);
}
已知一个二维数组A如下所示。
(1)请按照行优先、列优先的方式进行顺序存储,给出顺序存储的序列
(2)若a11在内存中存储的地址为α,每个元素的存储空间大小为L,则按照行优先的方式和列优先的方式分别存储,其中a22的地址loc(a22)分别为多少
(3)对于数组,除了顺序存储外,还有没有其他存储方式?没有填无,若有,请说明。
A.1024
B.1440
C.1448
D.1432
设有二维数组A(1…12,1…10),其每个元素占4个字节,数据按列优先顺序存储,第一个元素的存储地址为100。则元素A(5,5)的存储地址为()。
A.176
B.276
C.208
D.308