选择题
有以下程序
#include<stdio.h>
#define N 4
void fun(int a[][N],int b[])
{int i;
for(i=0;i<N;i++)b[i]=a[i][i];
}
main()
{int x[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i;
fun(x,y);
for(i=0;i<N;i++)printf('%d,',y[i]);
printf('\n');
}
程序的运行结果是______。
【正确答案】
A
【答案解析】本题考查的是二维数组的定义、赋初值和对二维数组元素的引用。分析程序可知,函数fun()中的for循环作用,是将数组前4行中的对角线上的元素,即a[0][0]、a[1][1]、a[2][2]和a[3][3]分别赋到b[0]、b[1]、b[2]、b[3]中。在主函数中首先定义了一个4行4列的二维数组x,并初始化为{{1,2,3},{4},{5,6,7,8},{9,10}}。然后调用fun()函数,将x的对角线元素赋给一维数组y。接着通过循环输出数组y中的值。从数组x的初始化列表中我们可以看出,这4个值依次为1,0,7,0。