问答题
给定程序中,函数fun的功能是:有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。例如,若N=3,有下列矩阵: 1 2 3 计算结果为 1 0 0 4 5 6 6 5 0 7 8 9 10 14 9 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构11 #include<stdio.h>2 #define N 43 /**********found**********/4 void fun(int(*t)__1__)5 { int i,j;6 for(i=1 ; i<N;i++)7 ( for(j=0;j<i;j++)8 {9 /**********found**********/10 __2___=t[i][j]+t[j][i];11 /**********found**********/12 __3__=0;13 }14 }15 }16 main()17 {int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j;18 printf(''\nThe originalarray:\n'');19 for(i=0;i<N;i++)20 {for(j=0;j<N;j++) printf(''%2d'',t[i][j]);21 printf(''\n'');22 }23 fun(t);24 printf(''\nThe result is:\n'');25 for(i=0; i<N;i++)26 { for(j=0 ; j<N;j++)printf(''%2d'',t[i][j]);27 printf(''\n'');28 }29 }
【正确答案】正确答案:(1)[N] (2)t[i][j] (3) t[j][i]
【答案解析】解析:第一空:在主函数中fun函数的调用形式是“fun(t);”,t是数组名,故fun函数的参数是指针,因此第一空处应为“[N]”。第二空:“__2__=t[i][j]+t[j][i];”是将对称元素相加存放在左下三角元素中,左下三角元素可表示为t[i][j],故第二空处应为“t[i][j]”。第三空:“__3__=0;”是将右上三角元素置0,右上三角元素可表示为t[j][i],故第三空为“t[i][i]”。