问答题 给定程序中,函数fun的功能是:将N×N矩阵主对角线元素中的值与反向对角线对应位置上元素中的值进行交换。例如,若N=3,有下列矩阵:
1 2 3
4 5 6
7 8 9
交换后为:
3 2 1
4 5 6
9 8 7
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在 下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#define N 4
/**********found**********/
void fun(int ______, int n)
{ int i,s;
/**********found**********/
for (______; i++)
{ s=t[i] [i];
t[i] [i]=t[i] [n-i-1];
/**********found**********/
t[i] [n-1-i]=______;
}
}
main()
{ int t[] [N]={21,12,13,24,25,16,47,38,29,11,32,54,42, 21,33,10},i,j;
printf ("/nThe original array:/n");
for(i=0; i<N; i++)
{ for(j=0; j<N; j++) printf("%d",t[i] [j]);
printf ("/n");
}
fun (t,N);
printf("/nThe result is:/n");
for(i=0; i<N; i++)
{ for(j=0; j<N;j++) printf("%d",t[i] [j]);
printf ("/n");
}
}
【正确答案】
【答案解析】(1)t[][N] (2)i=0;i<n (3)s
答案考生文件夹 [解析] 函数fun的功能是将N×N矩阵主对角线元素中的值与反向对角线对应位置上元素中的值进行交换,在N×N的矩阵t中,i标识行下标,对角线元素为t[i][i],反向对角元素为t[i][N-i-1]。
第一空:在主函数中fun函数的调用形式是“fun(t,N);”,t是二维数组名,故fun函数的第一个参数为指针,因此第一空处应为“t[][N]”。
第二空:fun函数的第二个参数n指明了矩阵的大小为n,对角线元素与反向对角线元素有n个,故循环有n次,因此变量i从0开始,到n-1结束,因此第一空处应为“i=0;i<n”。
第三空:循环体内部是对角线元素与反向对角线元素的交换,“s=t[i][i];”s保存了对角元素t[i][i],因此第三处应填“s”。
[考点] 二维数组、for循环结构。