有如下程序: 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

admin2010-01-10  27

问题 有如下程序:    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,%d\n",a,b,C);    }    执行后输出结果是(  )。   

选项 A、3,4,5
B、5,3,4
C、5,4,3
D、4,3,5

答案8

解析 C语言规定,在函数调用时变量作为参数传递是传值的,在函数体中对形参变量的修改不能影响到对应的实参变量。本题定义了一个函数f(),用变量作为形参,在main()函数中调用了3次f()函数,由于变量作为参数进行传递,所以对应的实参的值并没有被交换。故输出的a、b、c依旧是原来的值4、3、5。D选项为所选。
转载请注明原文地址:https://kaotiyun.com/show/vUWp777K
0

最新回复(0)