Difficulty: Easy
Correct Answer: Yes
Explanation:
Introduction / Context:
This question tests knowledge of a core C feature: adjacent string literals are concatenated by the compiler at translation time. It also checks whether such code compiles without special flags.
Given Data / Assumptions:
Concept / Approach:
In C, two or more string literals separated by whitespace are concatenated into a single string literal before code generation. Thus "India" "CURIOUSTAB\n" becomes "IndiaCURIOUSTAB\n". This is used widely for long format strings or macros.
Step-by-Step Solution:
The compiler concatenates the literals → one string: "IndiaCURIOUSTAB\n".printf prints it followed by a newline.The program compiles and runs correctly.
Verification / Alternative check:
Replace with printf("India"\n"CURIOUSTAB\n"); and observe identical behavior; check the generated object with strings utility to see the combined literal.
Why Other Options Are Wrong:
“No” contradicts the standard; optimization level is irrelevant. It works in both C and C++. There is no “garbage” because the final literal is well-defined.
Common Pitfalls:
Forgetting the newline; assuming run-time concatenation is required instead of the compile-time rule.
Final Answer:
Yes
Discussion & Comments