设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3]存放在什么位置?脚注(10)表示用10进制表示。()A.678B.688C.692D.696
设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3]存放在什么位置?脚注(10)表示用10进制表示。()
A.678
B.688
C.692
D.696
B.688
C.692
D.696
参考解析
解析:A[2][2]是A[0][0]后面的第2n+2个元素,即2n+2=676-644,解得n=15。A[3][3]是A[2][2]后面的第n+1个元素,676+n+1=692,则A[3][3]存放位置是692。
相关考题:
设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置()(脚注(10)表示用10进制表示)。A.688B.678C.692D.696
[说明1]函数void convelt(chal *a,int n)是用递归方法将一个正整数n按逆序存放到一个字符数组a中,例如,n=123,在a中的存放为'3'、'2'、'1'。[C函数1]void convert(char *a,int n){ int i;if((i=n/10)!=0; convert( (1) ,i);*a= (2) ;}[说明2]函数int index(char *s,char *t)检查字符串s中是否包含字符串t,若包含,则返回t在s中的开始位置(下标值),否则返回-1。[C函数2]int index(char *s,char *t){ int i,j=0;k=0;for(i=0;s[i]!:'\0';i++)( for( (3) ;(t[k]!='\0')(s[j]!='\0')( (4) );j++,k++);if( (5) ) return(i);}return(-1);}
下面程序将二维数组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++) ( ); } }
二维数组a的每个元素是由6个字符组成的串,行下标i的范围从0~8,列下标j的范围从1~10。若a按行存放,元素a[8,5]的起始地址与当a按列存放时的元素( )的起始地址一致(每个字符占一个字节)。 A、a[8,5]B、a[3,10]C、a[5,8]D、a[0,9]
设有一个二维数A[m][n],以行序为主序存储。假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,则A[4][5]在()位置,(10)表明用10进数表示。 :A692(10)B626(10)C709(10)D724(10)
设C++二维数组a[6][10],每个数组元素占用4个存储单元,若按行优先顺序存放数组元素,a[3][5]的存储地址为1000,则a[0][0]的存储地址是()。 A.872B.860C.868D.864
设有数组A[m,n],数组的每个元素占3个存储单元,m的值为1~8,n的值为 1~10。数组从首地址W开始顺序存放,当以列为主序存放时,元素A[5,8]的存储首地址为(4)。A.W+222B.W+225C.W+141D.W+180
一个nxn的对称矩阵A,将其下三角部分按行存放在一个一维数组B中。 A[0][0]存放于B[O]中,那么第i行的对角元素A[i][i]存放于B中(50)处。A.(i+3)*i/2B.(i+1)*i/2C.(2n-i+1)*i/2D.(2n-i-1)*i/2
设有下三角矩阵A[0.. 10,0.. 10],按行优先顺序存放其非零元素,每个非零元素占两个字节,存放在基地址为100的数组中,则元素A[5,0]的存放地址为(25)。A.110B.120C.130D.140
设有一个8×8阶的对称矩阵A,为节省存储,将其上三角部分(包括对角线)按列序为主序存放在一堆数组B[1,……,36]中,那么元素a46 在一堆数组B中的存放位置为( ).A.10B.19C.12D.23
阅读下列程序说明和C程序,把应填入其中(n)处的字句,写在对应栏内。【程序说明】对角线下元素全为0的矩阵称为上三角矩阵,设对于一个n×n的上三角矩阵a,为节约存贮,只将它的上三角元素按行主序连续存放在数组b中。下面的函数trans在不引入工作数组的情况下,实现将a改为按列主序连续存放在数组b中。设n=5,b=(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)经调用trans函数后,b变为b=(1,2,6,3,7,10,4,8,11,13,5,9,12,14,15)函数tans对数组元素的存贮位置作调整。调整过程中存在若干个循环传送链:b(i1)→b(i2)→b(ij)→b(i1)1≤j<n例如,考察调整后的数组元素b(2)(值为6),与该元素相关的位置调整将形成下面的循环传送链:b(2)→b(3)→b(6)→……→b(12)→b(9)→b(5)→b(2)关键是确定循环传送链的下标i1,i2,…,ij,以及在考察调整后的元素b(k)(k;3,4,…)时能判定b(k)是已被传送过的某传送链上的元素。函数ctr(k,n)计算调整后的数组b的第k个元素b(k)在原数组b中的位置,该位置作为函数ctr(k,n)的返回值。函数ctr根据k确定它在矩阵中的行号i和列号j(注意行号和列号均从 0算起),然后按矩阵存放原则计算出它在b中的位置。【程序】trans(b,n)int n,b[]{int m,k,r,cc,rr;int w;m=(n+1)*n/2-4;k=2;while(m>0){r=ctr(k,n);if(r==k)m--;else{cc=k;rr=r;while (1){cc=rr,rr=ctr(cc,n);}if (2){cc=k;rr=r;w=b[k];while (3){b[cc]=b[rr];m--;cc=rr,rr=ctf(cc,n);}b[cc]-w; (4);}}k++;}}ctr( k,n )int k,n{int i,j;i=k;j=0;while (5)i - =++j ;return(i*n+j-i*(i+1)/2);}
●设有二维数组a[1..m,1..n](2mn),其第一个元素为a[1,1],最后一个元素为a[m,n],若数组元素以行为主序存放,每个元素占用k个存储单元(k1),则元素a[2,2]的存储位置相对于数组空间首地址的偏移量为(35)。A.(n+1)*kB.n*k+lC.(m+1)*kD.m*k+l
设有一个10阶的对称矩阵A[10][10],采用压缩存储方式按行将矩阵中下三角部分的元素存入一维数组B[]中,A[0][0]存入B[0]中,则A[8][5]在B[]中( )位置。A.32B.33C.41D.65
设有一个二维数组A[10][20]按行存放于一个连续的存储空间中,A[0][0]的存储地址是200,每个数组元素占1个存储字,则A[6][2]的存储字地址是(37)。A.284B.308C.322D.358
设数组a[0.n-1,0..m-1](n1,m1)中的元素以行为主序存放,每个元素占用4个存储单元,则数组元素a[i,j](0in,0jm)的存储位置相对于数组空间首地址的偏移量为 ( )。A.(j*m+i)*4B.(i*m+j)*4C.(j*n+i)*4D.(i*n+j)*4
设数组a[0..n-l,O..m-l] (n>l,m>l)中的元素以行为主序存放,每个元素占用1个 存储单元,则数组元素a[ij](0<i<n,0<j<m)的存储位置相对于数组空间首地址的偏移量为(35)。A.j*m+iB.i*m+jC.j*n+iD.i*n+i
阅读下列说明和C代码,回答问题1至问题3【说明】??? 某应用中需要对100000个整数元素进行排序,每个元素的取值在0~5之间。排序算法的基本思想是:对每一个元素x,确定小于等于x的元素个数(记为m),将x放在输出元素序列的第m个位置。对于元素值重复的情况,依次放入第m-l、m-2、…个位置。例如,如果元素值小于等于4的元素个数有10个,其中元素值等于4的元素个数有3个,则4应该在输出元素序列的第10个位置、第9个位置和第8个位置上。算法具体的步骤为:步骤1:统计每个元素值的个数。步骤2:统计小于等于每个元素值的个数。步骤3:将输入元素序列中的每个元素放入有序的输出元素序列。【C代码】下面是该排序算法的C语言实现。(1)常量和变量说明R: 常量,定义元素取值范围中的取值个数,如上述应用中R值应取6i:循环变量n:待排序元素个数a:输入数组,长度为nb:输出数组,长度为nc:辅助数组,长度为R,其中每个元素表示小于等于下标所对应的元素值的个数。(2)函数sort1??? void sort(int n,int a[],int b[]){2??? ???int c[R],i;3?? for (i=0;i4?? ??c[i]=0;5??? ???}6??? ???for(i=0;i7??? ?c[a[i]] = ??(2)? ;8??? ???}9 ??for(i=1;i10??? c[i]= ?(3)11??? ??}12 ?for(i=0;i13??? b[c[a[i]]-1]=? (4)?? ;14??? c[a[i]]=c[a[i]]-1;15??? ??}16??? }【问题1】? 根据说明和C代码,填充C代码中的空缺(1)~(4)。【问题2】根据C代码,函数的时间复杂度和空间复杂度分别为 (5) 和 (6) (用O符号表示)。【问题3】?? 根据以上C代码,分析该排序算法是否稳定。若稳定,请简要说明(不超过100字);若不稳定,请修改其中代码使其稳定(给出要修改的行号和修改后的代码)。
设二维数组为M[0‥8,0‥10],每个元素占2L个存储单元,以行序为主序存储,第一个元素的存储位置为P。存储位置为P+50L的元素为()。A、M[2,3]B、M[2,2]C、M[3,3]D、M[3,4]
单选题设二维数组为M[0‥8,0‥10],每个元素占2L个存储单元,以行序为主序存储,第一个元素的存储位置为P。存储位置为P+50L的元素为()。AM[2,3]BM[2,2]CM[3,3]DM[3,4]
单选题设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。()A688B678C692D696
单选题设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素舌一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。A688B678C692D696
单选题已知二维数组A[6][10],每个数组元素占4个存储单元,若按行优先顺序存放数组元素a[3][5]的存储地址是1000,则a[0][0]的存储地址是()。A872B860C868D864
单选题设有一个M*N的矩阵已经存放在一个M行N列的数组x中,且有以下程序段:sum=0;for(i=0;iA矩阵两条对角线元素之和B矩阵所有不靠边元素之和C矩阵所有元素之和D矩阵所有靠边元素之和