Salida de programas en C | Serie 1

Prediga la salida de los siguientes programas. 

Pregunta 1
 

c

#include<stdio.h>
int main()
{
   int n;
   for(n = 7; n!=0; n--)
     printf("n = %d", n--);
   getchar();
   return 0;
}

Salida: El programa anterior va en bucle infinito porque n nunca es cero cuando se comprueba la condición de bucle (n != 0).
Pregunta 2
 

c

#include<stdio.h>
int main()
{
   printf("%x", -1<<1);
   getchar();
   return 0;
}

La salida depende del compilador. Para el compilador de 32 bits sería fffffffe y para el de 16 bits sería fffe.
Pregunta 3
 

c

# include <stdio.h>
# define scanf  "%s Geeks For Geeks "
main()
{
   printf(scanf, scanf);
   getchar();
   return 0;
}

Salida: %s Geeks For Geeks Geeks For Geeks 
Explicación: Después de la fase de preprocesamiento de la compilación, se convertirá en la declaración printf. 
 

   printf("%s Geeks For Geeks ",  "%s Geeks For Geeks ");

Ahora puede adivinar fácilmente por qué la salida es %s Geeks For Geeks Geeks For Geeks.
Pregunta 4
 

c

#include <stdlib.h>
#include <stdio.h>
enum {false, true};
int main()
{
   int i = 1;
   do
   {
      printf("%d\n", i);
      i++;
      if (i < 15)
        continue;
   } while (false);
 
   getchar();
   return 0;
}

Salida: 1 
Explicación: El ciclo do while verifica la condición después de cada iteración. Entonces, después de continuar, el control se transfiere a la declaración while (falso). Dado que la condición es falsa, ‘i’ se imprime solo una vez.
Ahora intente debajo del programa.
 

c

#include <stdlib.h>
#include <stdio.h>
enum {false, true};
int main()
{
   int i = 1;
   do
   {
     printf("%d\n", i);
     i++;
     if (i < 15)
       break;
     } while (true);
 
     getchar();
     return 0;
}

Pregunta 5
 

c

char *getString()
{
   char *str = "Nice test for strings";
   return str;
}
 
int main()
{
   printf("%s", getString());
   getchar();
   return 0;
}

Salida: «Buena prueba para strings» 
El programa anterior funciona porque las constantes de string se almacenan en la Sección de datos (no en la Sección de pila). Entonces, cuando getString devuelve *str no se pierde.
 

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 *