设有二维数组int M[10][20],每个元素(整数)占2个存储单元,数组的起始地址为2000,元素M[5][10]的
设有二维数组int M[10][20],每个元素(整数)占2个存储单元,数组的起始地址为2000,元素M[5][10]的存储位置为_____,M[8][19]的存储位置为______。
设有二维数组int M[10][20],每个元素(整数)占2个存储单元,数组的起始地址为2000,元素M[5][10]的存储位置为_____,M[8][19]的存储位置为______。
编写函数arraycopy(int(*a)[N],int*b,int m)实现把二维数组的M行N列数据复制到一维数组b中。
A.int a[10][10] = new int[][]
B.int a[][] = new int[10][10]
C.int [][]a = new int[10][10]
D.int []a[] = new int[10][10]
以下程序是输出二维数组的第二行到第4行,请填空。 void writearray(int(*p)[____________],int m,int n) {int i,j; for(i=m;i<=n;i++) {for(j=0;j<___________;j++) printf(“%d”,*(*(____________)+___________)); printf(“\n”); ) ) main() {int a[6][5],i,j; for(i=0;i<6;i++) for(j=0;j<5;j++) scanf(“%d”,a[i]+j); writearray(_________,2,4); )
A.int[]a[]=newint[10][10]
B.inta[10][10]=newint[][]
C.inta[][]=newint[10][10]
D.int[][]a=newint[10][10]
A.inta[][]=newint[][];
B.inta[10][10]=newint[][];
C.inta[][]=newint[10][10];
D.int[][]a=newint[10][10];
E.int[]a[]=newint[10][10];
A.int [][]a = new int[10][];
B. int a[10][10] = new int[][];
C. int []a[] = new int[10][10];
D. int a[][] = new int[10][10]
以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值,请填空。
#defineN 3
#defineM 4
void LineMax(int x[N][M])
{
int i,j,p;
for(i=0;i<N;i++)
{
p=0;
for(j=1;j<M;j++)
if(x[i][p]<x[i][j])______;
printf("The max value in line%d is%d\n",i,x[i][p]);
}
}
main()
{
int x[N][M]={1,5,7,4,2,6,4,3,8,2,3,1};
______;
}
数组
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的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
以下程序中,fun函数的功能是求3行4列二维数组每行元素的最大值。请填空。 void fun(int,int,int (*)[4], int *); main() { int a[3][4]={{12,41,36,28},{19,33,15,27),{3,27,19,1}},b[3],i; fun(3,4,a,B) ; for(i=0;i<3;i++)printf("%4d",b[i]); printf("\n"); } void fun(int m,int n,int ar[][4],int *br) { int i,j,x; for(i=0;i<m;i++) { x=ar[i][0]; for(i=0;j<n;j++) if(x<ar[i][j]) x=ar[i][j]; ______=X; } }