一个二维数组A[10][20]按行存放于一个连续的存储空间中,A[0]C0]的存储地址是200,每个数组元素占1个存储字,则AC6][2]的地址为()。
A、226
B、322
C、341
D、342
A、226
B、322
C、341
D、342
维数组C,它有n行n+1列。试设计一个方案,将两个矩阵A和B中的下三角区域元素存放于同一个C中。要求将A的下三角区域中的元素存放于C的下三角区域中,B的下三角区域中的元素转置后存放于C的上三角区域中、并给出计算A的矩阵元素a,和B的矩阵元素b在C中的存放位置下标的公式.
A.B+(i*M+j)*d
B.B+(i*N+j)*d
C.B+(j*M+i)*d
D.B+(j*N+i)*d
二维数组M的成员是6个字符(每个字符占一个存储单元)组成的串,行下标i的范围从0到8,列下标j的范围从1到10,则存放M至少需要_________个字节;M的第8列和第5行共占______个字节;若M按行优先方式存储,元素M[8][5]的起始地址与当M按列优先方式存储时的_______元素的起始地址一致。
数组
1.实验目的
①掌握一维数组和二维数组的定义、赋值和输入输出的方法。
②掌握字符数组和字符串函数的使用。
③掌握与数组有关的算法(特别是排序算法)。
2.实验内容
编程序并上机调试运行。
①以下程序运行后的输出结果是______。
main()
{int a[4][4]={{1-2,-3,-4}, {0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};
int i,j,s=0;
for(i=0;i<4;i++)
{,for(j=0;j<4;j++)
{if(a[i][j]<0)continue;
if(a[i][j]==0)break;
s+=a[i][j];
}
}
printf("%d\n",s):
}
②以下程序运行后的输出结果是______。
main()
{int i,n[]={0,0,0,0,0);
for(i=1;i<=4;i++)
{n[i]=n[i-1]*2+1;
printf("%d",n[i]);
}
}
③以下程序运行后的输出结果是______。
main()
{int i,j,a[][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)a [j][i]=0;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf("%d",a[i][j]);
printf("\n");
}
}
④求出任何n×5的数组中所有数据的平均值。
⑤若有说明:int a[2][3]={{1,2,3},{4,5,6}};现要将a的行和列的元素互换后存入另一个二维数组b中。
⑥通过循环按行顺序为一个5*5的二维数组a赋1到25的自然数,然后输出该数组的左下半角。
⑦试编程打印出5*5的螺旋方阵。
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
⑧某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
(1)存放对称矩阵A上三角部分或下三角部分的--维数组B有多少元素?
(2)若在一维数组B中从0号位置开始存放,则如图4-1所示的对称矩阵中的任一元素aij;在只存上三角部分的情形下(图4-2(a))应存于一维数组的什么下标位置?给出计算公式。
(3)若在一维数组B中从0号位置开始存放,则如图4-1所示的对称矩阵中的任一元素aij在只存下三角部分的情形下(图4-2(b))应存子一维数组的什么下标位置?给出计算公式。
A.1208
B.1212
C.1368
D.1364
下列程序将二维数组a的行和列元素互换后存放到另一个二维数组b中。请填空。 main() { int a[2][3]={{1,2,3},{4,5}},b[3][2],i,j; for(i=0;i<2;i++) { for(j=0;j<3;j++) ______, } }
二维数组M的成员是6个字符(每个字符占一个存储单元)组成的串,行下标i的范围从0到8,列下标i的范围从0到9,则存放M至少需要多少个字节?M的第8列和第5行共占多少个字节?若M按行优先方式存储,元素M[8][6]的起始地址与当M按列优先方式存储时哪个元素的起始地址一致?
A.M[2][4]
B.M[3][4]
C.M[3][5]
D.M[4][4]
A.A[7,8]
B.A[6,5]
C.A[0,7]
D.A[3,10]