GESP 二级 · GESP 202409 C++ 二级 第 19 题

判断题 · 答案 B

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

题目

C++ 语句 cout << rand() << ' ' << rand(); 的第二个输出值较大。( )

答案:B

解题思维

答案B。文件重定向后cout的输出被写入文件。程序本身无法确定输出目的地。

常见错误

文件重定向后程序行为不变,只是I/O目的地改变了。程序无法区分。

详细解析(节选)

【考点】随机数生成|rand/srand 机制|伪随机序列确定性

考纲定位:本题考查 GESP 二级 C++ 的随机数生成模块,命题人专门卡住考生对"伪随机数序列确定性"的理解盲点——很多孩子背熟 rand() 能出数,却误以为没 srand() 每次运行都不同。

解题思维:看到 cout << rand() 先想"rand 是伪随机数生成器,需要 srand 设种子"。关键观察题目未调用 srand,依据 C++ 标准,默认种子为 1,因此序列固定。推理链:rand 依赖种子→无 srand 则种子固定→序列确定→第二值大小固定但未必"较大"。通法:遇 rand 题先检 srand,无则默认种子固定,序列可预测。

陷阱拆解:A 选项"正确"利用直觉误判"随机数每次不同";"较大"表述模糊,无上下文无法判定大小,命题人故意用不确定词诱导错误;若只背结论"rand 是随机数"而不理解其伪随机依赖种子,必掉坑。

反命题思维:若改题加 srand(time(0)),第二值大小取决于时间种子,答案变"不确定";刷到类似题先问"命题人想考我什么"——考确定性、考范围还是考 srand 影响。

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