有以下程序 #include <stdio.h> void fun(int a[ ], int n) { int i,j=0,k=n-1, b[10]; for (i=0; i<n/2; i++) { b[i] =a[j];

admin2020-11-27  22

问题 有以下程序
#include <stdio.h>
void fun(int a[ ], int n)
{  int  i,j=0,k=n-1, b[10];
   for (i=0; i<n/2; i++)
   {   b =a[j];
       b[k]=a[j+1];
       j+=2; k--;
   }
   for (i=0; i<n; i++)
       a = b;
}
main()
{  int  c[10]={10,9,8,7,6,5,4,3,2,1},i;
   fun(c, 10);
   for (i=0;i<10; i++)
      printf("%d,", c);
   printf("\n");
}
程序的运行结果是

选项 A、10,8,6,4,2,1,3,5,7,9,
B、10,9,8,7,6,5,4,3,2,1,
C、1,2,3,4,5,6,7,8,9,10,
D、1,3,5,7,9,10,8,6,4,2,

答案A

解析 函数调用中,将数组名作为参数,将数组地址传给形参,所以函数中对数组a的操作将会改变c数组元素值。函数实现将数组中元素下标值为偶数的元素依次放在数组的前半段,将奇数下标值的元素放入数组后半段,且从最后一个位置向中间位置依次存放。执行函数后数组c中元素为{10,8,6,4,2,1,3,5,7,9},A选项正确。
转载请注明原文地址:https://jikaoti.com/ti/9uD0FFFM
0

最新回复(0)