#CSPJ26D20. 2026 年 8 月 CSP-J 初赛 20 日打卡 Day20|文件与基本读写
2026 年 8 月 CSP-J 初赛 20 日打卡 Day20|文件与基本读写
Day 20 文件与基本读写
建议用时:20~25 分钟。请先打开今日知识卡完成复习,再独立提交本页答案。
今日学习资料
复习目标:分清标准输入输出与文件输入输出,掌握文件流、打开模式、正确读取循环和重定向的基本作用。
今日练习
- 使用
ifstream和ofstream前,通常需要包含的头文件是( )。
{{ select(1) }}
<vector><fstream><cmath><queue>
- 下列主要用于从文件读取数据的对象定义是( )。
{{ select(2) }}
ofstream fin("data.txt");ifstream fin("data.txt");ostream fin("data.txt");iostream fin("data.txt");
- 希望保留
log.txt原有内容,并把新内容追加到文件末尾,合适的写法是( )。
{{ select(3) }}
ofstream out("log.txt", ios::app);ifstream out("log.txt", ios::out);ofstream out("log.txt", ios::in);ofstream out("log.txt", ios::trunc);
- 要从文件中读取数量未知的一批整数,下列循环最稳妥的是( )。
{{ select(4) }}
while (!fin.eof()) { fin >> x; use(x); }while (fin >> x) { use(x); }while (true) { use(x); }for (;;) { fin.eof(); use(x); }
- 关于
getline(fin, s),下列说法正确的是( )。
{{ select(5) }}
- 只能读取一个不含空格的单词
- 读取一整行,行内空格可以进入字符串,行末换行符不进入字符串
- 只能读取整数
- 每次都会把整个文件一次读完
主题程序阅读
假设 data.txt 的内容为:
3 5
2 10
阅读下面的程序:
#include <fstream>
using namespace std;
int main() {
ifstream fin("data.txt");
ofstream fout("result.txt");
int x, sum = 0, cnt = 0;
while (fin >> x) {
sum += x;
cnt++;
}
fout << cnt << ' ' << sum << '\n';
return 0;
}
while循环的循环体一共执行( )次。
{{ select(6) }}
- 2
- 3
- 4
- 5
- 程序结束后,
result.txt的内容是( )。
{{ select(7) }}
4 204 103 2020 4
- 该程序的结果写入
result.txt,不会由cout直接显示在标准输出中。(判断对错)
{{ select(8) }}
- 正确
- 错误