已有声明“int x,a=3,b=2;”,则执行赋值语句“x=a>b++?a++:b++;”后,变量x、a、b的值分别为___(26)___。

A. 3 4 3 B. 3 3 4 C. 3 3 3 D. 4 3 4
求详细解释,谢谢

该赋值语句可以写成这样
if(a>b++)//a大于b++ 执行完成后b=3;
{
x = a++;//a++后a的值为4 赋值语句自右向左x为3
}
else
{
x = b++;//不执行
}
因此x,a,b为3,4,3.
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-10-12
a++先赋值后自加,所以执行完语句后,自然是等于4,b自然是3
a>b,所以x = a++,所以x = 3 答案是 A本回答被提问者采纳
第2个回答  2011-10-12
选A 3 4 3
你自己要是对符号优先级不懂的话可以自己写一个程序运行结果出来不就知道选那个了嘛
c语言程序:
main()
{
int x,a=3,b=2;
x=a>b++?a++:b++;
printf("x=%d\na=%d\nb=%d",x,a,b);
}
运行之后就能看到结果了
相似回答