若有以下程序: main() { int k=2,i=2,m; m=(k+=i*=k);printf(’%d,%d\n",m,i); } 执行后的输出结果是( )。

admin2010-01-10  19

问题 若有以下程序:    main()    {  int k=2,i=2,m;    m=(k+=i*=k);printf(’%d,%d\n",m,i);    }    执行后的输出结果是(  )。

选项 A、8,6
B、8,3
C、6,4
D、7,4

答案4

解析 在复合赋值语句中,应该由右向左依次赋值,在表达式m=(k+=i*=k)中,右端由i*=k得i=2*2为4,k=k+i,即k值为6,m=k故m=6。所以4个选项中C正确。
转载请注明原文地址:https://jikaoti.com/ti/cqI0FFFM
0

最新回复(0)