下面 C++ 代码执行后的输出是 $30$,则横线处不能填入( )。
int a = 10, b = 20, c = 30;
cout << __________ << endl;
cout << endl;答案C。循环补全要分析循环变量的初始值、条件和更新方式,确保能产生目标输出。
代入法验证时注意选项之间的细微差别。循环条件中的<和<=可能导致完全不同的结果。
【考点】标准库函数|整数运算|类型转换
GESP二级C++模块中,标准库函数与整数运算常成对出现。命题人设置此题,精准卡住"函数返回值类型"这一薄弱点——90%考生能算出数值,却忽略sqrt返回double而cout直接输出整数时的类型冲突。
解题思维链:先求a+b+c=60,再逐项代入。max/max组合、min组合均返回整数30;整数除法60/2=30;唯独sqrt(60)≈7.746,是浮点数,cout直接输出会显示7.746而非30。关键观察是"sqrt的返回值类型与题目要求整数不符",这是所有函数求值题的通用判别法。
陷阱拆解:命题人用sqrt制造类型陷阱。A/B/D的运算结果都是整数,C却返回浮点。若考生只背"sqrt求平方根"而不理解类型,就会误选C;更阴险的是D选项的整数除法,看似可能产生小数,但C++中整数相除自动截断,60/2=30完全合法。绝对化表述"不能填入"要求必须严格匹配输出,任何类型不符都排除。
反命题思维:若题目改成"输出45",D选项仍正确,但C依然错误;若要求输出浮点数,C才可能入选。刷到"函数求值输出整数"类题,先问自己:"这个函数的返回值类型是什么?"——这才是命题人真正想考的本质。