选择题   有以下程序
    #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。