GESP 四级 · GESP 202312 C++ 四级 第 19 题

判断题 · 答案 B

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

题目

在下面的 C++ 代码中,将对 1.txt 文件写入 hello。( )

ifstream filein;
ofstream fileout;
filein.open("1.txt");
fileout<<"hello";
答案:B

解题思维

这题考的是文件流‘先打开后使用’的铁律。拿到题别急着看输出语句,先扫一眼所有文件对象——filein 调用了 open,fileout 却光声明没打开。记住:未打开的 ofstream 是个哑巴,<< 再写也白搭,所以选 B。

常见错误

考生最容易掉进‘看到 ofstream 和 << 就以为写了’的陷阱,或者被代码里那句 filein.open 带偏,以为题目在问 filein 的操作。其实命题人就是专门挖这个坑:把打开和写入拆开,让你必须逐行核对状态。

详细解析(节选)

【考点】文件流对象|文件打开|输出流操作

GESP 四级‘文件操作’模块,核心就是考你懂不懂文件流必须显式打开才能用。命题人专门挖掉了‘不打开就写’这个低级错误,卡住那些只会背‘ifstream 读、ofstream 写’口诀的考生,让他们把文件流当成普通变量用。

【解题思维】

看到题先找所有文件变量:代码里有 ifstream filein 和 ofstream fileout 两个对象。接着核对每个对象的状态:filein 调用了 open(),但 fileout 从头到尾没碰过 open()。关键观察:C++ 里文件流必须显式打开才能使用,未打开的流所有读写操作都无效。推理链条:fileout 没打开 → fileout << "hello" 是空操作 → 文件内容不变 → 题目问“写入 hello”不成立。这一类题的通法:先找所有文件变量,再核对每个变量是否调用了 open(),没调用的直接判错。

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