#CSPJ26D20. 2026 年 8 月 CSP-J 初赛 20 日打卡 Day20|文件与基本读写

2026 年 8 月 CSP-J 初赛 20 日打卡 Day20|文件与基本读写

Day 20 文件与基本读写

建议用时:20~25 分钟。请先打开今日知识卡完成复习,再独立提交本页答案。

今日学习资料

复习目标:分清标准输入输出与文件输入输出,掌握文件流、打开模式、正确读取循环和重定向的基本作用。

今日练习

  1. 使用 ifstreamofstream 前,通常需要包含的头文件是( )。

{{ select(1) }}

  • <vector>
  • <fstream>
  • <cmath>
  • <queue>
  1. 下列主要用于从文件读取数据的对象定义是( )。

{{ select(2) }}

  • ofstream fin("data.txt");
  • ifstream fin("data.txt");
  • ostream fin("data.txt");
  • iostream fin("data.txt");
  1. 希望保留 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);
  1. 要从文件中读取数量未知的一批整数,下列循环最稳妥的是( )。

{{ select(4) }}

  • while (!fin.eof()) { fin >> x; use(x); }
  • while (fin >> x) { use(x); }
  • while (true) { use(x); }
  • for (;;) { fin.eof(); use(x); }
  1. 关于 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;
}
  1. while 循环的循环体一共执行( )次。

{{ select(6) }}

  • 2
  • 3
  • 4
  • 5
  1. 程序结束后,result.txt 的内容是( )。

{{ select(7) }}

  • 4 20
  • 4 10
  • 3 20
  • 20 4
  1. 该程序的结果写入 result.txt,不会由 cout 直接显示在标准输出中。(判断对错)

{{ select(8) }}

  • 正确
  • 错误