有以下程序:
#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.1,2,3,4,
B.1,0,7,0,
C.1,4,5,9,
D.3,4,8,10,
参考答案:B
解析: 本题考查的是二维数组的定义、赋初值和对二维数组元素的引用。分析程序可知,函数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。