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