有以下程序     #include<stdio.h>     void fun(int a, int b)    {int t;       t=a; a=b;    }         int c[10]={1,2,3,4,5,6,7,8,9,0},i

admin2013-02-23  11

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

选项 A、1,2,3,4,5,6.7,8,9,0,
B、2,1.4.3.6,5.8,7,0,9,
C、0,9,8,7,6,5,4,3,2,1,
D、0,1,2,3,4,5,6,7,8,9,

答案A

解析 本题中c,c[i+1]的值是实参,a,b是形参。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。所以函数run中对a,b值的交换不影响主函数中c数组的值,故输出的c数组的值为c数组初始化时的值。
转载请注明原文地址:https://jikaoti.com/ti/rTn0FFFM
0

最新回复(0)