# Output of C Programs | Set 14

Predict the output of below C programs.

Question 1

 `#include ` `int` `main() ` `{ ` `   ``int` `a; ` `   ``char` `*x; ` `   ``x = (``char` `*) &a; ` `   ``a = 512; ` `   ``x = 1; ` `   ``x = 2; ` `   ``printf``(``"%d\n"``,a); ` ` `  `   ``getchar``(); ` `   ``return` `0; ` `}  `

Answer: The output is dependent on endianness of a machine. Output is 513 in a little endian machine and 258 in a big endian machine.

Let integers are stored using 16 bits. In a little endian machine, when we do x = 1 and x = 2, the number a is changed to 00000001 00000010 which is representation of 513 in a little endian machine. The output would be same for 32 bit numbers also.

In a big endian machine, when we do x = 1 and x = 2, the number is changed to 00000001 00000010 which is representation of 258 in a big endian machine.

Question 2

 `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; ` `} `

Answer: The function prints first 15 Fibonacci Numbers.

Question 3
Explain functionality of following function.

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

Answer: If n is odd then returns n, else returns (n-1). So if n is 12 then we get and if n is 11 then we get 11.