GATE | GATE CS 2019 | Question 35

Consider the following C program:

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


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)".

filter_none

edit
close

play_arrow

link
brightness_4
code

#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);
}

chevron_right



Quiz of this Question



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.