Difficulty: Easy
Correct Answer: Incorrect
Explanation:
Introduction / Context:
This item probes knowledge of recursion legality in standard C. Many learners believe main is special and cannot be called recursively. In reality, the C standard does not prohibit calling main as an ordinary function from within the program, although it is rarely useful and sometimes frowned upon stylistically.
Given Data / Assumptions:
Concept / Approach:
Any function in C may call any other function whose prototype is visible, including itself (recursion). The standard describes program execution beginning at main, but it does not ban calling main again as a regular function. Practical concerns (reentrancy, stack usage, and readability) make recursive calls to main unusual, yet they are permitted.
Step-by-Step Solution:
Identify claim: “all functions except main can be recursive.”Check the standard: no rule forbids calling main.Conclude the statement is incorrect because main can be called recursively as well.
Verification / Alternative check:
Write a trivial example where main calls main a limited number of times using a static counter to avoid infinite recursion; compilers accept this, and the program runs as expected.
Why Other Options Are Wrong:
Correct: contradicts the language rules.Depends on compiler extensions: not required; standard C already allows it.Not defined / Applies only to C++: both misstate the language behavior.
Common Pitfalls:
Confusing OS process entry with ordinary function calls; assuming “specialness” of main extends to semantics inside the program.
Final Answer:
Incorrect
Discussion & Comments