Difficulty: Easy
Correct Answer: Correct
Explanation:
Introduction / Context:
The question examines how C function returns work. In C, a function executes and produces exactly one returned object via the return mechanism. Understanding this clarifies design patterns involving output parameters, structures, and tuples.
Given Data / Assumptions:
Concept / Approach:
A C function can return exactly one value in the language sense. However, that one value can be a compound object (e.g., a struct) containing multiple fields, or the function can write to memory via pointer parameters to communicate additional outputs. These do not change the rule that the return statement delivers a single value.
Step-by-Step Solution:
Recognize claim: multiple direct returns are not supported.Check mechanism: return expression yields one value (or no value for void).Alternative patterns: use struct return or pointers to “return” additional data.Conclusion: the statement is correct about the return mechanism itself.
Verification / Alternative check:
Try to write “return a, b;” to return two separate values — this does not return two values; the comma operator still yields a single result. Returning a struct like “struct pair { int x; int y; }; return (struct pair){x, y};” still returns one object.
Why Other Options Are Wrong:
Incorrect: would only be true in languages with multiple return values; C is not one.Other choices mention void, optimization, or pointers, which do not alter the single-return rule.
Common Pitfalls:
Confusing “one returned object” with “one piece of information.” A struct return can carry several fields but is still one value.
Final Answer:
Correct
Discussion & Comments