内容正文:
编写说明:2027版安徽省普通高校对口招生考试电子与信息大类(计算机类)专业《考纲百套卷》,依据《安徽省普通高校对口招生专业理论和技能测试考试纲要(2025年版)》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共99份试卷,其中知识训练卷75份、专题训练卷17份、课程综合卷7份。
本试卷是第73卷,为知识训练卷,按《计算机编程基础—Python语言》中“文件操作”范围和要求编写。具体内容为:1.文件的打开和关闭(B)。2.文件的读写(C)。3.数据的格式化(D)。
安徽省对口招生考试
电子与信息大类(计算机类)《考纲百套卷》
第73卷 计算机编程基础—Python语言——文件操作
(考试时间:45分钟 满分:100分)
一、填空题(共10题,每题2分,共20分)
1.Python中打开文件使用__________函数,关闭文件使用__________方法。
2.文件打开模式__________表示只读,__________表示只写(覆盖),__________表示追加。
3.读取文件全部内容用__________,读取一行用__________。
4.使用__________语句打开文件可自动关闭,无需显式调用close()。
5.文件写入字符串应使用__________方法。
6.读取文件所有行到列表用__________;遍历文件每一行可写for line in__________。
7.open()返回的文件对象本身是一个__________器,可逐行迭代。
8.file.seek(0)将文件指针移到__________;file.tell()返回__________。
9.编码参数指定文件文本编码,Python3默认编码为__________。
10.写入列表数据到文件时每个元素需手动添加__________符,write方法不会自动添加。
二、单项选择题(共15题,每题2分,共30分)
11.open("a.txt","r")中"r"表示( )
A.只读
B.读写
C.只写
D.追加
12.读取文件内容正确写法( )
A.f=open("a.txt");t=f.read()
B.t=read("a.txt")
C.t=file("a.txt")
D.t=open.read("a.txt")
13.with open("a.txt") as f:的作用( )
A.异常处理
B.自动关闭文件
C.创建文件夹
D.只读打开
14.追加模式打开文件用( )
A.r
B.r+
C.w
D.a
15.f.write("Hello")返回值( )
A.写入字符数
B.None
C."Hello"
D.True
16.for line in f:遍历后文件指针位置( )
A.开头
B.末尾
C.中间
D.报错
17.大文件读取最节省内存方式( )
A.read()
B.readlines()
C.for line in f
D.read().split()
18.open("a.txt","r")文件不存在时( )
A.自动创建
B.报FileNotFoundError
C.返回空
D.静默跳过
19.f.readlines()返回类型( )
A.字符串
B.列表
C.元组
D.字典
20.f.write("中") 用GBK编码写,文件大小约( )
A.1字节
B.2字节
C.3字节
D.取决于系统
21.关闭文件使用( )
A.f.close()
B.f.end()
C.f.exit()
D.f.stop()
22.写入后立即读取同一文件( )
A.自动读取
B.需seek(0)
C.报错
D.返回空
23.检查文件是否存在的正确方式( )
A.f=open();检查
B.os.path.exists()
C.try open
D.file.check()
24."rb"模式打开文件读取返回( )
A.字符串
B.字节(bytes)
C.整数
D.无区别
25.f1=open("a.txt");f2=open("a.txt");f1和f2是( )
A.同一对象
B.不同对象
C.共享数据
D.报错
三、程序分析题(共3题,每题6分,共18分)
26.with______("data.txt",______,encoding="utf-8") as f:
content=f.read()
print(content)
读取文件全部内容打印,请在横线处填入适当内容。
27.f=open("log.txt","w")
f.write("第一行")
f.write("第二行")
f.close()
程序想写入两行数据但有2处错误,请找出并改正。
28.with open("test.txt","w",encoding="utf-8") as f:
f.write("A
B
C
")
with open("test.txt","r",encoding="utf-8") as f:
lines=f.readlines()
print(len(lines))
print(lines[1].strip())
f.seek(0)
print(f.read(1))
四、程序设计题(3题,29/30各6分/31各8分)
29.编写程序:读取文件data.txt中所有整数(每行一个,用
分隔),计算总和与平均值(保留一位小数)。样例文件:1 2 3 4 5→总和15 平均3.0
30.编写程序:将1到100中所有7的倍数写入文件seven.txt,每行一个数,文件末尾输出总个数。
31.统计文本文件word.txt中:总行数、总字符数(不含换行)、出现"Python"的次数。文件不存在则提示"文件不存在"。
五、综合应用题(共1题,每题12分,共12分)
32.编写成绩处理程序:读取scores.txt(每行"姓名 成绩"),筛选出不及格(<60)和优秀(>=90)学生,分别写入fail.txt和excellent.txt,并输出统计信息。样例文件:张三 85 李四 55 王五 92→不及格1人 优秀1人
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
编写说明:2027版安徽省普通高校对口招生考试电子与信息大类(计算机类)专业《考纲百套卷》,依据《安徽省普通高校对口招生专业理论和技能测试考试纲要(2025年版)》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共99份试卷,其中知识训练卷75份、专题训练卷17份、课程综合卷9份。
本试卷是第73卷,为知识训练卷,按《计算机编程基础—Python语言》中“文件操作”范围和要求编写。具体内容为:1.文件的打开和关闭(B)。2.文件的读写(C)。3.数据的格式化(D)。
安徽省对口招生考试
电子与信息大类(计算机类)《考纲百套卷》
第73卷 计算机编程基础—Python语言——文件操作
(考试时间:45分钟 满分:100分)
一、填空题(共10题,每题2分,共20分)
1.Python中打开文件使用__________函数,关闭文件使用__________方法。
【答案】open()、close()
【解析】open()打开文件返回文件对象,close()关闭文件释放系统资源。推荐使用with语句自动管理文件的打开和关闭。
2.文件打开模式__________表示只读,__________表示只写(覆盖),__________表示追加。
【答案】r、w、a
【解析】文件打开模式:r只读(默认),w写入覆盖已有内容,a追加到末尾,r+读写。w模式文件不存在则创建,存在则清空。
3.读取文件全部内容用__________,读取一行用__________。
【答案】read()、readline()
【解析】read()读取全部内容返回一个字符串。readline()读取一行含换行符。readlines()读取所有行返回字符串列表。大文件推荐逐行迭代。
4.使用__________语句打开文件可自动关闭,无需显式调用close()。
【答案】with
【解析】with open()语句自动调用__________exit__________关闭文件,即使代码块中出现异常也能保证文件资源正确释放,比手动close更可靠。
5.文件写入字符串应使用__________方法。
【答案】write()
【解析】write()写入字符串返回成功写入的字符数。writelines()写入字符串序列不自动添加换行符,需每个元素末尾手动加换行。
6.读取文件所有行到列表用__________;遍历文件每一行可写for line in__________。
【答案】readlines()、f
【解析】文件对象调用readlines()会一次性读取全部行,以字符串列表形式返回;文件对象本身可迭代,直接使用for line in f就能循环遍历每一行文本。
7.open()返回的文件对象本身是一个__________器,可逐行迭代。
【答案】迭代
【解析】open 函数产生的文件对象属于迭代器,支持 for 循环逐行读取,大文件读取时相比一次性读取全部内容更节省内存。
8.file.seek(0)将文件指针移到__________;file.tell()返回__________。
【答案】开头、当前位置
【解析】seek(0)把文件指针偏移至文件起始位置;tell()函数用于获取文件指针当前所在的字节偏移位置。
9.编码参数指定文件文本编码,Python3默认编码为__________。
【答案】UTF-8
【解析】Python3 打开文本文件时,默认字符编码为 UTF-8,打开 GBK 编码的中文文件需要手动设置 encoding="gbk" 防止乱码。
10.写入列表数据到文件时每个元素需手动添加__________符,write方法不会自动添加。
【答案】换行
【解析】write()方法只会原样写入字符串,不会自动追加换行符,列表分行写入文件时需要手动拼接
换行符实现分行存储。
二、单项选择题(共15题,每题2分,共30分)
11.open("a.txt","r")中"r"表示( )
A.只读
B.读写
C.只写
D.追加
【答案】A
【解析】r只读(默认)。w写入覆盖,r+读写,w+写读,a追加,a+追加读。文件不存在时w/a创建,r报错。
12.读取文件内容正确写法( )
A.f=open("a.txt");t=f.read()
B.t=read("a.txt")
C.t=file("a.txt")
D.t=open.read("a.txt")
【答案】A
【解析】先open再read。read()不带参数读全部,read(n)读n个字符。大文件read可能内存溢出。
13.with open("a.txt") as f:的作用( )
A.异常处理
B.自动关闭文件
C.创建文件夹
D.只读打开
【答案】B
【解析】with自动管理资源,退出代码块时自动close()。即使异常也确保关闭。优于手动try-finally。
14.追加模式打开文件用( )
A.r
B.r+
C.w
D.a
【答案】D
【解析】a模式指针在末尾,写入内容追加到文件尾。a+追加并支持读。w会先清空文件内容。
15.f.write("Hello")返回值( )
A.写入字符数
B.None
C."Hello"
D.True
【答案】A
【解析】write返回写入的字符数。5返回5。此返回值可校验写入是否完整。
16.for line in f:遍历后文件指针位置( )
A.开头
B.末尾
C.中间
D.报错
【答案】B
【解析】遍历消费完所有行后指针在文件末尾。再次遍历需f.seek(0)重置指针到开头。
17.大文件读取最节省内存方式( )
A.read()
B.readlines()
C.for line in f
D.read().split()
【答案】C
【解析】逐行迭代for line in f内存中只保留一行。read()读全部可能OOM。readlines同样全读。
18.open("a.txt","r")文件不存在时( )
A.自动创建
B.报FileNotFoundError
C.返回空
D.静默跳过
【答案】B
【解析】r模式文件必须存在否则FileNotFoundError。w和a文件不存在会自动创建。
19.f.readlines()返回类型( )
A.字符串
B.列表
C.元组
D.字典
【答案】B
【解析】readlines返回行列表每行含换行符。大文件慎用全部加载到内存。
20.f.write("中") 用GBK编码写,文件大小约( )
A.1字节
B.2字节
C.3字节
D.取决于系统
【答案】B
【解析】GBK编码中文占2字节。UTF-8中文3字节。编码决定文件大小。建议统一使用UTF-8。
21.关闭文件使用( )
A.f.close()
B.f.end()
C.f.exit()
D.f.stop()
【答案】A
【解析】close()关闭文件释放系统资源。未关闭可能导致数据未写入或文件锁。with自动调用close。
22.写入后立即读取同一文件( )
A.自动读取
B.需seek(0)
C.报错
D.返回空
【答案】B
【解析】写入后指针在末尾直接read返回空。需f.seek(0)回到开头再读。或f.flush()+seek。
23.检查文件是否存在的正确方式( )
A.f=open();检查
B.os.path.exists()
C.try open
D.file.check()
【答案】B
【解析】os.path.exists(path)返回bool。也可用pathlib.Path(path).exists()。避免用异常处理正常逻辑。
24."rb"模式打开文件读取返回( )
A.字符串
B.字节(bytes)
C.整数
D.无区别
【答案】B
【解析】二进制模式返回bytes而非str。需decode转字符串。图片/音频等非文本文件必须二进制读取。
25.f1=open("a.txt");f2=open("a.txt");f1和f2是( )
A.同一对象
B.不同对象
C.共享数据
D.报错
【答案】B
【解析】每次open返回独立文件对象,各自有独立指针。f1的读写不影响f2的指针位置。
三、程序分析题(共3题,每题6分,共18分)
26.with______("data.txt",______,encoding="utf-8") as f:
content=f.read()
print(content)
读取文件全部内容打印,请在横线处填入适当内容。
【答案】(1)open(3分);(2)"r"(3分)。
【解析】with open文件,模式r读取。encoding="utf-8"确保中文正确解码。f.read()读全部内容后打印。with块结束自动close。
27.f=open("log.txt","w")
f.write("第一行")
f.write("第二行")
f.close()
程序想写入两行数据但有2处错误,请找出并改正。
【答案】(1)write不会自动加换行,应改为f.write("第一行
")(3分);(2)推荐使用with语句自动管理资源,改为with open(...) as f:(3分)。
【解析】writelines也不自动加换行。需手动每行加
或用"
".join(lines)一次写入。with更安全确保close。
28.with open("test.txt","w",encoding="utf-8") as f:
f.write("A
B
C
")
with open("test.txt","r",encoding="utf-8") as f:
lines=f.readlines()
print(len(lines))
print(lines[1].strip())
f.seek(0)
print(f.read(1))
【答案】3
B
A
【解析】写入3行(含换行)。readlines返回3行列表。lines[1]="B
"去strip得B。seek(0)回开头read(1)读首字符A。需留意文件实际存在路径下。
四、程序设计题(3题,29/30各6分/31各8分)
29.编写程序:读取文件data.txt中所有整数(每行一个,用
分隔),计算总和与平均值(保留一位小数)。样例文件:1 2 3 4 5→总和15 平均3.0
【答案】total=0;count=0
with open("data.txt","r") as f:
for line in f:
total+=int(line.strip())
count+=1
avg=round(total/count,1) if count else 0
print("总和"+str(total)+" 平均"+str(avg))
【解析】逐行读取for line in f。strip去换行。int转整数累加。count计数行数。除以0保护。逐行处理大文件不占内存。
30.编写程序:将1到100中所有7的倍数写入文件seven.txt,每行一个数,文件末尾输出总个数。
【答案】with open("seven.txt","w") as f:
count=0
for i in range(1,101):
if i%7==0:
f.write(str(i)+"
")
count+=1
print("写入"+str(count)+"个数")
【解析】循环1~100,i%7==0判断7的倍数。每行写入str(i)+"
"手动加换行。计数变量统计写入个数。
31.统计文本文件word.txt中:总行数、总字符数(不含换行)、出现"Python"的次数。文件不存在则提示"文件不存在"。
【答案】import os
if not os.path.exists("word.txt"):
print("文件不存在")
else:
lines=chars=py_count=0
with open("word.txt","r",encoding="utf-8") as f:
for line in f:
lines+=1
stripped=line.rstrip("
")
chars+=len(stripped)
py_count+=stripped.count("Python")
print("行数"+str(lines)+" 字符"+str(chars)+" Python"+str(py_count))
【解析】os.path.exists检查存在。rstrip去掉行尾换行不计数。count统计子串出现次数。逐行累加三项统计。
五、综合应用题(共1题,每题12分,共12分)
32.编写成绩处理程序:读取scores.txt(每行"姓名 成绩"),筛选出不及格(<60)和优秀(>=90)学生,分别写入fail.txt和excellent.txt,并输出统计信息。样例文件:张三 85 李四 55 王五 92→不及格1人 优秀1人
【答案】import os
if not os.path.exists('scores.txt'):
print('文件不存在');exit()
fail_count=excellent_count=total=0
with open('scores.txt','r',encoding='utf-8') as f,\
open('fail.txt','w',encoding='utf-8') as f_fail,\
open('excellent.txt','w',encoding='utf-8') as f_exc:
for line in f:
name,score=line.strip().split()
score=int(score);total+=1
if score<60:
f_fail.write(name+' '+str(score)+'
')
fail_count+=1
elif score>=90:
f_exc.write(name+' '+str(score)+'
')
excellent_count+=1
print('总人数'+str(total)+' 不及格'+str(fail_count)+' 优秀'+str(excellent_count))
【解析】with可同时打开多文件。split分离姓名和成绩。int转数值。if-elif分类写入对应文件。三文件同时管理效率高。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$