GESP 四级 · GESP 202606 C++ 四级 第 15 题

选择题 · 答案 A

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

题目

小杨正在读取“冒险日志”文件 quest.txt。若文件内容为 Level 10,执行以下程序后输出为( )。

ifstream fin("quest.txt");
string s;
int v;
fin >> s >> v;
cout << s.length() * v;
答案:A

解题思维

在纸上逐行模拟程序执行,重点追踪变量值变化和输出语句。按照题目输入代入计算。正确答案A。

常见错误

关键提醒:C++中的^是异或运算符,不是乘方!2^5=7而非32。这是最高频的错误。

详细解析(节选)

【考点】C++ string.length()|输入流提取|表达式求值

()

1. 🎯 考纲定位 GESP 四级 C++ 模块"基本数据类型与表达式",考查字符串长度方法与流式输入。命题人卡住的是"认为 cin 会把整个字符串读入"或"误把 v 当作字符串长度"的考生。

2. 🧠 解题思维 先读 s 为字符串 Level,v 为整数 10。s.length() 返回 6,6×10=60?等等,Level 是 5 个字母,长度 5,5×10=50。所以输出 50,选 A。

3. 🪤 陷阱拆解 错误选项 B 把 v 当作 s 的长度,C 误以为 s 是整型,D 把乘法当成取模。关键细节:cin 遇到空格自动结束,Level 后的空格被当作 v 的输入分隔符;v 一定被解析为整数 10,不会保留空格。

4. 🔄 反命题思维 若把 Level 改为 Level 100,s 仍为 Level,v 为 100,输出 500。若把文件内容改为 Level10(无空格),cin 会读整个 Level10 到 s,v 未赋值,输出 0。刷到类似题先问"流式输入遇到空格如何截断"。

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