有以下程序: #include #define N 4 void fun(int a[][N],int b[]) { int i; for(i=0;i

admin2020-07-28  21

问题 有以下程序:
    #include
    #define N 4
    void fun(int a[][N],int b[])
    {    int i;
    for(i=0;i=a一a[N一1一i];
    }
    main()
    {  int x[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},Y[N],i;
    fun(x,y);
    for(i=0;i);prinff(“\n”);
    }
    程序运行后的输出结果是(    )。

选项 A、一3,一1,1,3,
B、一12,一3,0,0,
C、0,1,2,3,
D、一3,一3,一3,一3,

答案A

解析 分析程序结构,可知程序在main函数中初始化一个4×4的二维数组,然后调用fun()函数用二维数组x为一维数组y赋值,最后将数组y打印出来,所以重点是分析fun()函数中如何使用实参x给实参y赋值。在fun()函数中,每次使用a一a[N一1一i]为b的第i个元素赋值,由于for循环中i的取值分别为0、1、2、3,所以b的4个元素赋值分别为:a[0][0]一a[0][3],a[1][1]一a[1][2],a[2][2]一a[2][1],a[3][3]一a[3][0],对应的赋值为:1—4,6—7,11—10,16—13,b的4个元素值为:一3、一1、1、3。答案选A。(注:仔细观察a、a[N一1一i]可以发现,它们分别对应4×4矩阵的对角线元素和反对角线元素)
转载请注明原文地址:https://kaotiyun.com/show/ET3p777K
0

相关试题推荐
最新回复(0)