fun(int x)
{
if(x > 0)
fun(x/2);
printf("%d", x);
}

above function is called as:
fun(10);

what will it print?



}

Answers were Sorted based on User's Feedback



fun(int x) { if(x > 0) fun(x/2); printf("%d", x); } above function is call..

Answer / guest

0 1 2 5 10

Is This Answer Correct ?    23 Yes 3 No

fun(int x) { if(x > 0) fun(x/2); printf("%d", x); } above function is call..

Answer / mahesh patil

Only answer 1
answer 4
answer 7 are correct others are wrong..
If you are confident on your answers please check once then
write a post.

Correct Answer: 0 1 2 5 10

This will print in reverse order because, This is a
recursive call, Every time a function is called the values
are stored in stack/stack is created. when x value reaches
0 then it will return. So stack is LIFO order, So it will
print the values in reverse order.

Is This Answer Correct ?    9 Yes 0 No

fun(int x) { if(x > 0) fun(x/2); printf("%d", x); } above function is call..

Answer / raj

0 1 2 5 10...Please don't post the wrong answer.

Is This Answer Correct ?    10 Yes 2 No

fun(int x) { if(x > 0) fun(x/2); printf("%d", x); } above function is call..

Answer / gg

0 1 2 5 10 is the answer. But can anybody explain why the
printing order 0 1 2 5 10. Why not 10 5 2 1 0 ? please...

Is it depends on stack allocation??

Is This Answer Correct ?    5 Yes 0 No

fun(int x) { if(x > 0) fun(x/2); printf("%d", x); } above function is call..

Answer / code

Guest & Raj is correct.......
Please don't post the wrong answer if u r not clear about this

Is This Answer Correct ?    4 Yes 1 No

fun(int x) { if(x > 0) fun(x/2); printf("%d", x); } above function is call..

Answer / sridhara bd

0 1 2 5 10

Is This Answer Correct ?    3 Yes 0 No

fun(int x) { if(x > 0) fun(x/2); printf("%d", x); } above function is call..

Answer / amit

All are incorrect. Please try it on a machine and see...
The answer is 012510. Please not that it is 0 1 2 5 10 but
without spaces.

Is This Answer Correct ?    1 Yes 0 No

fun(int x) { if(x > 0) fun(x/2); printf("%d", x); } above function is call..

Answer / hemavathiarun

Hi all,

since the code is calling the same function with different
values,it's not at all possible to move to printf statement
until x becomes < 0

so only when the compiler gets the value of x as 0 the loop
will be stopped.

Is This Answer Correct ?    1 Yes 0 No

fun(int x) { if(x > 0) fun(x/2); printf("%d", x); } above function is call..

Answer / sunil v r

5,2,1

Is This Answer Correct ?    1 Yes 0 No

fun(int x) { if(x > 0) fun(x/2); printf("%d", x); } above function is call..

Answer / ashwin kumar

hi Gg

answer is 0 1 2 5 10

this not stack prlm dear

here printf is after the function call dear so it is
printing 0 1 2 5 10

if u wnt to see 10 5 2 1 0 as output plz keep printf
function before function call that is

fun(int x)
{
if(x > 0)
printf("%d\n", x);
fun(x/2);

}

but output will be 10 5 2 1 only on 0 is printed

this above new code will give segmentation error in netbeans

thank u dear

Is This Answer Correct ?    0 Yes 0 No

Post New Answer

More C Interview Questions

What is #include stdio h?

0 Answers  


Which is better between malloc and calloc?

0 Answers  


How can I determine whether a machines byte order is big-endian or little-endian?

0 Answers  


What is malloc() function?

0 Answers  


Mention four important string handling functions in c languages .

0 Answers  






What is conio h in c?

0 Answers  


Give a fast way to multiply a number by 7

15 Answers   Accenture, Aricent, Microsoft,


i want to make a program in which we use input having four digits(4321) and get output its reciprocal(1234).

1 Answers  


What is the argument of a function in c?

0 Answers  


What do you mean by a local block?

0 Answers   InterGraph,


What are global variables and explain how do you declare them?

0 Answers  


Can I initialize unions?

0 Answers  


Categories