下面 C++ 代码执行后其输出是( )。
for (int i=0; i<10; i++)
printf("%d",i);答案B。追踪程序输出时注意整数除法截断和循环条件的边界值。变量初始值对结果影响很大。
整数除法截断容易忽略!if(n%i==0)中%是取余运算不是除法。
【考点】for循环|循环变量|输出格式
🎯 考纲定位 本题考查GESP二级"循环结构"模块的基础应用。命题人放这道题,卡住的是90%考生对循环起始值的模糊认知——很多人看到"for循环"就默认从1开始,这是训练欠佳的典型表现。
🧠 解题思维 三步锁定:1)循环变量初值i=0,这是C++语法规定,不是1;2)条件i<10,边界是9;3)printf("%d",i)每次输出一位数字,无分隔符。关键观察:0-9共10个数,必须全选。推理链条清晰:for从0递增至9,循环体执行10次,每次输出当前i值,拼接成连续数字串。
🪤 陷阱拆解 A选项缺0:命题人利用"数字序列默认从1开始"的思维定势;C/D选项把10当成数字输出:偷换循环终止条件,把i<10误读为i≤10;所有错误选项都只错一处,让你有"差不多"的侥幸感。如果你只背"for循环从1开始"这种伪结论,必然选A;连printf输出格式都不细看,就会选C或D。
🔄 反命题思维 把i=0改成i=1,答案变A;改成i≤10,答案变D。刷到类似题先问:循环初值真的是1吗?边界含不含?输出有空格吗?这三问能筛掉90%的坑。