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

admin2020-10-26  22

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

选项 A、3456787
B、876543
C、1098765
D、321678

答案D

解析 由于数组名本身是一个地址,所以在用数组名作为实参传递时,对应的形参相当于一个指针变量,在函数中可以通过指针变量来引用数组元素,从而改变元素的值。本题中函数fun的作用是将数组A的前n个元素进行逆转,fun(k,5)的结果是数组k的前五个元素1、2、3、4、5变为5、4、3、2、1。逆转后,输出数组中第3个至第8个元素。
转载请注明原文地址:https://jikaoti.com/ti/FzD0FFFM
0

最新回复(0)