GESP 一级 · GESP 202606 C++ 一级 第 21 题

判断题 · 答案 A

← 整套速查表 GESP 一级 全部真题

题目

将如下 C++ 代码中的 printf("\n") 更换为 printf("%c", '\n'),输出效果相同。

for (int i = 0; i < 100; i++) {
    if (i % 5 == 0)
        printf("\n");
    printf("%2d ", i);
}
答案:A

解题思维

答案A。逐行追踪代码:从main开始,记录每个变量的值变化。注意循环的起止条件和累加过程。

常见错误

逐行模拟时建议画表格记录变量值的变化过程,特别是循环体中的变化。

详细解析(节选)

1. 🎯 考纲定位(考点定位)

本题考查字符常量与转义字符(GESP一级C++大纲第1.2节基础数据类型)和printf格式化输出(一级第2.3节输出函数)。命题人卡住的是"以为转义字符必须用字符串形式才能输出"的固有认知——90%考生看到'\n'会本能地想"这是字符串",却忘了它本质是字符常量。

2. 🧠 解题思维(拆解与通法)

看到 printf("%c", '\n') 立刻识别:%c 是输出单个字符,'\n' 是字符常量(不是字符串)。字符常量在内存占1字节,值为换行符的ASCII码(10)。两种写法都向终端发送换行指令,效果完全一致。

通法:任何单字符常量(包括转义字符)都可以用 %c 格式输出;字符串常量(如 "a")需配合 %s 或逐字符处理。

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断