Blog en Blogger Perfil en Slideshare Bookmarks en Delicious Perfil el Facebook Perfil en Twitter Fotos en Flickr Página en MySpace Canal en YouTube Perfil en Google Perfil en Google
Búsqueda personalizada
EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
 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