A-A+
有以下程序 void f(int x int y) { int t; if(x<y){ t=
问题详情
有以下程序 void f(int x,int y) { int t; if(x<y){ t=x; x=y; y=t; } main() { int a=4,b=3,c=5; f(a,b); f(a,c); f(b,c); printf("%d,%d,%dn",a,b,c); } 执行后输出的结果是
A.3,4,5
B.5,3,4
C.5,4,3
D.4,3,5请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:D
解析:本题考核的知识点是函数的定义、调用方式以及参数的传递。C语言规定,在函数调用时变量作为参数传递是传值的,在函数体中对形参变量的修改不能影响到对应的实参变量。本题定义了一个函数f(),用变量作为形参,在main()函数中调用了3次f()函数,由于变量作为参数进行传递,所以对应的实参的值并没有被交换。所以输出的a、b、c依旧是原来的值4,3、5。所以,D选项为所选。