有以下程序     #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];   

admin2009-08-25  25

问题 有以下程序     #include <stdio.h>     #define N 4    void fun(int a[][N],int b[])    { int i;       for(i=0;i<N;i++) b=a;    }    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);       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);”输出的即为数组b中的值,所以程序运行结果为“1,0,7,0,”。
转载请注明原文地址:https://kaotiyun.com/show/OnWp777K
0

随机试题
最新回复(0)