问答题 1.  请编写函数proc(),函数的功能是:求出二维数组周边元素之和,将其作为函数值返回。二维数组中的值在主函数中赋予。
    例如,若二维数组中的值为:
    0  1  2  3  4
    5  9  7  4  5
    4  3  8  3  6
    3  5  6  8  7
    则函数值为59。
    注意:部分源程序如下。
    请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
    试题程序:
    #include<stdlib.h>
    #include<conio.h>
    #include<stdio.h>
    #define M 4
    #define N 5
    int proc(int a[M][N])
    {
    }
    void main()
    {
    int aa[M][N]={{0,1,2,3,4},{5,9,7,4,5},
    {4,3,8,3,6},{3,5,6,8,7}};
    int i,j,y;
    system("CLS");
    printf("The original data is:\n");
    for(i=0;i<M;i++)
    {  for(j=0;j<N;j++)
    printf("%6d",aa[i][j]);
    printf("\n");
    }
    y=proc(aa);
    printf("\nThe sun:%d\n",y);
    printf("\n");
    }
【正确答案】int proc(int a[M][N])
   {
   int i,j,sum=0;
   for(i=0;i<M;i++)  //i是行下标变量
   for(j=0;j<N;j++)  //j是列下标变量
   if(i==0||i==M-1||j==0||j==N-1)  //if用来判断是否为周边元素,即行或列下标是否为0或N-1
   sum=sum+a[i][j];  //对周边元素求和
   return sum;  //最后把所得到的和返回给主函数
   }
【答案解析】 要求二维数组周边元素之和,首先应该判断数组中的每一个元素是否是周边元素。找出所有的周边元素后求和,返回给主函数。周边元素的下标的特点为行或列的下标为0或(N-1)。根据此特点,找出所有的周边元素,然后求和。