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

admin2020-11-27  13

问题 有以下程序:
    #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;
      fun(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://kaotiyun.com/show/oi3p777K
0

最新回复(0)