GESP 四级 · GESP 202409 C++ 四级 第 14 题

选择题 · 答案 A

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

题目

小杨用文件重定向实现在 log.txt 文件中输出日志,则下面横线上应填写( )。

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main() {
    ofstream log_file("log.txt");
    streambuf* original_cout = cout.rdbuf();
    cout.rdbuf(log_file.rdbuf());
    // 在此处填入代码
    cout.rdbuf(original_cout); // 恢复原始的标准输出缓冲区
    return 0;
}
答案:A

解题思维

答案A。代码补全要考虑参数传递方式。如果需要修改实参,需用指针(*)传递。排序算法要理解每步比较的含义。

常见错误

排序代码补全要理解每步比较的含义。选择排序找最小值时比较的是array[min]>array[j]。

详细解析(节选)

【考点】文件重定向|缓冲区操作|运算符重载

1. 🎯 考纲定位

GESP 四级"文件操作与输入输出"模块,命题人专门卡住一个认知盲区:学生以为 ofstream 写日志就等于所有输出都走重定向,完全没注意到前面那两行 rdbuf() 已经把 cout 的缓冲区接管了。这题就是看谁真看懂了 streambuf 的劫持机制。

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