单选题 有以下程序:
#include
void fun(int a,int b)
(int t;
f=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 B C D
A
[解析] 本题考查的是函数参数的传递。在C语言中,参数传递默认为传值,即改变函数中的形参不会影响调用函数时传递给函数的实参。所以,题目中的fun()函数,看起来好像作用是交换两个参数的值,其实它并不影响传递给它的任何实参,即调不调用它对程序一点也没有影响。所以主函数一开始初始化了c[10]为[1,2,3,4,5,6,7,8,9,0],经过第1个for循环后,什么变化都没有,再经过第2个for循环原样输出,故应该选择A)。
【正确答案】 A
【答案解析】[解析] 本题考查的是函数参数的传递。在C语言中,参数传递默认为传值,即改变函数中的形参不会影响调用函数时传递给函数的实参。所以,题目中的fun()函数,看起来好像作用是交换两个参数的值,其实它并不影响传递给它的任何实参,即调不调用它对程序一点也没有影响。所以主函数一开始初始化了c[10]为[1,2,3,4,5,6,7,8,9,0],经过第1个for循环后,什么变化都没有,再经过第2个for循环原样输出,故应该选择A)。