内容正文:
编写说明:广西《电子与信息大类考纲百套卷》,是依据广西《高等职业教育考试大纲与说明(电子与信息大类)》2026版编写。本套试卷共100份,由三个部分组成。第一部分是按考点要求编写的60份知识点训练卷;第二部分是针对三门课程编写的30份常考题训练卷;第三个部分是10份专业知识综合训练卷。
本试卷是广西《电子与信息大类考纲百套卷》的第40卷,是知识点训练卷,其编写要求如下:
(1)了解文件的定义及分类;
(2)了解文件的打开及关闭;
(3)了解文件的顺序读写;
(4)了解文件的随机读写。
广西《电子与信息类考纲百套卷》 第40卷
《程序设计基础》
7.文件-知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单项选择题(本大题共20小题,每小题3分,共60分)
1.以下关于C语言文件的描述,错误的是( )
A. 文件分为文本文件和二进制文件
B. 二进制文件以字节为单位存储数据
C. 文本文件可以直接用文本编辑器查看内容
D. 二进制文件比文本文件占用更少存储空间
2.以下属于文本文件的是( )
A. 存储学生成绩的.dat文件
B. 存储图片的.jpg文件
C. 存储程序的.exe文件
D. 存储日志的.txt文件
3.以下适合处理二进制文件的是( )
A. 使用fprintf写入数据
B. 使用fread读取数据
C. 使用fgets逐行读取
D. 使用fputc逐个字符写入
4.关于文件指针,正确的是( )
A. 文件指针指向文件内容
B. FILE *fp声明了一个文件指针
C. 文件指针可以直接赋值整数
D. 文件指针是文件本身的内存地址
5.以下文件打开模式中,能创建新文件的是( )
A. "r"
B. "w"
C. "a"
D. "r+"
6.若文件打开失败,fopen函数返回( )
A. 0
B. 1
C. NULL
D. EOF
7.以下代码的功能是( )
FILE *fp = fopen("data.txt", "r");
if (fp == NULL) {
printf("文件打开失败!");
exit(1);
}
A. 以只读方式打开文件,失败则报错
B. 以写入方式打开文件,失败则退出
C. 以追加方式打开文件,失败则继续
D. 以读写方式打开文件,失败则重试
8.以下关闭文件的操作正确的是( )
A. close(fp);
B. fclose();
C. fclose(fp);
D. fp = NULL;
9.关于"a"模式打开文件,错误的是( )
A. 若文件不存在则创建新文件
B. 写入数据追加到文件末尾
C. 可以读取文件内容
D. 不会覆盖原有内容
10.以下代码存在的风险是( )
FILE *fp = fopen("test.txt", "w");
fprintf(fp, "Hello");
A. 文件未关闭导致数据丢失
B. 文件打开模式错误
C. 未检查文件是否打开成功
D. 写入内容格式错误
11.以下函数可以读取单个字符的是( )
A. fscanf
B. fgetc
C. fgets
D. fread
13.以下代码的功能是( )
FILE *fp = fopen("data.txt", "r");
char str[100];
fgets(str, 100, fp);
A. 读取文件全部内容
B. 读取文件第一行内容
C. 读取前100个字符
D. 读取文件最后一行内容
13.以下代码的输出是( )
FILE *fp = fopen("num.txt", "w");
fprintf(fp, "%d", 123);
fclose(fp);
fp = fopen("num.txt", "r");
int n;
fscanf(fp, "%d", &n);
printf("%d", n);
A. 0
B. 1
C. 2
D. 123
14.以下函数可以写入格式化数据的是( )
A. fwrite
B. fprintf
C. fputs
D. fputc
15.若文件内容为ABCDE,以下代码的输出是( )
FILE *fp = fopen("file.txt", "r");
fseek(fp, 2, SEEK_SET);
char c = fgetc(fp);
printf("%c", c);
A. A
B. B
C. C
D. D
16.关于fread函数,错误的是( )
A. 用于读取二进制文件
B. 函数原型:fread(void *ptr, size_t size, size_t count, FILE *fp)
C. 可以读取结构体数据
D. 返回实际读取的字节数
17.以下函数可以获取当前文件指针位置的是( )
A. fseek
B. ftell
C. rewind
D. fgetpos
18.以下代码的作用是( )
fseek(fp, -10L, SEEK_END);
A. 将指针移到文件末尾
B. 将指针移到倒数第10字节处
C. 将指针向前移动10字节
D. 将指针移到第10行
19.以下代码执行后,文件指针位置会发生的变化是( )
fgetc(fp);
fseek(fp, 0, SEEK_SET);
A. 指针先向后移动1字节,再回到开头
B. 指针先不动,再回到开头
C. 指针移到末尾
D. 指针位置不确定
20.以下代码的作用是( )
FILE *fp = fopen("data.bin", "rb+");
fseek(fp, sizeof(int), SEEK_SET);
int num = 100;
fwrite(&num, sizeof(int), 1, fp);
A. 在文件开头写入整数100
B. 在文件第2个整数位置写入100
C. 追加写入整数100
D. 覆盖文件原有内容
二、判断题(本大题共10小题,每小题1分,共10分)
1.在 C 语言中,文件只能以文本形式存在,不能以二进制形式存在。( )
2.打开文件时,若使用 "w" 模式,若文件不存在则会创建新文件,若文件已存在则会清空原文件内容。( )
3.调用 fclose 函数关闭文件时,如果文件关闭失败,该函数会返回一个非零值。( )
4.使用 fgets 函数读取文件时,若读取到文件末尾,函数会返回 NULL。( )
5.文件的随机读写只能在二进制文件中进行,文本文件不支持随机读写。( )
6.以 "a" 模式打开文件时,可以对文件进行读取操作。( )
7.fwrite 函数用于向文件中写入数据,它的返回值是实际写入的元素个数。( )
8.在使用 fseek 函数进行文件随机定位时,SEEK_SET 表示从文件末尾开始偏移。( )
9.若文件打开失败,fopen 函数会返回 NULL。( )
10.使用 fread 函数读取文件时,如果读取的元素个数小于指定的个数,可能是因为到达了文件末尾。( )
三、填空题(本大题共5小题,每题3分,共15分)
1.在 C 语言中,使用 ____ 函数来打开文件,使用 ____ 函数来关闭文件。
2.文件的打开模式 "r+" 表示____。
3.fseek 函数的原型为 int fseek(FILE *stream, long offset, int whence);,其中 whence 可以取三个值,分别是 SEEK_SET、SEEK_CUR 和 SEEK_END,它们分别表示从____、____ 和____ 开始偏移。
4.fgets 函数的原型为 char *fgets(char *str, int n, FILE *stream);,它最多从文件中读取 ____ 个字符到 str 中,并且会在末尾自动添加 ____ 字符。
5.在使用 fread 和 fwrite 函数进行二进制文件读写时,它们的第一个参数是指向____ 的指针。
四、应用题(本大题共2小题,共15分)
1.补全代码,统计文件data.txt中字符'A'的出现次数(区分大小写)。
#include <stdio.h>
int main() {
FILE *fp = fopen("data.txt", ______); // 补全打开模式
if (fp == NULL) {
printf("文件打开失败!");
return 1;
}
int count = 0;
char c;
while (______) { // 补全读取条件
c = fgetc(fp);
if (c == 'A') count++;
}
printf("A出现的次数:%d", count);
______; // 补全关闭文件
return 0;
}
2.全代码,将源文件source.txt的内容逐字节复制到目标文件target.txt。
#include <stdio.h>
int main() {
FILE *src = fopen("source.txt", ______);
FILE *dst = fopen("target.txt", "wb");
if (src == NULL || dst == NULL) {
printf("文件打开失败!");
return 1;
}
int ch;
while ((ch = ______) != EOF) {
fputc(ch, dst);
}
fclose(src);
fclose(dst);
return 0;
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$
编写说明:广西《电子与信息大类考纲百套卷》,是依据广西《高等职业教育考试大纲与说明(电子与信息大类)》2026版编写。本套试卷共100份,由三个部分组成。第一部分是按考点要求编写的60份知识点训练卷;第二部分是针对三门课程编写的30份常考题训练卷;第三个部分是10份专业知识综合训练卷。
本试卷是广西《电子与信息大类考纲百套卷》的第40卷,是知识点训练卷,其编写要求如下:
(1)了解文件的定义及分类;
(2)了解文件的打开及关闭;
(3)了解文件的顺序读写;
(4)了解文件的随机读写。
广西《电子与信息类考纲百套卷》 第40卷
《程序设计基础》
7.文件-知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单项选择题(本大题共20小题,每小题3分,共60分)
1.以下关于C语言文件的描述,错误的是( )
A. 文件分为文本文件和二进制文件
B. 二进制文件以字节为单位存储数据
C. 文本文件可以直接用文本编辑器查看内容
D. 二进制文件比文本文件占用更少存储空间
答案:D
2.以下属于文本文件的是( )
A. 存储学生成绩的.dat文件
B. 存储图片的.jpg文件
C. 存储程序的.exe文件
D. 存储日志的.txt文件
答案:D
3.以下适合处理二进制文件的是( )
A. 使用fprintf写入数据
B. 使用fread读取数据
C. 使用fgets逐行读取
D. 使用fputc逐个字符写入
答案:B
4.关于文件指针,正确的是( )
A. 文件指针指向文件内容
B. FILE *fp声明了一个文件指针
C. 文件指针可以直接赋值整数
D. 文件指针是文件本身的内存地址
答案:B
5.以下文件打开模式中,能创建新文件的是( )
A. "r"
B. "w"
C. "a"
D. "r+"
答案:B
6.若文件打开失败,fopen函数返回( )
A. 0
B. 1
C. NULL
D. EOF
答案:C
7.以下代码的功能是( )
FILE *fp = fopen("data.txt", "r");
if (fp == NULL) {
printf("文件打开失败!");
exit(1);
}
A. 以只读方式打开文件,失败则报错
B. 以写入方式打开文件,失败则退出
C. 以追加方式打开文件,失败则继续
D. 以读写方式打开文件,失败则重试
答案:A
8.以下关闭文件的操作正确的是( )
A. close(fp);
B. fclose();
C. fclose(fp);
D. fp = NULL;
答案:C
9.关于"a"模式打开文件,错误的是( )
A. 若文件不存在则创建新文件
B. 写入数据追加到文件末尾
C. 可以读取文件内容
D. 不会覆盖原有内容
答案:C
10.以下代码存在的风险是( )
FILE *fp = fopen("test.txt", "w");
fprintf(fp, "Hello");
A. 文件未关闭导致数据丢失
B. 文件打开模式错误
C. 未检查文件是否打开成功
D. 写入内容格式错误
答案:A
11.以下函数可以读取单个字符的是( )
A. fscanf
B. fgetc
C. fgets
D. fread
答案:B
13.以下代码的功能是( )
FILE *fp = fopen("data.txt", "r");
char str[100];
fgets(str, 100, fp);
A. 读取文件全部内容
B. 读取文件第一行内容
C. 读取前100个字符
D. 读取文件最后一行内容
答案:B
13.以下代码的输出是( )
FILE *fp = fopen("num.txt", "w");
fprintf(fp, "%d", 123);
fclose(fp);
fp = fopen("num.txt", "r");
int n;
fscanf(fp, "%d", &n);
printf("%d", n);
A. 0
B. 1
C. 2
D. 123
答案:D
14.以下函数可以写入格式化数据的是( )
A. fwrite
B. fprintf
C. fputs
D. fputc
答案:B
15.若文件内容为ABCDE,以下代码的输出是( )
FILE *fp = fopen("file.txt", "r");
fseek(fp, 2, SEEK_SET);
char c = fgetc(fp);
printf("%c", c);
A. A
B. B
C. C
D. D
答案:C
16.关于fread函数,错误的是( )
A. 用于读取二进制文件
B. 函数原型:fread(void *ptr, size_t size, size_t count, FILE *fp)
C. 可以读取结构体数据
D. 返回实际读取的字节数
答案:D
17.以下函数可以获取当前文件指针位置的是( )
A. fseek
B. ftell
C. rewind
D. fgetpos
答案:B
18.以下代码的作用是( )
fseek(fp, -10L, SEEK_END);
A. 将指针移到文件末尾
B. 将指针移到倒数第10字节处
C. 将指针向前移动10字节
D. 将指针移到第10行
答案:B
19.以下代码执行后,文件指针位置会发生的变化是( )
fgetc(fp);
fseek(fp, 0, SEEK_SET);
A. 指针先向后移动1字节,再回到开头
B. 指针先不动,再回到开头
C. 指针移到末尾
D. 指针位置不确定
答案:A
20.以下代码的作用是( )
FILE *fp = fopen("data.bin", "rb+");
fseek(fp, sizeof(int), SEEK_SET);
int num = 100;
fwrite(&num, sizeof(int), 1, fp);
A. 在文件开头写入整数100
B. 在文件第2个整数位置写入100
C. 追加写入整数100
D. 覆盖文件原有内容
答案:B
二、判断题(本大题共10小题,每小题1分,共10分)
1.在 C 语言中,文件只能以文本形式存在,不能以二进制形式存在。( )
答案:×
2.打开文件时,若使用 "w" 模式,若文件不存在则会创建新文件,若文件已存在则会清空原文件内容。( )
答案:√
3.调用 fclose 函数关闭文件时,如果文件关闭失败,该函数会返回一个非零值。( )
答案:√
4.使用 fgets 函数读取文件时,若读取到文件末尾,函数会返回 NULL。( )
答案:√
5.文件的随机读写只能在二进制文件中进行,文本文件不支持随机读写。( )
答案:×
6.以 "a" 模式打开文件时,可以对文件进行读取操作。( )
答案:×
7.fwrite 函数用于向文件中写入数据,它的返回值是实际写入的元素个数。( )
答案:√
8.在使用 fseek 函数进行文件随机定位时,SEEK_SET 表示从文件末尾开始偏移。( )
答案:×
9.若文件打开失败,fopen 函数会返回 NULL。( )
答案:√
10.使用 fread 函数读取文件时,如果读取的元素个数小于指定的个数,可能是因为到达了文件末尾。( )
答案:√
三、填空题(本大题共5小题,每题3分,共15分)
1.在 C 语言中,使用 ____ 函数来打开文件,使用 ____ 函数来关闭文件。
答案:fopen;fclose
2.文件的打开模式 "r+" 表示____。
答案:以读写方式打开一个已存在的文本文件
3.fseek 函数的原型为 int fseek(FILE *stream, long offset, int whence);,其中 whence 可以取三个值,分别是 SEEK_SET、SEEK_CUR 和 SEEK_END,它们分别表示从____、____ 和____ 开始偏移。
答案:文件开头;当前位置;文件末尾
4.fgets 函数的原型为 char *fgets(char *str, int n, FILE *stream);,它最多从文件中读取 ____ 个字符到 str 中,并且会在末尾自动添加 ____ 字符。
答案:n - 1;'\0'
5.在使用 fread 和 fwrite 函数进行二进制文件读写时,它们的第一个参数是指向____ 的指针。
答案:要读写的数据
四、应用题(本大题共2小题,共15分)
1.补全代码,统计文件data.txt中字符'A'的出现次数(区分大小写)。
#include <stdio.h>
int main() {
FILE *fp = fopen("data.txt", ______); // 补全打开模式
if (fp == NULL) {
printf("文件打开失败!");
return 1;
}
int count = 0;
char c;
while (______) { // 补全读取条件
c = fgetc(fp);
if (c == 'A') count++;
}
printf("A出现的次数:%d", count);
______; // 补全关闭文件
return 0;
}
答案:
第一空:"r"
第二空:(c = fgetc(fp)) != EOF 或 !feof(fp)
第三空:fclose(fp)
2.全代码,将源文件source.txt的内容逐字节复制到目标文件target.txt。
#include <stdio.h>
int main() {
FILE *src = fopen("source.txt", ______);
FILE *dst = fopen("target.txt", "wb");
if (src == NULL || dst == NULL) {
printf("文件打开失败!");
return 1;
}
int ch;
while ((ch = ______) != EOF) {
fputc(ch, dst);
}
fclose(src);
fclose(dst);
return 0;
}
答案:
第一空:"rb"
第二空:fgetc(src)
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$