📜  算法测验| SP2竞赛1 |问题2

📅  最后修改于: 2021-07-02 14:00:50             🧑  作者: Mango

预测以下C程序的输出:

#include 
  
int main() 
{
    int i = 2, j = -2;
      
    if((printf("%d", j)) < (printf("%d", i)))
       printf("%d", i);
    else
       printf("%d", j);
      
    return 0;
}

(A) 2-22
(B) -22-2
(C) 222
(D)编译错误答案: (B)
说明:我们知道printf()返回其打印的字符数。因此,printf(“%d”,j)将返回-2和换行符,即3个字符,而printf(“%d”,i)将返回2和换行符,即2。因此,如果语句看起来像(3> 2),则是错误的。因此,在if条件下,执行else块,然后执行printf()语句。
这个问题的测验
如果您在以上帖子中发现任何错误,请在下面发表评论