2026年初中信息科技学业水平考试模拟卷
(满分50分,考试时间45分钟)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 下列选项中,属于信息的是( C)
A. 印在纸上的天气预报文字
B. 存有电影文件的移动硬盘
C. 手机上播放的股票行情
D. 写满笔记的笔记本
2. 关于人工智能在生活中的应用,以下描述不正确的是( C)
A. 人脸识别门禁系统使用了图像识别技术
B. 智能语音助手能够理解并执行语音指令
C. 人工智能可以完全替代人类的所有工作
D. 自动驾驶汽车通过传感器感知周围环境
3. 某超市使用智能收银台,顾客将商品放在称重台上,系统自动识别商品并计算总价。这一过程主要体现了( A)
A. 数据的采集与处理
B. 信息的存储与传输
C. 图像的压缩与解压
D. 程序的编译与运行
4. 为了保障个人信息安全,下列做法中正确的是( C)
A. 将支付密码设置为生日数字
B. 在公共场所连接免费WiFi时输入银行卡号
C. 定期更换重要账号的密码
D. 把验证码告诉自称客服的陌生人
5. 计算机系统中,负责解释和执行指令的部件是( C)
A. 内存
B. 硬盘
C. CPU
D. 显卡
6. 关于网络协议,下列说法正确的是( B)
A. HTTP协议用于文件传输
B. TCP/IP协议是互联网通信的基础
C. 无线网络不需要协议
D. 电子邮件使用FTP协议发送
7. 执行如图所示的流程图,若输入的数字依次为5、3、8、0,则输出s的值是( C)
(流程图略:开始→输入x→s=0→当x≠0时循环:s=s+x,输入x→结束输出s)
A. 5
B. 8
C. 16
D. 0
8. 在Python中,执行以下代码后,输出结果为( C)
a = [3, 1, 4, 1, 5]
print(len(a))
A. 3
B. 4
C. 5
D. 6
9. 队列是一种常见的数据结构,元素从队尾加入,从队首取出。初始队列为空,依次执行以下操作:
①入队A
②入队B
③出队
④入队C
⑤出队
此时队列中的元素是( C)
A. A
B. B
C. C
D. 空
10. 下列Python程序段的功能是( B)
for i in range(1, 5):
for j in range(1, i+1):
print('*', end='')
print()
A. 输出一个4行4列的矩形
B. 输出一个直角三角形图案
C. 输出一个等腰三角形
D. 输出一个倒三角形
11. 定义一个函数如下:
def fun(n):
if n == 1:
return 1
else:
return n + fun(n-1)
执行语句 `print(fun(4))` 后,输出的结果是( B)
A. 6
B. 10
C. 15
D. 24
12. 某Python程序段如下:
s = 'HelloWorld'
t = ''
for ch in s:
if 'A' <= ch <= 'Z':
t = t + ch
print(t)
运行后,输出的结果是( C)
A. HelloWorld
B. H W
C. HW
D. helloworld
二、非选择题(本大题共3小题,第13题8分,第14题9分,第15题9分,共26分)
13.小明为家里的花房设计了一个简易温湿度监测系统,结构如下图所示。传感器采集的数据由智能终端通过无线模块发送到Web服务器,用户可以通过手机或电脑浏览器查看实时数据。请回答下列问题。
(1)图中虚线框内,智能终端与传感器、执行器之间的连接方式合理的是___A___(单选,填字母)。
A. 传感器和执行器都直接连接在智能终端上
B. 传感器连接智能终端,执行器通过服务器控制
C. 传感器和执行器都通过服务器连接
(2)该系统采用的网络应用软件架构是___A___(单选,填字母:A. B/S架构 B. C/S架构)。
(3)若智能终端向服务器提交数据的URL为 `http://192.168.1.100:8080/data temp=25&hum=60`,则服务器端接收数据的路由语句应设置为 `@app.route(___`'/data'`___)`。
(4)花房适宜的温度范围为15℃~28℃。小明编写程序根据温度t输出状态:正常、偏低或偏高。以下程序段中能正确实现的有____BC__(多选,填字母)。
A.
if t < 15:
status = '偏低'
if t > 28:
status = '偏高'
else:
status = '正常'
B.
if t < 15:
status = '偏低'
elif t > 28:
status = '偏高'
else:
status = '正常'
C.
status = '正常'
if t < 15:
status = '偏低'
if t > 28:
status = '偏高'
D.
if t < 15:
status = '偏低'
if t > 28:
status = '偏高'
if 15 <= t <= 28:
status = '正常'
(5)系统正常工作一段时间后,小明发现浏览器页面不再更新,刷新后仍显示旧数据。结合图示,可能的原因有:①___服务器程序停止运行___;②___网络连接中断(或智能终端停止发送数据)___。(传感器与智能终端连接正常,不考虑设备损坏)
14.某校气象兴趣小组记录了2025年全年每天的气温数据,每个月的数据保存在一个CSV文件中,文件名如“202501.csv”(表示2025年1月)。每个文件包含两列:日期(如“2025-01-01”)和气温(单位:℃)。现需统计各月的平均气温并绘制折线图。
(1)定义函数 `month_avg(month)`,功能为读取某个月的CSV文件,返回该月的平均气温。程序代码如下,请在划线处填入合适的代码。
import pandas as pd
def month_avg(month):
filename = '2025' + str(month).zfill(2) + '.csv'
df = pd.read_csv(filename)
avg = df['气温'].mean()
return avg
(2)统计全年各月平均气温并绘制折线图,部分程序如下,请在划线处填入合适的代码。
import matplotlib.pyplot as plt
months = []
temps = []
for m in range(1, 13):
avg_temp = month_avg(m)
months.append(m)
temps.append(avg_temp)
plt.plot(months, temps, marker='o')
plt.xlabel('月份')
plt.ylabel('平均气温(℃)')
plt.title('2025年各月平均气温')
plt.show()
(3)由下图可知,2025年全年平均气温为15.5℃,则月平均气温高于全年平均气温的月份有___5___个。
(图略,假设显示5个月高于平均)
15.某快递分拣中心有两条传送带,分别送来包裹A和包裹B。每个包裹的信息包含到达时间(秒)、重量(kg)和优先级(1~3,数字越小优先级越高)。两条传送带的包裹已按到达时间先后顺序排好。分拣机器人每次从当前已到达且未分拣的包裹中,选择优先级最高的包裹进行分拣(若优先级相同,则先到达的先分拣)。同一时刻若有多个包裹到达,先全部记录后再进行分拣。请编写程序模拟分拣过程,计算所有包裹的平均等待时间(等待时间 = 开始分拣时间 - 到达时间)。
(1)现有包裹信息如下表,分拣顺序为A1→A2→B1→B2,则包裹A1、A2、B1的等待时间分别为0、2、0,包裹B2的等待时间是__3____秒。
(2)定义函数 `merge(lst1, lst2)`,将两条传送带的包裹列表按到达时间合并成一个有序列表。代码如下,请回答问题。
def merge(lst1, lst2):
i = j = 0
result = []
while i < len(lst1) and j < len(lst2):
if lst1[i][0] < lst2[j][0]:
result.append(lst1[i])
i += 1
else:
result.append(lst2[j])
j += 1
result.extend(lst1[i:])
result.extend(lst2[j:])
return result
① 若 `lst1 = [[0,5,2], [2,3,1]]`,`lst2 = [[1,4,3], [3,2,2]]`,则 `merge` 函数返回的结果是____`[[0,5,2], [1,4,3], [2,3,1], [3,2,2]]`____。
② 若将 `while` 循环中的条件改为 `i < len(lst1) or j < len(lst2)`,是否仍能正确合并?__不能___(选填“能”或“不能”),原因是_____因为当某个列表遍历完后,另一个列表未遍历完时,循环会继续但索引越界_____。
(3)实现模拟分拣并计算平均等待时间的程序如下,请在划线处填入合适的代码。
def process(data):
n = len(data)
# 每个包裹增加一个状态标记,-1表示未处理
for i in range(n):
data[i].append(-1)
cur_time = 0
wait_num = 0
i = 0
total_wait = 0
# 优先级队列,每个优先级一个列表,存放包裹在data中的下标
queues = [[] for _ in range(3)] # 假设优先级1~3
while i < n or wait_num > 0:
# 将所有到达时间 <= cur_time的包裹加入队列
while i < n and data[i][0] <= cur_time:
pri = data[i][2] - 1 # 转换为0~2
queues[pri].append(i)
wait_num += 1
i += 1
if wait_num > 0:
# 找到优先级最高的非空队列
for pri in range(3):
if queues[pri]:
p = queues[pri].pop(0) # 取出队首
break
total_wait += cur_time - data[p][0]
cur_time += data[p][1] # 增加分拣耗时
wait_num -= 1
else:
cur_time = data[i][0] # 跳转到下一个包裹到达时间
return total_wait / n
① 程序中 `queues` 的作用是_____按优先级存储待处理包裹的下标______。
② 若所有包裹的优先级均为1,则上述程序能否正确运行?___能___(选填“能”或“不能”)。
③ 假设包裹列表已按到达时间合并,调用 `process(data)` 即可得到平均等待时间。若所有包裹的等待时间之和为120秒,包裹总数为10个,则平均等待时间为___12___秒。