下列给定程序中,函数fun()的功能是:输出M行N列整数方阵,然后求两条对角线上的各元素之和,返回此和数。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构. 试题程序:

admin2010-09-14  23

问题 下列给定程序中,函数fun()的功能是:输出M行N列整数方阵,然后求两条对角线上的各元素之和,返回此和数。
   请改正程序中的错误,使它能得出正确的结果。
   注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.
   试题程序:
    #include  <conio.h>
   #include  <stdio.h>
   #define  M  5
   /**********************************/
   iht fun(int n, int xx[ ][ ])
   {  int i, j,  sum=0;
      printf("\nThe %d x %d matrix:\n",M,M);
      for(i=0;i<M;i++)
        { for (j=0; j<M; j++)
   /**********************************/
          printf("%4f",xx[j]);
          printf("\n");
       }
   for(i=0;i<n;i++)
      sum+=xx+xx[n-i-1];
   return(sum);
}
main ()
{  int aa[M][M]={{1,2,3,4,5},{4,3,2,1,0},
     {6,7,8,9,0},{9,8,7,6,5},{3,4,5,6,7}};
clrscr();
printf("\nThe sum of all elements on 2
        diagnals is %d",fun(M, aa));
}

选项

答案(1)错误: int fun(iht n,intxx[][]) 正确: int ltm(iht mint r.x[][M]) (2)错误: printf("%4f,f’,xx[i]fj]); 正确: printf("%4d",xx[i][j]);

解析 该题错误比较隐蔽,一般的C语言上机考试很少涉及printf顺数中的错误,在这里,我们只要明白“d”和“f”的区别就OK了。格式字符d表示:以带符号的十进制形式输出整数(正整数不输出符号);格式字符f表示;以小数形式输出单、双精度,隐含输出6位小数。
转载请注明原文地址:https://jikaoti.com/ti/6IkiFFFM
0

最新回复(0)