4. | What will be the output of the program? |
| A. | Print 5, 4, 3, 2, 1 |
| B. | Print 1, 2, 3, 4, 5 |
| C. | Print 5, 4, 3, 2, 1, 0 |
| D. | Infinite loop |
|
| Answer: Option D |
|
|
| Explanation: |
|
Step 1: int no=5; The variable no is declared as integer type and initialized to 5.
Step 2: reverse(no); becomes reverse(5); It calls the function reverse() with '5' as parameter.
The function reverse accept an integer number 5 and it returns '0'(zero) if(5 == 0) if the given number is '0'(zero) or else printf("%d,", no); it prints that number 5 and calls the function reverse(5);.
The function runs infinetely because the there is a post-decrement operator is used. It will not decrease the value of 'n' before calling the reverse() function. So, it calls reverse(5) infinitely.
Note: If we use pre-decrement operator like reverse(--n), then the output will be 5, 4, 3, 2, 1. Because before calling the function, it decrements the value of 'n'. |
|
|
|
|
Tutorial Link: |
Published by:Michael Daani
Comments are not available