Salida de programas en C | conjunto 14

Prediga la salida de los siguientes programas en C. 
Pregunta 1 
 

C

#include<stdio.h>
int main()
{
   int a;
   char *x;
   x = (char *) &a;
   a = 512;
   x[0] = 1;
   x[1] = 2;
   printf("%d\n",a);
 
   getchar();
   return 0;
}

Respuesta: La salida depende del endianness de una máquina. La salida es 513 en una máquina little endian y 258 en una máquina big endian.
Deje que los enteros se almacenen usando 16 bits. En una máquina little endian, cuando hacemos x[0] = 1 y x[1] = 2, el número a se cambia a 00000001 00000010 que es la representación de 513 en una máquina little endian. La salida también sería la misma para números de 32 bits.
En una máquina big endian, cuando hacemos x[0] = 1 y x[1] = 2, el número se cambia a 00000001 00000010 que es la representación de 258 en una máquina big endian.
Pregunta 2
 

C

int main()
{
  int f = 0, g = 1;
  int i;
  for(i = 0; i < 15; i++)
  {
    printf("%d \n", f);
    f = f + g;
    g = f - g;
  }
  getchar();
  return 0;
}

Respuesta: La función imprime los primeros 15 números de Fibonacci .
Pregunta 3 
Explique la funcionalidad de la siguiente función. 
 

C

int func(int i)
{
  if(i%2) return (i++);
  else return func(func(i-1));
}

Respuesta: Si n es impar, devuelve n; de lo contrario, devuelve (n-1). Entonces, si n es 12, obtenemos 11 y si n es 11, obtenemos 11. 
Escriba comentarios si encuentra que alguna de las respuestas/explicaciones es incorrecta, o si desea compartir más información sobre los temas discutidos anteriormente.
 

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 *