C | Operators | Question 11
#include <stdio.h> int main() { int a = 10, b = 20, c = 30; if (c > b > a) printf ( "TRUE" ); else printf ( "FALSE" ); return 0; } |
(A) TRUE
(B) FALSE
(C) Compiler Error
(D) Output is compiler dependent
Answer: (B)
Explanation: Let us consider the condition inside the if statement. Since there are two greater than (>) operators in the expression “c > b > a”, associativity of > is considered. Associativity of > is left to right. So, expression c > b > a is evaluated as ( (c > b) > a ). And since the (c > b) is being the relational operator it will return 1 if True otherwise 0 is if False. So here the value returned is 1 and then it is compared to the a. so now, the statement becomes, (1 > a), which is false, so the answer, return is 0, therefore, else part is executed.
Quiz of this Question
Please Login to comment...