选择题   有以下程序
    #include<stdio.h>
    void fun(int a,int b)
    {  int t;
      t=a;    a=b;  b=t;
    }
    main()
    {  int c[10]={1,2,3,4,5,6,7,8,9,0),i;
      for(i=0;i<10;i+=2)
          fun(c[i],c[i+1]);
      for(i=0;i<10;i++)
          printf('%d,',c[i]);
    printf('\n');
    }
程序运行后的输出结果是______。
 
【正确答案】 A
【答案解析】[考点] 函数、指针和数组 本题中c[i],c[i+1]的值是实参,a,b是形参。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只能由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。所以函数fun中对a,b值的交换不影响主函数中c数组的值,故输出的数组c的值为数组c初始化时的值。