# GATE | GATE CS 2019 | Question 35

Consider the following C program:

 `void` `convert(``int` `n) { ` `  ``if` `(n < 0) ` `    ``printf``(“ % d”, n); ` `  ``else` `{ ` `    ``convert(n / 2); ` `    ``printf``(“ % d”, n % 2); ` `  ``} ` `} `

Which one of the following will happen when the function convert is called with any positive integer n as argument?
(A) It will print the binary representation of n in the reverse order and terminate.
(B) It will print the binary representation of n but will not terminate
(C) It will not print anything and will not terminate.
(D) It will print the binary representation of n and terminate.

Explanation: Since n is the integer, so it 1/2 = 0.5 = 0 will return because of integer.

0/2 = 0 will cause infinite loop because there is no terminating condition for 0.

So, option (C) is correct.

Note:
It will print the binary representation of n and terminate, only if condition “if (n <= 0)".

 `#include ` ` `  `void` `convert(``int` `n) { ` ` `  `  ``if``(n <= 0) ` `  ``printf``(``"%d"``, n); ` `   `  `  ``else` `{ ` `  ``convert(n / 2); ` `  ``printf``(``"%d"``, n%2); ` `  ``}; ` `} ` ` `  `int` `main() { ` ` ``convert (16); ` `} `

My Personal Notes arrow_drop_up
Article Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.