问题
单项选择题
有以下程序:
#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