Open In App
Related Articles

GATE | GATE CS 2019 | Question 35

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report
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.

Answer: (C)

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)". [sourcecode language="C"] #include <stdio.h> void convert(int n) { if(n <= 0) printf("%d", n); else { convert(n / 2); printf("%d", n%2); }; } int main() { convert (16); } [/sourcecode]

Quiz of this Question

Last Updated : 05 Aug, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads