选择题

有以下程序:
#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);
​​​​​​}
程序的运行结果是(     )。

【正确答案】 B
【答案解析】

条件表达式 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选项。