有以下程序:
#include
main()
{
nt i,j,k,a=5,b=6;
i=(a==b)?++a:--b;
j=a++;
k=b;
printf("%d,%d,%d\n",i,j,k);
}
程序的运行结果是( )。
条件表达式 i=(a==b)?++a:--b;中先执行 a==b, 值为假, 根据三元运算符语法规则, 执行--b, 此时 b为 5, 赋给 i, i=5。 j=a++, 将 a=5 先赋给 j, 再进行 a++, j=5, a=6, k=b=5, 故最后输出的是 5,5,5。 答案选择 B选项。