名称 | 2022年12月镇海中学考前适应性考试信息技术卷(Word版,含答案) | | |
格式 | zip | ||
文件大小 | 390.7KB | ||
资源类型 | 教案 | ||
版本资源 | 通用版 | ||
科目 | 信息技术(信息科技) | ||
更新时间 | 2023-01-04 17:02:32 |
A.①③ B.①④ C.②③ D.②④
二、非选择题 (本大题共 3 题,其中第 14 小题 7 分,第 15 小题 8 分,第 16 小题 9 分,共 24 分)
14 、小明利用 Python 对“足球世界杯历史进球前 20 名 (图 a ) ”数据进行分析,他先按国家分类,统计出 各个国家的球员人数,并把球员人数最多国家的球员,按“场均进球”数进行排序,并用图形显示 (图 b) 。
请在划线处填入合适的代码。
(
图
)a
图 b
列表 a 内容
字典 country 内容
import csv import pandas as pd import matplotlib.pyplot as plt
plt.rcParams[ 'font.sans-serif ']=[ 'SimHei'] #用来正常显示中文标签 plt.rcParams[ 'axes.unicode_minus ']=False #用来正常显示负号 ____①____=open("历史进球 .csv", 'r') reader=csv.reader(csvfile) a=list(reader); country={} for i in range(1,len(a)): #按国家分类 if a[i][1] not in country: ② else: country[a[i][1]].append(i) max=0 ; country_max="" for i in country.keys(): #找出前 20 名中人员最多的国家,country.keys()表示字典的键 if ③ : max=len(country[i]) country_max=i df=pd.DataFrame(data=[ ],columns=["姓名","进球个数","出场次数"]) for i in country[country_max]: df=df.append({"姓名":a[i][0],"进球个数":int(a[i][2]),"出场次数":int(a[i][3])},ignore_index=True) ④ =df["进球个数"]/df["出场次数"] #df 最后插入 1 列”场均进球” df=df.sort_values( ⑤ ) #按”场均进球”排序 plt. ⑥ (df["姓名"],df["场均进球"],label="场均进球") plt.title("前 20 名中人数最多国家球员场均进球情况") plt.legend() plt.xlim(0,1.2) plt.show() csvfile.close()
15.小李为某网吧做了一个网络拓扑设计图,如下图所示,为了提高消防安全性,利用Micro:bit开发 板设计了一个烟雾报警系统,每隔 10 秒将信号发送到服务器并存入数据库,如果监测到烟雾值超标则 打开报警装置。管理员可以通过浏览器查询所有记录。
第 4 页 共 7 页
(1) 在网络拓扑结构中①处的设备为___________ (单选,填字母:A.路由器 / B.调制解调器 / C. 交换机)
(2) 为了让智能终端能够通过无线网络传递数据,需要在智能终端中连接______ (单选,填字母: A.Wi-Fi / B.IoT / C.LAN )模块
(3) 智能终端测量环境中的湿度和烟雾值的部分代码如下:
while True: s = pin1.read_analog() errno,resp = Obloq.get("putval sv="+str(s),10000) if errno == 200: pin8.write_digital(int(resp)) else: display.show(str(resp)) sleep(10*1000)
根据代码所示,报警装置连接在智能终端的引脚是___________
(4) 服务器端的部分代码如下,请在划线①处填入合适的代码。
(5) 变量 t 用来接收数据,请为加框处选择合适的代码填入其中_____ (单选,填字母)
A. request.args.get('sv') B. request.form.get('sv')
C. request.args.get('s') D. request.form.get('s')
app = Flask(__name__) @app.route('/search ') def search'(): #从数据库中查询相关记录,并在网页中展示,代码略 @app. route(______①_______,methods=['GET']) def putdata(): (
t
=
.
) #将收到的数据存入数据库,并从中查询报警的阈值,存入变量maxs,代码略 if int(t) > maxs: return 1 else: return 0 if __name__ == '__main__': app.run(host='168.34.2.77',port=5000)
(6) 根据上述代码,要查询相关记录,对应的 URL 为___________________ 16.学校教室后方放有物品柜,柜子有 n 层,每层有 m 个格子,从上到下一次是第0 层,第 1 层,…,第 n- 1 层,从左到右依次是第 0 个格子,第 1 个格子,… ,第 m- 1 个格子。有 k 组物品 (组号为 0~k- 1) ,每组至 少有 2 个物品,物品总数不超过 n*m 个:将 k 组物品按组号由小到大依次放入柜中,放置方式有两种: 整体放置。按格子编号由小到大的次序查找第一个可放置该组全部物品的空区域 (空区域是指从某个
空格子开始的同层连续的所有空格子) ,若找到,则在该空区域居中、连续放置该组全部物品,如下 图所示。
零散放置。若所有空区域格子数都小于该组物品数,即找不到连续放置的空区域,则将该组每个物品
第 5 页 共 7 页
按照从上到下,从左到右的顺序,依次放置到柜中的空格子中,具体次序如下图所示。
小明编写了一个 Python 程序实现上述功能,程序依次输入 n 、m 代表柜子层数和柜子每层格子数,第三行 输入物品组数 k ,接下来一行输入 k 个整数代表每组物品个数。程序运行后输出 n*m 的矩阵代表物品的放 置情况,1 表示当前格子放置物品,0 表示当前格子没有放置物品,运行结果如下图所示。
编写函数 init(),功能为预处理 i 层 j 列格子开始的同层连续的所有空格子数,保存在数组 v 中。v [i][j]=0 表
示 i 层 j 列格子不是空格子,v [i][j]=x 代表 i 层 j 列格子开始的同层连续的所有空格子数为 x ,代码如下
def init(): for i in range(n): for j in range(m): if q[i][j]==0: k=j+1 while k
坐标[x,y],表示第x 层,第 y 个格子开始的连续空格子的数量大于等于 L,否则返回-1
def getpos(L): ret=-1 for i in range(n): for j in range(m): if ② : ret=[i,j] return ret return ret
解决问题的主程序如下:
n=int(input())#输入层数
第 6 页 共 7 页
m=int(input())#输入列数 k=int(input())#输入物品组数 q=[[0 for i in range(m)] for j in range(n)] # q 保存柜子的放置情况 v=[[0 for i in range(m)] for j in range(n)] # v 的含义参考 init 函数 init() #预处理 s=input() #输入每组物品数量 a=s.split() for i in range(k): a[i]=int(a[i]) start=0 for i in range(k): p=getpos(a[i]) if p!=-1: row=p[0] col=p[1] k= ③ k=k//2 t=col for j in range(k,0,-1): v[row][t]=j #更新 v 数组 t=t+1 for j in range(t,t+a[i]): q[row][j]=1 v[row][j]=0 else: cnt=0 while cnt<=a[i] : row=start//m col=start%m if q[row][col]==0: q[row][col]=1 v[row][col]=0 cnt+=1 start+=1 #输出放置情况 for i in range(n): for j in range(m): print(q[i][j], end=" ") print()
(1) 若柜子有 5 层,每层有 10 个格子。第 1 、第 2 组的物品数分别为 6 和 2 ,则第二组第 2 个物品应 放在第 0 层的第_________个格子里。
(2) 请在划线处填入合适代码
(3) 画框处代码有误,请改正
第 7 页 共 7 页2022年12月镇海中学考前适应性考试信息技术参考答案
…、远您
些
1
2
3
小中
51
G
73
8
91
103
11
12」
133
5
答
A
D
C
C
C
Be
小口
C
a
De
案
二、选
11:
(1)csyfile
(1分)
(2)country[a[i][1]]=[i]
(2分)口
(3)len(country[i])>max
(1分)
(4)df[·场均进球']口
(1分)口
(5〉·场均j进球',ascendin2=False
(1分)中
(6)barh
(1分)口
15
(1)A
(2分)口
(2)B
(2分)口
(3)pin8.
(1分)口
I
(4)①'/putval'
(2分)口
2int(request.args.get ('sv')).
(5)http:/168.34.2.77:5000/search
(1分)口
k
16
(1)1e
(1分)口
(2)1=k-j-
(2分)日
(2vj]>=L
(2分)口日
(3vrowl[col]-ai]
(2分):
k
(2)cnt(2分)