资源简介 湖州、衢州、丽水三地市教学质量检测试卷高三技术(2023.04)第一部分 信息技术解析(50分)一、选择题(本大题共 12 小题,每小题 2 分,共 24 分,每小题列出的四个备选项中只有一个是符合题目要求的,不选、错选、多选均不得分)1.下列关于数据、信息和知识的说法,正确的是A.机器学习训练的数据集可以是未经数字化的 B.数据的意义与其应用场景无关C.知识由信息的积累、归纳、总结得出 D.借助网络搜索引擎可获得海量知识【答案】C【解析】本题考查数据、信息与知识的概念选项A,自然界中的各种数据需要转换成数字信号,这样才能由计算机来处理选项B,数据放在某个语境或是真实场景中,数据就有了意义,因此有联系选项D,知识不仅知道有什么,还得知道为什么,单纯的搜索只是前者。2.下列有关大数据及其处理的说法,不.正.确.的是A.大数据支持动态跟踪,提高了数据分析的即时性B.大数据要分析的是全体数据,而不是抽样数据C.非结构化的文本数据更利于大数据处理和分析D.数据可视化可增强数据的解释力和吸引力【答案】C【解析】本题考查大数据的概念与思维要从大量的文本中提取出有用的信息,需要将文本从无结构的原始状态转化为结构化的,便于计算机处理的数据阅读以下材料,回答第3-4题:学校使用校园一卡通系统进行管理。校园卡基于RFID技术,可用于门禁开启、食堂消费、图书借阅等,建卡、挂失、充值及信息错误修正等工作由学校财务人员负责。3.下列有关该信息系统的组成,说法正确的是A.该系统的硬件由校园卡和刷卡机组成 B.使用记录数据只存储在校园卡的芯片中C.学校财务人员属于信息系统的用户 D.校园一卡通系统属于系统软件【答案】C【解析】本题考查信息系统的组成选项A,硬件还包括门禁,网络设备,计算机等选项B,芯片中记录了一部分数据,还有部分存储在服务器的数据库中选项D,一卡通系统是针对校园领域的实际问题开发的,属于应用软件4.为了提升信息系统的安全性,下列做法不.可.行.的是A.安装防火墙同用户设置相同的数据库访问权限人敏感信息进行加密处理服务器使用磁盘阵列进行数据冗余备份【答案】B【解析】本题考查信息系统的安全与防护系统管理员会通过对账户权限大小的设置来管理数据的安全,目的是保证访问系统资源的用户是合法的,不同权限的用户所拥有的数据范围不一样。5.下列关于网络技术的说法,正确的是A.网络是由计算机系统和网络软件两部分组成B.网络操作系统只负责网络中软件资源的管理C.局域网通信不需要遵循TCP/IP协议D.移动终端可通过公共网络设施访问互联网【答案】D【解析】本题考查网络的组成与构建选项A,网络由计算机系统,数据通信系统以及网络软件和网络协议三个部分组成。选项B,网络操作系统负责整个网络软、硬件资源的管理与网络通信和任务的调度。选项C,网络通信需要遵守协议6.某算法的部分流程图如第6题图所示,执行这部分流程,若输入的x依次为4,5,9,14,0, 则输出n的值是A.1 B.2 C.3 D.4【答案】B【解析】本题考查流程图。a 0 4 5 9 14b 0 0 4 5 9c 0 0 0 4 5n 0 0 0 1 2x 4 5 9 14 07.用数组表示二叉树的示意图如下所示,则该二叉树的中序遍历序列为0 1 2 3 4 5 6 7 8 9 10 11 12 13 14A B C D E FA.BEDFAC B.ABDEFC C.DBEAFC D.BDAECF【答案】A【解析】本题考查二叉树的创建与遍历根据题意 创建如下所示的二叉树,然后进行中序遍历,可以得到答案为A。8.有下列Python程序段:a=[[1,3],[1,0],[7,1],[4,5],[1,-1],[6,4]]x=1p=head=2if x==a[p][0]:head=a[p][1]else:while p!=-1:if x==a[p][0]:a[pre][1]=a[p][1]else:pre=pp=a[p][1]运行该段程序后,a[2][1]的值为A.-1 B.0 C.1 D.3【答案】B【解析】本题考查链表的相关操作阅读代码可知,选择结构部分的操作为当x为当前链表头指针所指的节点的数据,那删除头节点,如果不是就遍历后续节点并删除节点数据为1的节点。因为删除需要记录链表的前驱,这里使用pre来存储。原链表为7→1→1→4→6→1。故删除了数据1的节点之后,7指向了数据4,即a[2][1]为39.约定:T 操作是指在队列中1个元素出队后再入队,E操作是指将1个元素入队,P 操作是指队列中1个元素出队,队首指针head 和队尾指针 tail 初始值均为 0。则经过 EETPETEP系列操作后,队首指针 head 和队尾指针tail的值分别为A.3 4 B.3 5 C.4 5 D.4 6【答案】D【解析】本题考查队列的相关操作。根据题意T为出队后入队(head和tail都要+1),E为入队(tail+1),P为出队(head+1)。head=tail=0,经过 EETPETEP 系列操作后,head 加四次,tail加六次,故head=4,tail=610.数组a包含10个互不相同的元素,即a[0],a[1],…,a[9],其中a[0],a[2],…,a[8]称为奇数位元素,a[1],a[3],…,a[9]称为偶数位元素。有如下Python程序段:)ange(n//2-1):for j in range(n-2,2*i,-2):if a[j]a[j],a[j-2]=a[j-2],a[j]该程序段实现的功能是A.仅对奇数位元素升序排列 B.仅对偶数位元素升序排列C.奇数位元素升序,偶数位元素降序排列 D.奇数位元素降序,偶数位元素升序排列【答案】A【解析】本题考查冒泡排序算法知识。根据代码“a[j]向是从后往前冒泡,且中间隔着一个数进行冒泡排序,最前面一个有序的是元素a[0],然后是a[2],a[4]…根据题目描述,这属于奇数位元素,因此排序结束仅有奇数位元素实现升序,而偶数位置元素未被处理,依然保持原始状态。故本题选A。11.定义如下函数:def move(n,a,b,c):if n==1:print(a,"->",c)returnmove(n-1,a,c,b)move(1,a,b,c)move(n-1,b,a,c)执行语句move(2,"A","B","C"),输出的第一行内容是A.a -> c B.A -> C C.a -> b D.A -> B【答案】D【解析】本题考查递归算法及自定义函数知识。由代码可知,此为汉诺塔的递归函数,递归结束条件是n==1。将move(2,”A”,”B”,”C”)中的条件代入模拟后可以发现,第一行是move(1,”A”,”C”,”B”),此时满足递归函数的结束条件,因此执行print语句,按照参数的先后次序关系,第一行应该输出A -> B,故选D。12.有如下Python程序段:import randoms=[3,2,7,6,9] ; st=[0]*len(s) ; top=-1 ; i=0while iop=random.randint(0,1)if top==-1 or op==0 and s[i]>st[top]:top+=1 ; st[top]=s[i]elif top>=1 and op==1 and s[i]>st[top-1]:st[top]=s[i]i+=1hil t p!=-1:nt(st[top] ,end=" ")-=1执行该程序段后,输出的结果不.可.能.是A.3 B.9 6 2 C.9 6 3 D.9 7 3【答案】B【解析】本题考查栈以及栈的代码实现知识。变量top的初值为-1,由代码可知变量op的值只可能是0或1。因此根据逻辑可知,在第一个while循环中,此时i=0,无论op的值是多少,程序肯定进入第一个分支,因此第一个进栈的元素必定是数组s中的第一个元素3,且栈st至少有3这一个元素。而栈的规则是符合“先进后出”原则,3肯定是最后一个出栈的元素。观察各选项可以发现只有选项B中没有元素3,因此该选项不符合逻辑,故本题选项B不可能。二、非选择题(本大题共 3题,其中第 13题 8分,第 14题 9分,第 15题 9分,共 26分)13.小王搭建了鱼缸水质水位监测系统,基于Python的Flask Web框架进行开发,该系统结构示意图如图所示。第13题图(1)客户端通过浏览器访问Web服务器,可获得水质、水位信息,这一方案设计环节属于信息系统搭建的 ▲ (单选,填字母。A.可行性分析 /B.开发模式选择)。(2)系统定义water (act)函数用于发送操作指令,参数act为净水或注水,系统根据水质变量q、水位变量w的值发送指令。操作规则如表所示,下列Python程序段中符合要求的是 ▲(多选,填字母)。(注:全部选对的得2分,选对但不全的得1分,不选或有选错的得0分)(3)系统的“净水”操作使用水质过滤器,该过滤器属于 ▲ (单选,填字母)。A.传感器 B.执行器 C.客户端(4)该系统网站功能页面规划如表所示,当浏览器向Web服务器提交“净水”操作指令,服务器端应实例app中,与该指令关联的路由设置语句是@app.route(" ▲ ")。(5)系统数据库中的数据表wstatus存储鱼缸的水质、水位信息,整型字段level存储水位,字符型字段quality存储水质,当前获取的值分别存储在水质变量q、水位变量w中,系统存储数据时,执行的SQL语句是 ▲ (单选,填字母)。A. INSERT INT0 wstatus (level, quality) VALUES (w, q)B. INSERT INT0 wstatus (level, quality) VALUES (w,"q")C. SELECT * FROM wstatus WHERE level=w and quality=qD. SELECT * FROM wstatus WHERE level=w and quality="q"【答案】(1)B(2)BC(3)B(4)/water(5)A【解析】(1)客户端通过浏览器访问Web服务器,可获得水质、水位信息,这一方案设计环节属于信息系统搭建的开发模式的选择。所以答案是B。(2)选项BC是正确的;选项A中的else,除了q == "优" and w < 50以外,还有其他条件,可执行语句water("注水"),故选项A是不正确的;选项D中的else,除了q == "差"外,还有其他条件,可执行语句water("净水")。所以答案是BC。(3)系统的"净水"操作使用水质过滤器,该过滤器是具体执行操作设备,故属于执行器。所以答案是B。(4)该系统网站功能页面规划如表所示,当浏览器向Web服务器提交“净水”操作指令,服务器端应用实例app中,再由表格中所示,与该指令关联的路由设置语句是@app.route("/water")。(5)系统数据库中的数据表wstatus存储鱼缸的水质、水位信息,整型字段level存储水位,字符型字段quality存储水质,当前获取的值分别存储在水质变量q、水位变量w中,系统存储数据时,执行的SQL语句是INSERT INTO wstatus(level,quality) VALUES(w,q),水质的值已经存储到字符串变量q中,故选项B是不正确的。所以答案是A。14.某学院投票评选学生会优秀干事,候选人共10人,选出3人,每张选票最多可勾选5人,超过5人则选票无效。经一轮投票后,若得票数前三的候选人超过3人,则需对得票数前三的候选人进行下一轮投票,直至投出结果。小洪用Python编写投票系统,第一轮投票数据经处理后,保存在"vote2023.xlsx"文件中,部分数据如第14题图a所示,请回答下列问题。第 14 题图 a(1)定义check函数,功能为:读取Excel文件返回有效票数据。函数代码如下:def check( datafile) :df=pd.read_excel (datafile)df["票数"]=df.sum(axis=1)-df["序号"] # 统计每张选票的票选数df1=df[ ]return df1划线处应填入的代码为 ▲ (单选,填字母)。A.df.票数<=5 B.df[票数]<5 C.df.票数==5 D.df["票数"]>5(2)统计票数前三的候选人,若有并列也统计在内,并绘制的柱形图如第14题图b所示。部分Python程序如下,请在划线处填入合适的代码。df=check("vote2023.xlsx")df2=df.drop(["序号","票数"],axis=1) # 删除序号列、票数列s=[];st=[]for i in df2.columns :s.append([i,int(df2[i].sum())])#统计每人选票数,格式如['李彤 ',377]for i in range(len(s)) :num=1for j in range(len(s)) :if ① :num+=1第14题图bif ② :st.append(s[i]) #存储前三名数据for i in range(len(st)) :plt.bar(st[i][0], ③ ) #绘制柱形图#设置图表的标题及图例数据并显示图表,代码略(3)若对第14题图b中5人采用投票系统进行第二轮投票,最多可投3人,5人的票数结果分别为600,211,211,589,589,则投票结果的图表中显示的候选人有 ▲ 个。【答案】(1)A(2) ① s[j][1]>s[i][1]② num - 1<=2 或 num<=3③ s[i][1](3)3【解析】本题考查pandas模块以及数据处理。题目要求“超过5人则选票无效”,这里要筛选出符合要求的选票。对应的筛选条件是:df.票数<=5,出得票数前3的候选人,要考虑到有得票相同的情况。结合给出的二个for循环的遍历范围均是range(len(s)),内循环这里是统计比当前候选人(i)得票数多的人数。条件是①:s[j][1]>s[i][1];如果比当前候选人得票数多的人数不超过2人,当前候选人肯定位列前3,考虑到num初值为1,条件②:num-1<=2 或num<=3。绘图时,分别给出对应的候选人名字和票数,对应代码③:s[i][1]。解析者的一点解题心得:num赋初值为0似乎更加合理。那么条件就是超过的人数不到3人:num<3。解题时看到num=1,确实卡了一下,所以一开始给出的答案num-1<=2。出题人的思路大概是算上候选人自己,小于等于3。(3)根据要求,得票600、589、589的三人符合条件。所以图表显示的就是3人。15.某工厂在流水线上设立转盘缓冲装置,该装置示意图如图所示。转盘共有12个孔位作为产品缓存区,产品在转盘队列中等待开关打开,当未包装产品数量低于工人数的两倍时开关打开,产品出队进入包装区,否则开关关闭。工人包装产品的熟练度不同,熟练度是指工人包装一件产品所花的时间(单位:秒)。系统运行期间,工人包装完一件产品后立即包装下一件,直至该批次产品包装结束。现编写Python程序统计工人的包装件数,并从高到低输出。(1)若有3个工人熟练度分别为2、3、4,现需包装9件产品,则 3 个工人完成包装后,包装件数最多的工人完成了 ▲ 件。(2)定义 insort(status)函数,参数status每个元素由包装开始时间、持续时间和件数共 3 项组成。函数功能实现将status按包装件数由高到低排序,并返回status。def insort(status):for i in range(1,len(status)):current=status[i]j=i-1while j>=0 and current[2]>status[j][2]: # 语句 1status[j+1]=status[j] # 语句 2j-=1status[j+1]=currentreturn status①调用 insort(status)函数,若 status=[[36,37,9],[32,37,4],[36,37,6],[33,36,11]],则函数体内语句2处代码执行次数为 ▲ 次。②若将函数体内语句 1 画框处代码删除,调用该函数后程序提示错误,则错误原因可能是 ▲(单选,填字母)。A.变量未定义 B.索引超出范围 C.数据类型错误(3)某批次共有 1000 件产品,产品包装完成后,输出工人的包装件数,由高到低排列。实现该功能的部分Python程序如下,请在划线处填入合适的代码。d f in_que(num):points[1]+=1num_index=(points[1]+1)%max_que-1if num_index==-1:num_index=max_que-1queinfo[num_index]=numdef out_que():①num_index=points[0]%max_queoutdata=queinfo[num_index]queinfo[num_index]=-1return outdatamax_que=12 #转盘容纳产品件数packarea=[]worker=[['A',3],['B',7],['C',2],['D',4]] #每个工人编号及熟练度packmax=len(worker)*2 #未包装产品数量最大值queinfo=[-1]*max_quepoints=[1,1]status=[[0,0,0] for i in range(len(worker))]i,n=0,1000while i0:if points[0]!=points[1] and len(packarea)packarea.append(out_que())if iin_que(i)②w=0while len(packarea)>0 and wif status[w][1]-status[w][0]>worker[w][1]: #一件产品包装完成③status[w][2]+=1packarea=packarea[1:]status[w][1]+=1w+=1status=insort(status)# 输出工人的包装件数,由高到低排列,代码略【答案】(1) 4 (1分)(2) ① 4 (2分)② B (2分)(3) ① points[0]+=1 (2分)② i+=1 (1分)③ status[w][0]=status[w][1] (2分)【解析】题选取的背景为流水线处理工件,题干中有几处信息点需要明确,1.用转盘模拟队列,队列长在程序中一定会有入队、出队的操作;2.当未包装产品小于工人两倍时,转盘不打开,也就意味着不出队,这里的未包装产品与转盘内的产品是两个概念,未包装产品从图示看就是已经出了转盘进入包装区的产品;3.工人的熟练度是值包装一件产品的时长。了解了这些关键信息后,我们看这道题的问题。(1)这是一道根据题干情境模拟数据题。3个工人包装9件产品,熟练度分别为2,3,4,包装示意图如下:一个数字表示一个单位时间。工人1 00112233工人2 000111333工人3 00001111从示意图可以看出,工人1包装的产品最多,为4件产品。(2)从insort函数的介绍可以看出,insort函数用于按照包装件树进行降序排序。排序采用的算法为插入排序。当前的数据为status=[[36,37,9],[32,37,4],[36,37,6],[33,36,11]],问语句2执行的次数,语句2实现的功能为元素移位操作。i current j=i-1 current[2]>status[j][2 语句2是否执行 结果]1 4 0 否 否 [36,37,9],[32,37,4]2 6 1 是 是6 0 否 否 [36,37,9],[36,37,6],[32,37,4]3 11 2 是 是1 是 是0 是 是 [33,36,11],[36,37,9],[36,37,6],[32,37,4]因此,语句2一共执行4次。从程序段中可以看出j>0的作用是用于防止索引越界,因此第2小题答案选择B。(3)此处程序解决的问题是输出工人的包装件数,由高到低排列。程序段较长,其中有2个新自定义函数。一个主程序。我们先来看主程序,主程序中涉及的变量和数据结构较多,我们罗列如下:变量或数据结构 含义或作用max_que 转盘容纳产品件数packarea 包装区内未包装的产品数组,每个元素存储产品的序号worker 每个工人编号及熟练度packmax 未包装产品数量最大值queinfo 转盘队列,每个元素存储产品的序号(序号从0开始到999)points 转盘队列的头指针叠加值,尾指针叠加值,用于计算转盘队列是否为空。status 工人包装信息,一个元素表示一个工人,每个元素由包装开始时间、持续时间和件数共 3 项组成i 表示产品的序号,从0开始n 表示产品的数量,为1000了解完变量及数据结构信息后,我们再来看程序解决问题的逻辑。通过外层while循环,当还有未进入转盘队列的产品或未包装产品数组还有元素时说明包装工作还未结束,程序还得运行,直到所有产品全部包装完成。进入循环后,现判断转盘内是否有产品出队,出队条件为转盘队列内有元素且未包装产品小于工人两倍。通过out_que()函数让转盘队列出队,因此out_que()的作用是处理出队,而in_que函数用于处理入队。出入队与points数组相关 一旦元素出队,那么points[0]则累加。一旦元素入队,则points[1]则累加,因此第1空答案为points[0]+=1,现累加再获取产品序号,是因为入队时先进行累加再入队操作,因此出入队在产品序号的存取上要保当出队处理完毕后,再检测入队,入队的条件是还有产品未进入转盘且转盘内还有空位。入队完毕后,产品序号往后加1,当i==n时说明所有产品均已经入队,后续只有出队及包装的事了。因此第2空答案为i=i+1。内层while结构用于处理包装产品。w表示工人的序号。当未包装产品数组有产品时就需要遍历工人来继续分配这些未包装的产品。每次遍历算经过1秒时间,因此当有工人手头上的产品包装完毕后,那么马上开始下一个产品的包装(前提是未包装产品数组内有元素)。因此下一个产品的开始时间就是上一个产品的结束时间。因此第3空的答案为status[w][0]=status[w][1]。每次包装一个产品时,status[w][2]累加。最后利用insort函数输出工人包装件数的降序排列。 展开更多...... 收起↑ 资源预览