C Programming - Functions - Discussion

21. 

What will be the output of the program?

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int i=0;
    i++;
    if(i<=5)
    {
        printf("IndiaBIX");
        exit(1);
        main();
    }
    return 0;
}

[A]. Prints "IndiaBIX" 5 times
[B]. Function main() doesn't calls itself
[C]. Infinite loop
[D]. Prints "IndiaBIx"

Answer: Option D

Explanation:

Step 1: int i=0; The variable i is declared as in integer type and initialized to '0'(zero).

Step 2: i++; Here variable i is increemented by 1. Hence i becomes '1'(one).

Step 3: if(i<=5) becomes if(1 <=5). Hence the if condition is satisfied and it enter into if block statements.

Step 4: printf("IndiaBIX"); It prints "IndiaBIX".

Step 5: exit(1); This exit statement terminates the program execution.

Hence the output is "IndiaBIx".


Sneha said: (Sep 2, 2011)  
What happens when it encounters main again in the program? It doesnt print back the same printf statement?

Ivo said: (Jun 3, 2012)  
"IndiaBIX" is not the same as "IndiaBIx".
@Sneha: It would call main recursively until the stack overflows

Leszek said: (Jun 9, 2012)  
Isn't B also correct? Maybe main() COULD call itself, but in this case it doesn't because it never gets to that point.

Prerna said: (Aug 9, 2012)  
What would be the answer if it would have been exit(0) instead of exit(1).

Rohit Sharma said: (Sep 2, 2013)  
Yes main() can call it self but in this program there is exit(1) just before we called the main() function in the main program so it will terminate the program execution before calling main() function again :).

Rohit said: (Oct 4, 2013)  
Elaborate exit(0) and exit(1)?

Prattj said: (Dec 5, 2013)  
exit(0)=>causes the program to exit with a successful termination.

exit(1)=>causes the program to exit with a system-specific meaning.

On many systems, exit(1) signals some sort of failure, however there is no guarantee.

Satakshi said: (Dec 4, 2014)  
What will happen if in this prog there will exit(0) instead of exist(1)?

Dimple said: (Mar 16, 2015)  
exit(0) is a successful termination of a program.

Tamilmaran C said: (Jun 24, 2015)  
It acceptable answer D:

#include<stdio.h>
#include<stdlib.h>

int main()
{
int i=0;
i++;
if(i<=5)
{
printf("IndiaBIX");
exit(1);
main();
}
return 0;
}

Somya said: (Dec 14, 2016)  
Can anybody Explain "exit"?

Post your comments here:

Name *:

Email   : (optional)

» Your comments will be displayed only after manual approval.