以下C代码的输出是什么?
#include
int main()
{
int i=2, j=2;
while (i+1 ? --i : j++)
printf("%d",i);
return 0;
}
(A) 1
(B) 2
(C) 3
(D) 4答案: (A)
说明:考虑while循环条件=> i + 1吗? –i:j ++
在第一次迭代中:
我+1 = 3(是)
因此三元运算符将返回–i即1,条件部分为1表示为true,因此条件为true时。
因此,printf语句将打印1
在第二次迭代中:
i + 1 = 2(是)
因此三元运算符将返回–i,即0,条件部分为0表示假,因此条件为假时。
因此,程序控制将退出while循环。这个问题的测验