📜  C |运营商|问题11

📅  最后修改于: 2021-05-29 12:40:47             🧑  作者: Mango

#include  
int main() 
{ 
  int a = 10, b = 20, c = 30; 
  if (c > b > a) 
    printf("TRUE"); 
  else
    printf("FALSE"); 
  return 0; 
}

(A)是
(B)虚假
(C)编译器错误
(D)输出取决于编译器答案: (B)
说明:让我们考虑if语句中的条件。由于在表达式“ c> b> a”中有两个大于(>)运算符,因此考虑>的关联性。 >的关联性从左到右。因此,表达式c> b> a被评估为((c> b)> a)。由于(c> b)是关系运算符,因此如果为True,则将返回1,否则为0。因此,这里返回的值为1,然后将其与a进行比较。所以现在,该语句变为(1> a),这是错误的,因此答案return为0,因此,将执行part。
这个问题的测验