下列给定程序中,函数fun()的功能是:输出M行N列整数方阵,然后求两条对角线上的各元素的平方和,返回此和数。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include <conio.h> #include <stdio.h> #define M 5 int fun(int n,int xx[][M]) { int i,j,sum=O; printf("\nThe %d x %d matrix:\n",M,M); for(i=0;i<N;i++){for(j=0;j<M;j++) /*************found*************/ printf("%4d",xx[i j]); /*************found*************/printf(’\n’);} for(i=0;i<n;i++) sum+=xx[i][i]*xx[i][i]+xx[i][n-i-1] *xx[i][n-i-1]; return(sum); } main() { int aa[M][M]={{3,12,4,24,35}, {11,3, 3,7, 56},{61,27,58,49,24}, {17,28,7,36,85},{15,33,5,24,9}}; clrscr(); printf("\nThe result of all elements on 2 diagnals iS%d",fun(M,aa)); }
参考答案:(A)错误:printf("%Dd",xx[ij]); 正确:printf("%Dd",xx[i][j]):
解析:(2) 错误:printf(’\n’); 正确:printr("\n"); 错误1:此处考查的是对二维数组的引用方法。错误2:此处考查的是输出语句的语法,括号中应该用双引号,而不是单引号。