问答题 1.  下列程序定义了M×M的二维数组,并在主函数中赋值。请编写函数proc(),函数的功能是:求出数组周边元素的平均值并将其作为函数值返回给主函数中的s。
    例如,若a数组中的值为:
    a=0  1  2  3  4
      5  9  7  4  5
      4  3  8  3  6
      3  5  6  8  7
      2  1  0  9  8
    则返回主程序后,s的值为3.750000。
    注意:部分源程序如下。
    请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
    试题程序:
    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    #define M 5
    double proc(int w[][M])
    {
    }
    void main()
    {
    int a[M][M]={0,1,2,3,4,5,9,7,4,5,4,3,8,3,6,3,5,6,8,7,2,1,0,9,8};
    int i,j;
    double s;
    system("CLS");
    printf("****The array****\n");
    for(i=0; i<M; i++)
    {for(j=0; j<M; j++)
    {printf("%4d",a[i][j]);}
    printf("\n");
    }
    s=proc(a);
    printf("****THE RESULT****\n");
    printf("The sum is:%lf\n",s);
    }
【正确答案】double proc(int w[][N])
   {
   int i,j,k=0;
   double av=0.0;
   for(i=0; i<M; i++)
   for(j=0; j<M; j++)  //周边元素的特点是行或
   列下标为0,或为N-1
   if(i==0||i==M-1||j==0||j==M-1)  //if
   语句判断是否为周边元素
   {
   av=av+w[i][j]; //将其和放到变量av中
   k++;
   }
   return av/k; //平均值返回给主函数中的s
   }
【答案解析】 要求出数组周边元素的平均值,首先要求出周边元素的和,周边元素的特点为行或列下标为0,或为(N-1),根据其特点求出所有周边元素的和,再求出其平均值,并返回给主函数。