有以下程序
#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
解析:[评析] 在主函数中,定义并初始化了4行4列的二维数组x。对于二维数组元素的赋值,可以只对部分元素赋初值,未赋初值的元素自动取0。x数组元素赋初值后各元素为:
fun函数的作用是将二维数组a中主对角线元素赋给数组b,由于数组a与数组x共用同一存储单元,也即将数组x中主对角线元素赋给了数组b。又因为数组b与数组y共用同一存储单元,所以主函数中通过语句“printf("%d,"y[i]);”输出的即为数组b中的值,所以程序运行结果为“1,0,7,0,”。