C | Operadores | Pregunta 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) VERDADERO
(B) FALSO
(C) Error del compilador
(D) La salida depende del compilador

Respuesta: (B)
Explicación: Consideremos la condición dentro de la declaración if. Como hay dos operadores mayor que (>) en la expresión “c > b > a”, se considera la asociatividad de >. La asociatividad de > es de izquierda a derecha. Entonces, la expresión c > b > a se evalúa como ( (c > b) > a ). Y dado que (c > b) es el operador relacional, devolverá 1 si es Verdadero; de lo contrario, 0 es si es Falso. Así que aquí el valor devuelto es 1 y luego se compara con a. entonces ahora, la declaración se convierte en (1 > a), que es falsa, por lo que la respuesta, el retorno es 0, por lo tanto, se ejecuta otra parte.
Cuestionario de esta pregunta

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *