问答题
下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N]),该函数的功能是:将数组左下半三角元素中的值全部置0。例如a数组中的值为: 1 9 7 2 3 8 4 5 6 则返回主程序后a数组中的值应为: 0 9 7 0 0 8 0 0 0 注意:请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>#include<stdlib.h>}}define N 5void fun(int a[][N]){}void main(){FILE*wf; int a[N][N],i,j; int b[N][N]=t 1,9,7,2,4,2,3,8,1,2,4,5,6,7,5,4,0,6,8,0,2,7,1,6,4}; system(“CLS”); prinff(“******The array******\n”); for(i=0;i<N;i++)/*产生一个随机的5*5矩阵*/ { for(j=0;j<N;j++) { a[i][j]=rand()%10; printf(“%4d”,a[i][j]); } prinff(“\n”); } fun(a); printf(“THE RESULT\n”); for(i=0;i<N;i++) { for(j=0;j<N;j++) printf(“%4d”,a[i][j]); prinff(“\n”); }/************/wf=fopen(“out.dat”,“w”);fun(b);for(i=0;i<N;i++){ for(j=0;j<N;j++) fprinff(wf,”%4d”,b[i][j]); fprintf(wf,“\n”); } felose(wf);/************/}
【正确答案】正确答案:void fun(int a[][N]) { int i,j; for(i=0;i<N;i++) for(j=0;j<=i;j++) a[i][j]=0;/*将数组左下半三角元素中的值全部置0,*/ }
【答案解析】解析:本题考查:for循环语句,使用嵌套循环语句遍历二维数组的各个元素;二维数组元素的引用。对于N×N二维数组,如何表示其左下半三角元素,可以通过以下语句实现: for(i=0;i