单选题 有下列程序:
#include<stdio.h>
#define N 4
int fun(int a[][N])
{int i,y=0;
for(i=0;i<N;i++)
y+=a[0][i]+a[N-1][i];
for(i=1;i<N-1;i++)
y+=a[i][0]+a[i][N-1];
return y;
}
main()
{int y,x[N][N]={{1,2,3,4},
{2,1,4,3},
{3,4,1,2},
{4,3,2,1}};
y=fun(x);
printf("%d",y);
}
程序执行后的输出结果是______。
【正确答案】 C
【答案解析】[解析] main()函数首先定义一个二维数组x,它是N行N列整型数组,然后调用fun函数,传入数组x;fun函数中第一个for循环将二维数组a的行下标为0(第一行)的所有元素与行下标为N-1(最后一行)的所有元素累加赋给y;第二个for循环将二维数组a的列下标为0(第一列)且行下标为1、2的元素与列下标为N-1(最后一列)且行下标为1、2的所有元素累加再次赋给y,最后将y返回。所以main()函数调用完fun()函数后,y的值等价于:1+2+3+4+4+3+2+l+2+3+3+2,结果为30。故本题答案为C选项。