有以下程序: fun(int x,int y){return(x+y);} main() { int a=1,b=2,c=2,sum; sum=fun((a++,b++,a+b),c++); print

admin2013-02-23  25

问题 有以下程序:
    fun(int x,int y){return(x+y);}
    main()
    {  int a=1,b=2,c=2,sum;
       sum=fun((a++,b++,a+b),c++);
       printf("%d\n",sum);
    }
执行后的结果是(   )。

选项 A、6
B、7
C、8
D、9

答案C

解析 表达式a++,b++,a+b是一个逗号表达式,在逗号表达式中,从左向右进行各个表达式的运算,最后一个表达式的值就是逗号表达式的结果。所以表达式a++,b++,a+b的值为5,所以fun()函数中的形参x的值为5;表达式c++先把变量c的值传给形参y,然后c的值加1,所以Y的值为3,因此函数fun((a++,b++,a+b),c++)的返回值为8。
转载请注明原文地址:https://jikaoti.com/ti/Vgn0FFFM
0

最新回复(0)