EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
C/C++/C# HTML Java JavaScript Linux PHP Python Swift
 RecursosExplicación de las soluciones a los Test de Autoevaluación > Pregunta 12.1
Solución:

En el código no existen errores que impidan la ejecución del programa. Así, en la primera alternativa simple, el resutaldo de evaluar su condición es falso y, por tanto, no se ejecutará la instrucción:

printf( "1" );

pero, la ejecución de las dos instrucciones siguientes:

printf( "2" );
printf( "3" );

no dependen de dicha condición, por tanto, en pantalla se mostrará:

23

A continuación, la segunda condición del programa se evaluará a verdadero y, en consecuencia, se ejecutará la instrucción:

printf( "4" );

y las dos siguientes,

printf( "5" );
printf( "6" );

que, igualemente, su ejecución no está condicionada.

De forma que, por pantalla se mostrará:

23456

→ B es VERDADERA

Reflexión:

Fíjese que, los bloques de instrucciones de las alternativas simples del programa sólo contienen una instrucción en cada caso, por tanto, ha sido posible omitir los caracteres abrir llave ({) y cerrar llave (}). No obstante, para que sea más difícil caer en la confusión, el código sería más legible si lo escribiésemos, por ejemplo, de la siguiente forma:

#include <stdio.h>
int main()
{
   int h = 7;

   if ( h != h )
      printf( "1" );

   printf( "2" );
   printf( "3" );

   if ( h > 6 )
      printf( "4" );

   printf( "5" );
   printf( "6" );

   return 0;
}


También es una buena idea escribir siempre 
los caracteres abrir llave ({) y cerrar llave (}), independientemente de que el bloque de instrucciones contenga una o más instrucciones. De esta forma se pueden evitar muchas confusiones:

#include <stdio.h>
int main()
{
   int h = 7;

   if ( h != h )
   {
      printf( "1" );
   }

   printf( "2" );
   printf( "3" );

   if ( h > 6 )
   {
      printf( "4" );
   }

   printf( "5" );
   printf( "6" );

   return 0;
}

 Recursos Explicación de las soluciones a los Test de Autoevaluación > Pregunta siguiente