资源简介 绝密★考试结束前(23年 12月)金丽衢十二校 2023 学年高三第一次联考技术试题第一部分 信息技术(共 50 分)一、选择题(本大题共 12 小题,每小题 2 分,共 24 分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)1.下列关于数据和信息的说法,正确的是A.计算机中的视频以十六进制形式存储B.付款码在一段时间后会失效,说明信息具有真伪性C.盲文是数据的一种表现形式D.通过无线网络传输的信息不需要依附于载体【答案】C【解析】选项 A,计算机内部所有数据都是以二进制形式存储,该选项错误;选项 B,付款码会失效,主要是体现信息的时效性,也是提高安全性的手段,该选项错误;选项 D,信息必须依附于载体才能存在,无线传输时的载体就是电磁波,虽然看不见,但不代表不存在,该选项错误。2.下列关于人工智能和大数据的说法,正确的是A.某学籍管理系统中的几十万条数据是大数据B.电商平台的个性化推荐是基于大数据分析了用户购买商品的原因C.人工智能的发展不会威胁到人类的安全D.利用神经网络解决分类问题的方法属于人工智能的联结主义【答案】D【解析】选项 A,学籍管理系统的数据不能算大数据,因为每个数据都非常重要,缺一不可,大数据中的数据允许个别数据的不准确或缺失,该选项错误;选项 B个性化推荐是基于大数据的相关性分析,而不是因果关系分析,该选项错误;选项 C,人工智能技术推动人类社会进步的同时,也可能威胁人类安全,该选项错误。阅读以下材料,回答 3—5 题。在建设智慧校园时,不少学校引入电子班牌系统。该系统的主要应用场景:签到、测温、请假、家校沟通、信息发布等,学生可以通过电子班牌与家长聊天,教师可以发布班级公告等,所有的数据都存储在云服务器上。该电子班牌的主要参数和功能如下:3.下列关于该信息系统组成的说法,正确的是A.测温模块属于该系统的硬件 B.电子班牌仅支持有线网络接入金丽衢 12校 技术选考试题 第 1 页 共 11 页C.Android 属于该系统的应用软件 D.该信息系统中的用户只有教师和学生【答案】A【解析】选项 B,电子班牌也支持无线网络来接入,该选项错误;选项 C,Android是操作系统,属于系统软件,该选项错误;选项 D,信息系统中的用户除了教师和学生,还有程序设计员、维护人员等,该选项错误。4.下列关于该信息系统功能和应用的说法,不.正.确.的是A.学生数据可以存储在云服务器的数据库中B.学校停电导致该系统无法使用,说明信息系统本身具有安全隐患C.学生通过电子班牌与家长聊天,说明该系统具有数据传输功能D.该系统的请假功能规范了工作流程,提高学校的工作效率【答案】B【解析】文件、数据库、云存储是数据存储的常见方式,选项 A正确;选项 B,停电导致信息系统不能使用说明信息系统对外部环境有依赖性,该选项错误;选项 C、选项 D均正确。5.下列关于信息系统安全和信息社会责任的说法,正确的是A.学生不能审批请假单是由于学生没有通过该系统的身份认证B.若将电子班牌的操作系统升级为最新版本,则该系统就不存在漏洞C.系统管理员可以将学生信息出售给第三方机构D.在服务器上安装防火墙可以有效阻挡外来的网络攻击【答案】D【解析】选项 A,学生不能审批请假单是因为访问控制的权限问题,学生帐号没有审批的权限;选项 B,新版本的操作系统也可能存在漏洞;选项 C,学生信息属于个人隐私信息或重要信息,出售信息会侵犯个人隐私。只有选项 D是正确的。6.下列关于网络系统的说法,不.正.确.的是A.客户端和服务器之间能够正常通信需要遵循 TCP/IP 协议B.连接网络的智能设备不一定都有 IP 地址C.无线路由器是组建家庭网络的常用设备D.各部门可以通过网络共用一台打印机,体现网络的资源共享功能【答案】B【解析】选项 B,IP地址是用于标识网络上设备的唯一地址,连接到网络的智能设备都需要有 IP地址(动态地址或静态地址),否则不能正常上网,所以选项 B是不正确的。选项 A、C、D均正确。7.某位图图像最多需要表示 500种颜色,若采用十六进制给每种颜色编号,至少需要的编码位数是A.4 B.3 C.2 D.1金丽衢 12校 技术选考试题 第 2 页 共 11 页【答案】B【解析】本题考查信息的编码。500种颜色,编码精度为 16n >= 500,即 n=3,所以选 B。8.某二叉树如第 8 题图所示,下列说法正确的是A.该二叉树是完全二叉树B.该二叉树有 4 个叶子节点C.该二叉树的中序遍历结果为 BDACFED.该二叉树用一维数组表示为['A','B','C','D','E','F']【答案】B【解析】本题考查二叉树。A.错误,一棵完全二叉树至多只有最下面两层的结点的度数可以小于 2,并且最下层的结点都集中在该层最左边的若干位置上。B.错误,叶子节点有 2个C.正确D.错误,该树用数组表示为['A','B','C',None,'D',None,'E',None,None,None,None,None,None,'F']9.有如下 Python程序段:a="Python"; q=[0]*6head,tail=0,0i=len(a)-1while i>=0:if i%3!=0:q[tail]=a[i]else:q[tail]=q[head]head+=1tail+=1i-=1print(q[head:tail])当执行该程序段后,输出的结果是( ▲ )A.['n', 't', 'y', 'o'] B.['n', 't', 'y'] C.['n', 'o', 'n', 't', 'y'] D.['n', 'o', 'n', 't', 'y', 'o']【答案】A【解析】本题考查队列。根据题意可知,当索引 i为 3的倍数时,队首元素出队并入队尾,否则 a[i]入队。即['n']-->['n','o']-->['o','n']-->['o','n','t']-->['o','n','t','y']-->['n','t','y','o'],故选 A。10.有如下 Python程序段:def f(s):金丽衢 12校 技术选考试题 第 3 页 共 11 页if len(s)==2:return selse:return f(s[len(s)//2+1:]+s[:len(s)//2])print(f("abcde"))当执行该程序段后,显示的结果是A.eb B.be C.da D.ad【答案】A【解析】本题考查递归函数f('abcde')f('deab')f('bde')f('eb')所以答案 A。11.某二分查找算法的 Python程序段如下:import randomkey=random.randint(1,4)*2a=[2,3,4,4,4,6,7,10]ans=0;i=0;j=len(a)-1while i<=j:m=(i+j)//2if key>=a[m]:i=m+1else:j=m-1ans+=a[m]print(ans)执行该程序段后,ans的值不.可.能.是A.27 B.14 C.11 D.9【答案】C【解析】本题考查二分查找。43 62 4 4 710根据题意 key的值可能是 2,4,6,8。程序查找的是 key的右边界,即当 key=2时,ans=4+3+2=9;当 key=4时,ans=4+6+4=14;当 key=6时,ans=4+6+7=17;金丽衢 12校 技术选考试题 第 4 页 共 11 页当 key=8时,ans=4+6+7+10=27。所以不可能的是 C。12.有如下 Python程序段:num="1433218"; k=3n=len(num); ans=""s= [""]*n; top=-1;for i in num:while k>0 and top>-1 and s[top]>i:top-=1k-=1top+=1s[top]=iif k > 0:top-=kwhile top > -1:ans=s[top]+anstop-=1print(ans)执行该程序段后,输出的内容是A.1321 B.1322 C.3121 D.1218【答案】D【解析】本题考查栈。根据题意代码 'while k>0 and top>-1 and s[top]>i:'可以判断,栈中的元素必须是递增的,且最多出栈 3 次;即['1']-->['1','4']-->['1','3']-->['1','3','3']-->['1','2']-->['1','2','1']-->['1','2','1','8']'4'出栈 两个'3'所以最后结果为'1218'二、非选择题(本大题共 3 小题,其中第 13 小题 8 分,第 14 小题 8 分,第 15 小题 10 分)13.某校图书馆提供 3类自习室,A类最多容纳 2人,B类最多容纳 4人,C类最多容纳 8人,以 1小时为单位进行预约,每.人.每.天.只.能.预.约.一.次.,.每.次.预.约.仅.限.个.人.,规定预约时间结束之前必须离开。图书馆每天 6点开馆,22点闭馆。编写程序,输入某自习室号牌,根据已预约情况,输出该自习室还能被预约的时间段。例:读取“A102”已预约情况[[6,11], [15,18], [8,12], [15,22]],其中“A102”表示为 A类 102号自习室,[6,11]表示某个人预约 6:00开始,11:00前必须离开,时间占用如第 13题图所示,则该自习室还能预约的时间段为[[6,8],[11,15],[18,22]]。请回答下列问题:第 13题图(1)若“B101”的已预约情况为[[6,11],[8,12],[8,11],[6,12]],则该自习室还能预约的时间段是 。(时间段格式参照题中样例)(2)实现上述功能的部分 Python 代码如下,请在划线处填入合适的代码。r = input("输入自习室号牌: ")金丽衢 12校 技术选考试题 第 5 页 共 11 页# 根据自习室号牌 r,获取该自习室可容纳的人数上限和预约情况分别存入 ceil和 time中,代码略# 如 time = [[6,11],[15,18],[8,12],[15,22]]bucket = [0]*24 #记录该自习室每个时刻被预约的人数for period in time:for i in range(period[0], ① ):bucket[i]+= 1ans = []; rec = []for i in range(6,22):if bucket[i]rec.append(i)if len(rec)==0:print("该自习室目前没有可预约时段")else:left,right = 0,0i=1while iif rec[i]==rec[i-1]+1:②else:ans.append([rec[left],rec[right]+1])left,right=i,i③ans.append([rec[left], rec[right]+1])print(r,"可预约的时间:", ans)【答案】(1)[[6,8], [11,22]] 或等价描述(若括号没有写全,也可给分) (1分)(2) ①period[1] (2分)② right=i或 right+=1 (2分)③ i+=1或 i=i+1 (2分)【解析】本题考查 Python语言基础及简单算法知识。(1)由于 B自习室能容纳 4个同学,因此“B101”的已预约情况为[[6,11],[8,12],[8,11],[6,12]],则表明[8,11]已经被占用,而其他时段都可以预约,故该自习室还能预约的时间段是[[6,8],[11,22]]。(2)①根据代码可知该处的代码应该是 period[1],因为 time是一个二维列表,列表 bucket记录该自习室每个时刻被预约的人数。需要说明的是,为什么答案不是 period[1]+1,是因为右边界的值不统计在 bucket中(如第 13题图所示)。②代码 rec[i]==rec[i-1]+1表示可预约教室的时段是连续的,例如 8点可以预约,9点也可以预约,因此可以将这两个时间点进行合并,此时应该将右边界加 1,或者直接将下标 i作为右边界,故答案是 right+=1或 right=i 。③由于统计是以每个小时为单位进行的,因此 while 循环语句的步长 i每次应该加 1,i代表小时数,故答案是 i+=1或 i=i+1。金丽衢 12校 技术选考试题 第 6 页 共 11 页14.小李在卧室搭建了一个简易的室内湿度监测系统,系统通过湿度传感器获取室内的环境湿度,湿度超过阈值时自动打开除湿器(执行器);用户可以通过浏览器查看实时湿度(主页)、历史湿度数据和设置湿度阈值。每隔一段时间记录一次湿度数据。该系统的架构图如第 14题图 a所示。(1)下列有关该系统数据传输的说法,不正确的是 。(单选,填字母)A. 用户的请求通过浏览器传输到 Web 服务器B. Web 服务器将接收到的湿度数据写入数据库C. IoT 模块将 Web 服务器的历史湿度数据传输给智能终端(2)基于 Flask Web框架编写服务器端程序,则服务器端应用实例 app中与设置阈值页面相关联的路由置语句是@app.route(' ')。(3)室内适宜的湿度范围是 hmin~hmax(含 hmin、hmax 且 hmin适宜、偏高时,将 sta的值对应设为 0、1、2。下列 Python程序段中符合要求的有 。(多选,填字母)。(注:全部选对得 2 分,选对但不全得 1 分,不选或有选错得 0 分)(4)该系统正常工作一段时间后,小李发现用浏览器访问服务器能正常显示实时湿度,但是当实时湿度超过阈值时,执行器并没有工作,结合第 14 题图 a,简要说明该系统中可能造成上述问题的原因:。(注:回答 2 项,1 项正确得 1 分)(5)将该年 1—10 月湿度数据导出,部分数据如第 14 题图 b 所示,分析 1—10 月中每天 8 时刻的月平均湿度值并绘制线形图如第 14 题图 c 所示。程序如下,请在划线处填入合适的代码。#其他代码略df = pd.read_csv("humidity.csv")df["月份"] = 0 #新增一列for i in df.index:金丽衢 12校 技术选考试题 第 7 页 共 11 页df.at[i, "月份"] = df.at[i, "日期"][5:7] #通过行、列确定单个值并修改dfh = df[ ① ] #筛选出每天 8 时刻的数据g = dfh.groupby(" ② ").mean() #分组求平均值plt.plot(g.index, g.相对湿度)plt.ylabel("每月 8:00 时刻的平均相对湿度")plt.xlabel("月份")plt.show()【答案】(1)C (1分)(2)/sethum (1分)(3)AD (2分)(4) 硬件故障:执行器或智能终端异常 (2分)连接故障:执行器和智能终端连接故障(5) ①df.时刻==8或 df['时刻']==8或 df.时刻=='8'或 df['时刻']== '8' (2分)②月份 (2分)【解析】(1)WEB服务器中的历史数据是保存在数据库中,并不是通过 IOT模块传递给智能终端,故 C选项错误。(2)题目中要求的是服务器端应用实例 app与设置阈值页面的路由关系,通过观察图 a可知该页面的路由是“/sethum”(3)B选项中,如果 h的值小于 hmin,由于两个 if语句存在两个入口,故最后 sta的值为 1(适宜)而不是 0(偏低),所以 B选项错误;C选项中,如果 h的值等于 hmax根据题目要求是适宜的湿度范围,但是从 C选项出发 sta的值是 2属于偏高,所以 C选项也错误。故答案选 AD。(4)根据题意,小李访问服务器是能正常显示湿度(说明服务器方面没有没有什么问题,包括浏览器的显示,数据库的保存),但超过阈值时,执行器无法工作(说明问题出在智能终端方面),结合图 a的系统架构图,可从以下几个方面分析。硬件方面:执行器发生故障、智能终端发生故障。连接方面:执行器和智能终端的连接故障。代码方面:服务器返回值参数错误导致执行器无法启动工作。(5)第 1小空考察的是 pandas筛选的知识点,要求筛选出每天 8时刻的数据,结合图 b可知要筛选的是时刻列故答案是“df.时刻==8”,第 2小空也是常规的知识点,考察的是根据哪列进行分组求平均值,结合图 c中 x轴的参数可知要参加分组的列是“月份”,亦可从代码中得知新增的“月份”列,故答案是“月份”15.某音乐平台的曲库中共有 n首(编号为 0~n—1)歌曲,每首歌曲初始的热度值均为 0。歌曲列表分为热榜区和非热榜区,热榜区按热度值降序排列,若热度值相同则按歌曲编号升序排列;非热榜区按歌曲编号升序排列,某时刻的榜单如第 15题图 a所示。用户对歌曲的操作会改变其热度值,规则如第 15题图 b所示。初始状态时,n首歌曲都在非热榜区,若某歌曲的热度值大于等于预设的阈值时,则将其移至热榜区;相反,若热榜区中某歌曲的热度值小于预设的阈值时,则将其移至非热榜区。现有一段时间内的操作记录存储在"operation.csv"文件中,部分数据如第 15题图 c所示,编写 Python程序模拟两个榜区歌曲的实时更新功能。金丽衢 12校 技术选考试题 第 8 页 共 11 页(1)若该曲库中有三首歌曲,编号分别为 0、1、2,初始热度值均为 0,热榜阈值为 3。经过第 15题图c所示的若干个操作后,最终热榜区显示的歌曲编号依次为 ▲ 。(2)定义函数 printsongs(headA,headB),其功能是输出某次操作后 songs中的歌曲榜单信息。如第 15题图a所示的歌曲榜单,该曲库中共有 10首歌。此时 headA和 headB的值分别为 6和 0;编号 8、9的歌曲数据在列表中分别表示为 songs[8]、songs[9],其值分别为[8,-2,"悬溺",-1]、 [9,8,”如果这就是爱”,0]。函数 printsongs代码如下,请在划线处填入合适的代码。def printsongs(headA,headB):print("###热榜歌曲###")p=headAwhile p!=headB :print("歌曲编号:",songs[p][0],"歌曲名:",songs[p][2],"热度值:",songs[p][1])▲print("###非热榜歌曲###")while p!=-1:#其他代码略(3)实现曲库从非热榜区移至热榜区或更新热榜区的部分 Python程序如下,请在划线处填入合适的代码。#读取曲库和操作数据,分别存入列表 songs和 op中。songs中的每个元素包含三个数据项,分别对应#歌曲的编号、热度值、名称。op中每个元素包含两个数据项,分别对应歌曲编号和操作编号。代码略inc=[0,1,3,-5] #操作编号对应的数值变化val=int(input('请输入热榜阈值')) #阈值设置for i in range(0, len(songs) - 1):songs[i].append(i + 1)songs[len(songs) - 1].append(-1)headA,headB=0,0for x in op:p,q=headA,headAwhile q!=-1 and songs[q][0]!=x[0]:p=qq=songs[q][3]if q==-1:print("未找到该歌曲")else:tmp=songs[q][1] #修改前的热度值songs[q][1]+= ① #修改后的热度值if (tmp=val) or (songs[q][1]>=tmp>=val): #上热榜或升榜px,py=headA,headAwhile py!=-1 and (songs[py][1]>songs[q][1] or ② ):px=pypy=songs[py][3]if q==headB:headB=songs[headB][3]if py != q:金丽衢 12校 技术选考试题 第 9 页 共 11 页songs[p][3] = songs[q][3]③if py == headA or headA == headB:headA=qelse:songs[px][3]=qprintsongs(headA,headB) #输出当前操作后的榜单#其他情况代码略【答案】(1)0,2(不按顺序不给分) (1分)(2)p = songs[p][3] (2分)(3) ① inc[x[1]] (2分)② songs[py][1]==songs[q][1] and songs[py][0]③ songs[q][3] = py (2分)【解析】本题考查链表遍历、查找、插入和删除等基本操作及算法的综合应用能力。(1)经过操作后,0号歌曲热度值为 6,2号为 4,1号为-5,阈值为 3,则 0号、2号歌曲上热榜并按热度值降序排序,热榜区显示的歌曲编号为:0,2(2)从代码的注释语句可以看出几个重要变量的结构:歌曲库:songs:[[“歌曲编号”,热度值,名称,指针域]....]操作: op:[[“歌曲编号”,操作编号].....](3)处的代码用于从表头 headA开始遍历热榜链表,此空为指针 p的跳转:p = songs[p][3]⑶本题的任务比较简单,通过操作 op计算相应歌曲的热度值,再依据热度值判断是否进入热榜,若是,找到插入位置进行插入。涉及到链表的增、删、查、改,主要考查链表的基本操作。以下为代码的模块结构及部分语句解释:inc=[0,1,3,-5] #操作编号对应的数值变化val=int(input('请输入热榜阈值')) #阈值设置for i in range(0, len(songs) - 1):songs[i].append(i + 1) 数组 songs转链表songs[len(songs) - 1].append(-1)headA,headB=0,0for x in op: #遍历操作 opp,q=headA,headAwhile q!=-1 and songs[q][0]!=x[0]:在 songs中找操作 op中的歌曲编号 x[0]p=qq=songs[q][3]if q==-1:print("未找到该歌曲")找到后,该歌曲的热度累加当前操作else: #若热榜中有歌曲 x[0]tmp=songs[q][1] # 值。通过操作编号 x[1],在列表 inc中修改前的热度值songs[q][1]+= # 找到对应的热度值,填:inc[x[1]]① 修改后的热度值if (tmp=val) or (songs[q][1]>=tmp>=val): #上热榜或升榜 根据修改以后的热度值,处理是px,py=headA,headA 否进入热榜,若进入需在降序while py!=-1 and (songs[py][1]>songs[q][1] or ② ):序列中查找插入位。依题意首px=py先按热度值降序排序,若热度py=songs[py][3]值相同,按编号升序排序,②处填:金丽衢 12校 技术选考试题 第 10 页 共son1g1s[p页y][1]==songs[q][1] andsongs[py][0]出循环后 q插在 px与 py之间if q==headB:headB=songs[headB][3]if py != q:songs[p][3] = songs[q][3] #从原链表删除 q节点③if py == headA or headA == headB: #若插在头节点之前headA=q #修改头节点指针else:songs[px][3]=qprintsongs(headA,headB) #输出当前操作后的榜单金丽衢 12校 技术选考试题 第 11 页 共 11 页 展开更多...... 收起↑ 资源预览