执行下面的 C++ 代码,在键盘上先后输入 100 和 200,输出是( )。
int first, second;
cout << "请输入第1个正整数:";
cin >> first;
cout << "请输入第2个正整数:";
cin >> second;
cout << (first / second * second) << endl;答案D。逐行追踪代码:从main开始,记录每个变量的值变化。注意循环的起止条件和累加过程。
逐行模拟时建议画表格记录变量值的变化过程,特别是循环体中的变化。
【考点】整数除法|运算优先级|变量类型
1. 🎯 考纲定位 GESP一级"程序基础"模块,整数运算专题。命题人专盯"整数除法不保留余数"这一认知盲区,90%考生误以为除法会保留小数或自动取整。
2. 🧠 解题思维
(first / second) * second,C++ 中 / 和 * 同级,从左到右计算3. 🪤 陷阱拆解
second * (first / second),交换了运算顺序a / b * b 恒等于 a,忽略整数除法会丢失信息/ 在 C++ 中默认是整数除法,不保留小数部分4. 🔄 反命题思维 若把 second 换成 100,表达式变成 100 / 100 * 100 = 100,答案就变了——命题人就是利用这个"等量代换"来测试你是否理解整数除法的截断特性。刷到这类题先问自己:"这里会不会因为整数除法丢信息?"