下面程序的运行结果是( )
#include <iostream>
using namespace std;
int main() {
int x = 1;
for (int i = 0; i = 0; i <= 5) {
x++;
}
cout << x << endl;
return 0;
}看到 for 循环先扫三要素:初始化、条件、步进。这题一眼就看出条件里混了赋值运算符,编译必挂。处理这类题的标准动作是:先确认代码能否编译,再谈运行结果;编译报错直接锁定答案,无需模拟执行。
B 项把 i=0 误读成 i==0,以为循环跑 6 次得 7;C 项更离谱,把条件当成 i<=5 且 i=0 同时成立,推导出 16;D 项是惯性思维陷阱,看到循环就默认能跑。其实命题人就是利用考生对运算符优先级和语义的模糊,把赋值塞进条件位置,让粗心的人直接当比较用。
本题落在 GESP 三级大纲"循环结构"模块,核心考点是语法正确性。命题人卡住的是绝大多数考生"只读不写"的习惯——拿到循环题就下意识模拟执行,却忘了先确认代码能否编译。这是三级到四级的典型断层:三级考"能跑对吗",四级开始考"能编译吗"。
看到 for 循环先扫三要素:初始化、条件、步进。这题一眼就看出条件里混了赋值运算符,编译必挂。处理这类题的标准动作是:先确认代码能否编译,再谈运行结果;编译报错直接锁定答案,无需模拟执行。