将如下 C++ 代码中的 printf("\n") 更换为 printf("%c", '\n'),输出效果相同。
for (int i = 0; i < 100; i++) {
if (i % 5 == 0)
printf("\n");
printf("%2d ", i);
}答案A。逐行追踪代码:从main开始,记录每个变量的值变化。注意循环的起止条件和累加过程。
逐行模拟时建议画表格记录变量值的变化过程,特别是循环体中的变化。
本题考查字符常量与转义字符(GESP一级C++大纲第1.2节基础数据类型)和printf格式化输出(一级第2.3节输出函数)。命题人卡住的是"以为转义字符必须用字符串形式才能输出"的固有认知——90%考生看到'\n'会本能地想"这是字符串",却忘了它本质是字符常量。
看到 printf("%c", '\n') 立刻识别:%c 是输出单个字符,'\n' 是字符常量(不是字符串)。字符常量在内存占1字节,值为换行符的ASCII码(10)。两种写法都向终端发送换行指令,效果完全一致。
通法:任何单字符常量(包括转义字符)都可以用 %c 格式输出;字符串常量(如 "a")需配合 %s 或逐字符处理。