资源简介 浙江省普通高校招生信息技术选考模拟卷(十五) 一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)阅读下列材料,回答第1至6题:某超市推出“自主购物”模式。顾客只要在该超市APP中进行人脸数据的录入,并充值或绑定银行卡,即可进入超市自主购物。超市安装了众多传感器与摄像头,当顾客从货架上拿下商品,系统通过人脸识别、图像识别等技术,将商品加入顾客的虚拟购物车。当顾客将商品放回货架,系统会从虚拟购物车中将该商品删除。当顾客走出超市时,系统自动从该顾客的账户中扣除消费金额,并在APP中发送扣款通知。超市中还设立了机器人导购员,顾客可通过与其对话寻求帮助。1.下列关于该系统中数据和信息的说法,不合理的是( )A.该系统中的数据只有图像这一种表现形式B.该系统数据库中的数据是以二进制形式存储的C.若系统服务器遭到破坏,则其保存的信息可能会损坏D.系统根据顾客所购商品计算出消费金额,体现了信息的可加工处理性答案 A解析 A选项该系统中的数据还有文字、数字等表现形式。2.下列关于该系统信息安全与保护的做法,合理的是( )A.随意分享顾客的消费数据B.定期备份该超市系统中的数据C.以明文方式保存顾客的注册信息D.超市不营业的时候关闭系统防火墙答案 B解析 A选项涉及用户隐私。C选项明文易泄密。3.为使系统更精准地识别顾客身份及商品,下列方法可行的是( )A.提升超市的网速B.增加超市商品的种类C.对识别的算法模型进行优化D.完善机器人导购员语料库中的资料答案 C解析 C选项算法模型进行优化可以加大智能水平。4.下列关于该系统组成与功能的说法,不合理的是( )A.可利用消费数据分析顾客的购物倾向B.超市内用于人脸识别的摄像头,属于该系统的硬件C.系统从顾客账户中扣除消费金额属于数据输入功能D.停电导致顾客无法“自主购物”,说明系统对外部环境有依赖性答案 C解析 C选项属于数据加工处理功能。5.下列关于该系统提供的服务,未涉及人工智能技术的是( )A.对顾客所拿商品进行图像识别B.对顾客进行人脸识别确认身份C.机器人导购员帮顾客解答问题D.系统从顾客账户中扣除消费金额答案 D解析 D选项属于程序设计功能。6.若顾客正常购物出超市后,手机迟迟未收到扣款通知,不可能的原因是( )A.超市服务器出现故障B.顾客的手机未连接网络C.超市网络的数据通信系统发生故障D.顾客的手机与超市服务器不在同一局域网中答案 D解析 手机或服务器数据通讯功能正常即可。D选项手机只要能连接到服务器,无论是否在同一局域网,都可以正常工作。7.某算法部分流程图如图所示,若a、b所有元素初始值都是0,p的初始值也是0,依次输入580、570、565、564、564、520、520、520、0后,a[4]和b[4]的值分别为( )A.520 3 B.564 2C.520 2 D.0 1答案 B解析 考查算法流程图的阅读与理解。此处p可以视为a数组中存放非0数据最后一个元素位置,当a[p]等于x时,b数组记录这个位置上的数有多少个。当a[p]≠x时,把新元素放到a中p的下一个位置,元素值初始化为1。由此,对于输入数据580、570、565、564、564、520、520、520、0可得数组各个值:0 1 2 3 4 5a 0 580 570 565 564 520b 0 1 1 1 2 3因此答案选B。8.某非完全二叉树包含5个节点,中序遍历为ABCDE,添加1个节点F后变成完全二叉树。以下对于该完全二叉树的说法,正确的是( )A.根节点可能为DB.后序遍历可能为AFBEDCC.节点B的父节点一定是AD.深度为3,节点E在第二层答案 D解析 添加1个节点F后变成完全二叉树如图所示。A选项根节点为C。B选项后序遍历为AFBDEC。C选项节点B的父节点一定是C。9.某队列允许在其两端进行入队操作,但仅允许在一端进行出队操作。若元素a,b,c,d,e依次入此队列后再进行出队操作,则不可能得到的出队序列是( )A.b,a,c,d,e B.d,b,c,a,eC.d,b,a,c,e D.e,c,b,a,d答案 B解析 元素a入队后元素b入队,元素b可以在队列的两端进行入队操作,因此元素b可以在元素a前一个或者后一个出队,B选项元素b与元素a之间还有元素c。10.有如下Python程序段:import random as rda=[7,9,5,8,6,4]k=2*rd.randint(0,2)+1for i in range(k,len(a)): for j in range(len(a)-1,i,-1): if a[j] a[j-1],a[j]=a[j],a[j-1]该程序段执行后,a中各元素值不可能的是( )A.[7,4,5,6,8,9] B.[7,9,4,5,6,8]C.[7,9,5,4,6,8] D.[7,9,5,8,6,4]答案 B解析 产生的随机数k的值为1,3,5,决定从后向前升序冒泡时的终点位置k+1,最后一次的比较对象为a[k+1]和a[k+1-1]。A选项若k为1,则7未参加排序。C选项若k为3,则前3个数未参加排序。D选项若k为5,所有数据未经排序。11.有如下Python程序段:a=[13,23,34,44,55,67,78,80,85,90]i=0;j=9s=[-1]*4;top=-1;n=0key=int(input())while i<=j: m=(i+j) // 2 if a[m]>=key: j=m-1;n+=1 top+=1;s[top]=m else: i=m+1;n-=1 if top!=-1: top-=1下列有关该程序段的说法,正确的是( )A.i的值不一定等于j+1B.n的值最小为-3,最大为4C.输入任意key的值,top的最大值为3D.若输入key的值为67,则s的值为[7,5,-1,-1]答案 D解析 A选项该二分查找没有中途退出的语句,当条件i<=j不满足结束查找,那么i一定等于j+1。B选项n记录了往右(负值)或向左查找的次数,最多往右查找4次,最小为-4,最多往左查找3次。C选项一直往左找,栈中元素最多,最多3次往左,栈中有3个元素,top的值为2,栈中元素为top+1。D选项则找的位置是4,7,5。第1次往右没有入栈,第2次向往左找,入栈7,第3次继续往左找,入栈5,对分结束,栈中元素为[7,5,-1,-1]。12.已知链表a存放了学生ID和借阅图书书名,链表b存放了学生ID和姓名。两链表节点都按学生ID 升序存放,如图a和b所示。链表a的头指针指向额外的空元素。现要将两链表中有共同学生ID的节点连接成一个新链表,如图c所示。ha=q=0;p=hawhile a[p][2]!=-1: tp=a[p][2] if q==-1: a[p][2]=-1 break if a[tp][0]==b[q][0]: a[tp].append(b[q][1]) ① elif a[tp][0]>b[q][0]: q=b[q][2] else: ② #从ha的下一个位置开始输出链表a,输出结果即为两表连接结果,代码略( )A.①q=b[q][2] ②p=a[p][2]B.①p=a[p][2] ②a[p][2]=a[tp][2]C.①tp=a[tp][2] ②p=a[tp][2]D.①p=tp ②p=a[tp][2]答案 B解析 考查链表数据组织方式的理解与链表的操作知识。第①空tp指向p指针的下一个节点。当条件a[tp][0]==b[q][0]成立时将b链表q指针指向的节点姓名区域添加到a链表tp指针指向的节点,可以推断tp指向a链表当前节点,q指向b列表当前节点。B选项和D都正确,排除A和C选项。第②空a链表的当前ID小于b链表的当前ID,让p指针的下一个节点指向tp的下一个节点。二、非选择题(本大题共3小题,其中第13题7分,第14题10分,第15题9分,共26分)13.某物品柜有5层,每层有10个格子,每个格子只能放一个物品。输入一组物品的高度值(按降序排列),将这些物品放在同一层的连续格子中。第一步:查找存放物品的格子。从第1层开始查找,若该层物品柜连续空格数量小于物品数量,则查找下一层。查找5层后还是不能找到连续存放位置,输出“不能连续存放”。若在某一层中找到符合要求的连续空格子,则进行第二步:将物品按中间高两端低的原则存放物品。先将高度最高的物品存放在连续空格的中间位置(若空格数量为偶数,则放在中间靠左位置),接着依次将物品按先右后左的顺序依次存放。如输入物品高度为8,5,2,1,则依次放在第1排的第5,6,4,7的位置。第一排各个格子存放物品高度如图所示,其中0表示未存放物品。0 0 0 2 8 5 1 0 0 0(1)输入第1组物品高度依次为8,5,2,第2组依次为9,6,3,1,则高度为3的物品存放在第1排第 (填数字)个格子中。 (2)实现该功能的Python程序段如下,将空白处填写完整。#将已经存放的物品高度存储在数组a中,如:[[0,9,6,2,8,5,1,0,0,0],[0,0,1,7,10,9,2,0,0,0],……],代码略。s=input("输入一组降序的物品高度,用逗号分开:")wp=list(map(int,s.split(","))) #输入的数字转换成列表flag=False;i=0while hang<5 and not flag: beg=0 for j in range(10): if a[hang][j]==0: #物品柜格子为0表示没有存放物品 if j-beg+1>=len(wp): end=j;flag=True else: if flag: break ① hang+=1if flag: ② a[hang][wz]=wp[0] i=1 while i if ③ : wz-=i else: wz+=i a[hang][wz]=wp[i] i+=1else: print("不能连续存放")#输出物品柜的存放情况,代码略答案 (1)7 (2)①beg=j+1②wz=(beg+end)//2 ③i %2==0解析 本题考查二维数组的遍历和在一个序列中查找最值。(1)高度8,5,2依次存放第5、6、4的格子中,因此左边还有3个空格,右边有4个空格。高度9,6,3,1依次存放第8、9、7、10的格子中。(2)①确定连续空格子的最左边位置beg,若格子为空,计算连续空格子数量为j-beg+1,若数量达到存放物品数量时,将flag设置为True。若格子不为空,则下一个空格子的位置只能在当前j的下一个位置。②中间位置的计算方法类似于二分查找,将左右位置相加再整除以2。③语句a[hang][wz]=wp[0]的功能是放置最中间的物品,接下来放在i为1的物品,在中间的右边,即wz等于i+1,当i的值为2时,放在左边的前面2个位置中,因此通过判断变量i的奇偶性来决定存放的位置。14.小明为某单位搭建智能节能系统,通过在各场所布置智能终端和传感器采集数据,使用网络传输到服务器,分析数据后能精准判断高能耗或设备异常区域,进行自动调整或人工管理。用户可以通过浏览器查看实时数据和历史数据。请回答以下问题:(1)关于信息系统的数据传输,以下说法不正确的是 (单选,填字母)。 A.用户在客户端电脑查看记录时,一般需要通过网络来实现数据的传输B.分布在各个区域的智能终端可以通过无线网络与服务器传输数据C.传感器必须通过网络将数据传输到智能终端(2)关于该信息系统的软件设计,下列说法正确的是 (多选,填字母)。 A.系统中数据采集主要依靠各种传感器来完成B.若该系统采用C/S架构,则只需编写服务器端程序C.服务器端程序可以采用基于Python的FlaskWeb框架编写D.在智能终端程序中,需编写路由和视图函数,用以建立URL到程序代码的关联(3)系统搭建完成后,采集数据过程中发现2个办公室的相关数据互换。产生此问题的硬件原因可能是 (单选,填字母)。 A.这两个办公室的相关传感器有故障B.读取相关数据的部分代码编写错误C.这两个办公室的相关传感器和智能终端接口连接有误(4)在系统实际运行过程中,发现数据被用户非法访问,请从安全角度提出2条改进建议。(5)将某天所有办公区域的用电数据导出,部分数据如图a所示。编写代码,输入任意2个办公区编号,绘制这2个办公区的各工作时间段用电对比图,如图b所示。完成相关功能的代码如下,请在划线处填入合适代码:def pro(df,n): df1=① df2=df1[df1.时间>="09"] df2=df2[df2.时间<="14"] plt.plot(② ,label=n) #绘制图形 plt.legend()#导入相关模块,代码略df=pd.read_excel("data.xlsx")n1=input("查询 1:");n2=input("查询 2:")pro(df,n1);pro(df,n2)plt.title(n1+"和"+n2+"工作时间用电对比")答案 (1)C (2)AC (3)C (4)实施严格的访问控制策略,确保只有授权人员才能访问相关数据;安装防火墙以阻止未经授权的访问;或其他合理答案。 (5)①df[df.办公区编号==n]或其他等价答案 ②df2.时间,df2.用电能耗或其他等价答案解析 (1)C选项传感器往往直接连接到智能终端某个引脚上。(2)B选项若修改架构模式,则服务器端程序需重新编写。(3)两个传感器接反了。(4)略。(5)①输入任意2个办公区编号,因此先要筛选出编号为n的区域。②绘制这2个办公区的各工作时间段用电对比图,横轴为各个工作时间段,纵轴为用电能耗。15.工厂生产了n个产品,这些产品排成了一排,并且这批产品中只有2个不同的商品(分别用0和1表示2种商品)。将连续在一起的同一种商品当作一个“块”,并且从每个“块”的头取出一个商品放成一组,重复这个操作,直到所有的商品完成分组。特别的,在分组过程中,可能会出现某一“块”被取完,那么前后两“块”若是同一个商品,则将这两个“块”合并。比如有10个产品[1,1,0,0,1,1,1,0,1,1],其分组的过程如下:请回答下列问题:(1)若有12个产品[1,1,0,0,0,1,1,1,0,1,0,0],则这些产品可分为 组。 (2)函数kuai完成分块,并返回分块后的列表s1=[[起始位置,结束位置,商品代号],…]。例如a=[1,1,0,0,1,1,1,0,1,1],则分块后s1=[[0,1,1],[2,3,0],[4,6,1],[7,7,0],[8,9,1]]。请完成在划线处的填空。def kuai(n,a): s1=[];st=0 for i in : if a[i]!=a[i-1]: s1.append([st,i-1,a[i-1]]) st=i s1.append([st,n-1,a[n-1]]) return sl(3)实现分组并输出每组商品下标的Python程序如下,请在划线处填写合适的代码。#读入n和列表a,代码略s1=kuai(n,a) #根据列表a中的数据,完成分块cnt=0f=[False for i in range(n)]while ① : s2=[] while (len(s1)>0): #分组 t=s1.pop(0) #删除s1的头元素,并赋值给t st,ed,v=t[0],t[1],t[2] while (f[st]): st+=1 ② print(st,end=",") cnt+=1 if st==ed: continue st+=1 s2.append([st,ed,v]) print() while (len(s2)>0): #合并相同商品 t1=s2.pop(0) #删除s2的头元素,并赋值给t1 while (len(s2)>0): t2=s2[0] if t1[2]==t2[2]: s2.pop(0) #删除s2的头元素 ③ else: break s1.append(t1)答案 (1)3 (2)range(1,n)(3)①cnt!=n或len(s1)>0 ②f[st]=True③t1[1]=t2[1]解析 (1)第1轮值为0,2,5,8,9,10。第2轮值为1,3,6,11。第3 轮值为4,7。(2)①函数功能找出连续相同的数值的块,并把每一块的起始位置、结束位置与值保存在列表中。st保存的是相同块的起始位置,从数组第2个元素开始遍历,若相同遍历下一个,若不同连续块结束,当前i-1即为结束的位置,i为下一个块的起始位置。(3)①当s1列表为空时结束循环,cnt为记录分组的商品个数,当cnt值为n时,所有商品被分组,结束循环。②取出所有分组的头部下标并标记,若已分配的商品标记为True,从该段起点位置开始遍历,找到第一个False的退出,将该商品分组,并标记为True,将新的分组记录再s2中。③对s2中的分组进行合并,若连续两组商品值相同(t1[2]==t2[2]),将s2的头节点合并到t1内,故更新t1的终点下标。浙江省普通高校招生信息技术选考模拟卷(十五) 一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)阅读下列材料,回答第1至6题:某超市推出“自主购物”模式。顾客只要在该超市APP中进行人脸数据的录入,并充值或绑定银行卡,即可进入超市自主购物。超市安装了众多传感器与摄像头,当顾客从货架上拿下商品,系统通过人脸识别、图像识别等技术,将商品加入顾客的虚拟购物车。当顾客将商品放回货架,系统会从虚拟购物车中将该商品删除。当顾客走出超市时,系统自动从该顾客的账户中扣除消费金额,并在APP中发送扣款通知。超市中还设立了机器人导购员,顾客可通过与其对话寻求帮助。1.下列关于该系统中数据和信息的说法,不合理的是( )A.该系统中的数据只有图像这一种表现形式B.该系统数据库中的数据是以二进制形式存储的C.若系统服务器遭到破坏,则其保存的信息可能会损坏D.系统根据顾客所购商品计算出消费金额,体现了信息的可加工处理性2.下列关于该系统信息安全与保护的做法,合理的是( )A.随意分享顾客的消费数据B.定期备份该超市系统中的数据C.以明文方式保存顾客的注册信息D.超市不营业的时候关闭系统防火墙3.为使系统更精准地识别顾客身份及商品,下列方法可行的是( )A.提升超市的网速B.增加超市商品的种类C.对识别的算法模型进行优化D.完善机器人导购员语料库中的资料4.下列关于该系统组成与功能的说法,不合理的是( )A.可利用消费数据分析顾客的购物倾向B.超市内用于人脸识别的摄像头,属于该系统的硬件C.系统从顾客账户中扣除消费金额属于数据输入功能D.停电导致顾客无法“自主购物”,说明系统对外部环境有依赖性5.下列关于该系统提供的服务,未涉及人工智能技术的是( )A.对顾客所拿商品进行图像识别B.对顾客进行人脸识别确认身份C.机器人导购员帮顾客解答问题D.系统从顾客账户中扣除消费金额6.若顾客正常购物出超市后,手机迟迟未收到扣款通知,不可能的原因是( )A.超市服务器出现故障B.顾客的手机未连接网络C.超市网络的数据通信系统发生故障D.顾客的手机与超市服务器不在同一局域网中7.某算法部分流程图如图所示,若a、b所有元素初始值都是0,p的初始值也是0,依次输入580、570、565、564、564、520、520、520、0后,a[4]和b[4]的值分别为( )A.520 3 B.564 2C.520 2 D.0 18.某非完全二叉树包含5个节点,中序遍历为ABCDE,添加1个节点F后变成完全二叉树。以下对于该完全二叉树的说法,正确的是( )A.根节点可能为DB.后序遍历可能为AFBEDCC.节点B的父节点一定是AD.深度为3,节点E在第二层9.某队列允许在其两端进行入队操作,但仅允许在一端进行出队操作。若元素a,b,c,d,e依次入此队列后再进行出队操作,则不可能得到的出队序列是( )A.b,a,c,d,e B.d,b,c,a,eC.d,b,a,c,e D.e,c,b,a,d10.有如下Python程序段:import random as rda=[7,9,5,8,6,4]k=2*rd.randint(0,2)+1for i in range(k,len(a)): for j in range(len(a)-1,i,-1): if a[j] a[j-1],a[j]=a[j],a[j-1]该程序段执行后,a中各元素值不可能的是( )A.[7,4,5,6,8,9] B.[7,9,4,5,6,8]C.[7,9,5,4,6,8] D.[7,9,5,8,6,4]11.有如下Python程序段:a=[13,23,34,44,55,67,78,80,85,90]i=0;j=9s=[-1]*4;top=-1;n=0key=int(input())while i<=j: m=(i+j) // 2 if a[m]>=key: j=m-1;n+=1 top+=1;s[top]=m else: i=m+1;n-=1 if top!=-1: top-=1下列有关该程序段的说法,正确的是( )A.i的值不一定等于j+1B.n的值最小为-3,最大为4C.输入任意key的值,top的最大值为3D.若输入key的值为67,则s的值为[7,5,-1,-1]12.已知链表a存放了学生ID和借阅图书书名,链表b存放了学生ID和姓名。两链表节点都按学生ID 升序存放,如图a和b所示。链表a的头指针指向额外的空元素。现要将两链表中有共同学生ID的节点连接成一个新链表,如图c所示。ha=q=0;p=hawhile a[p][2]!=-1: tp=a[p][2] if q==-1: a[p][2]=-1 break if a[tp][0]==b[q][0]: a[tp].append(b[q][1]) ① elif a[tp][0]>b[q][0]: q=b[q][2] else: ② #从ha的下一个位置开始输出链表a,输出结果即为两表连接结果,代码略( )A.①q=b[q][2] ②p=a[p][2]B.①p=a[p][2] ②a[p][2]=a[tp][2]C.①tp=a[tp][2] ②p=a[tp][2]D.①p=tp ②p=a[tp][2]二、非选择题(本大题共3小题,其中第13题7分,第14题10分,第15题9分,共26分)13.某物品柜有5层,每层有10个格子,每个格子只能放一个物品。输入一组物品的高度值(按降序排列),将这些物品放在同一层的连续格子中。第一步:查找存放物品的格子。从第1层开始查找,若该层物品柜连续空格数量小于物品数量,则查找下一层。查找5层后还是不能找到连续存放位置,输出“不能连续存放”。若在某一层中找到符合要求的连续空格子,则进行第二步:将物品按中间高两端低的原则存放物品。先将高度最高的物品存放在连续空格的中间位置(若空格数量为偶数,则放在中间靠左位置),接着依次将物品按先右后左的顺序依次存放。如输入物品高度为8,5,2,1,则依次放在第1排的第5,6,4,7的位置。第一排各个格子存放物品高度如图所示,其中0表示未存放物品。0 0 0 2 8 5 1 0 0 0(1)输入第1组物品高度依次为8,5,2,第2组依次为9,6,3,1,则高度为3的物品存放在第1排第 (填数字)个格子中。 (2)实现该功能的Python程序段如下,将空白处填写完整。#将已经存放的物品高度存储在数组a中,如:[[0,9,6,2,8,5,1,0,0,0],[0,0,1,7,10,9,2,0,0,0],……],代码略。s=input("输入一组降序的物品高度,用逗号分开:")wp=list(map(int,s.split(","))) #输入的数字转换成列表flag=False;i=0while hang<5 and not flag: beg=0 for j in range(10): if a[hang][j]==0: #物品柜格子为0表示没有存放物品 if j-beg+1>=len(wp): end=j;flag=True else: if flag: break ① hang+=1if flag: ② a[hang][wz]=wp[0] i=1 while i if ③ : wz-=i else: wz+=i a[hang][wz]=wp[i] i+=1else: print("不能连续存放")#输出物品柜的存放情况,代码略14.小明为某单位搭建智能节能系统,通过在各场所布置智能终端和传感器采集数据,使用网络传输到服务器,分析数据后能精准判断高能耗或设备异常区域,进行自动调整或人工管理。用户可以通过浏览器查看实时数据和历史数据。请回答以下问题:(1)关于信息系统的数据传输,以下说法不正确的是 (单选,填字母)。 A.用户在客户端电脑查看记录时,一般需要通过网络来实现数据的传输B.分布在各个区域的智能终端可以通过无线网络与服务器传输数据C.传感器必须通过网络将数据传输到智能终端(2)关于该信息系统的软件设计,下列说法正确的是 (多选,填字母)。 A.系统中数据采集主要依靠各种传感器来完成B.若该系统采用C/S架构,则只需编写服务器端程序C.服务器端程序可以采用基于Python的FlaskWeb框架编写D.在智能终端程序中,需编写路由和视图函数,用以建立URL到程序代码的关联(3)系统搭建完成后,采集数据过程中发现2个办公室的相关数据互换。产生此问题的硬件原因可能是 (单选,填字母)。 A.这两个办公室的相关传感器有故障B.读取相关数据的部分代码编写错误C.这两个办公室的相关传感器和智能终端接口连接有误(4)在系统实际运行过程中,发现数据被用户非法访问,请从安全角度提出2条改进建议。(5)将某天所有办公区域的用电数据导出,部分数据如图a所示。编写代码,输入任意2个办公区编号,绘制这2个办公区的各工作时间段用电对比图,如图b所示。完成相关功能的代码如下,请在划线处填入合适代码:def pro(df,n): df1=① df2=df1[df1.时间>="09"] df2=df2[df2.时间<="14"] plt.plot(② ,label=n) #绘制图形 plt.legend()#导入相关模块,代码略df=pd.read_excel("data.xlsx")n1=input("查询 1:");n2=input("查询 2:")pro(df,n1);pro(df,n2)plt.title(n1+"和"+n2+"工作时间用电对比")15.工厂生产了n个产品,这些产品排成了一排,并且这批产品中只有2个不同的商品(分别用0和1表示2种商品)。将连续在一起的同一种商品当作一个“块”,并且从每个“块”的头取出一个商品放成一组,重复这个操作,直到所有的商品完成分组。特别的,在分组过程中,可能会出现某一“块”被取完,那么前后两“块”若是同一个商品,则将这两个“块”合并。比如有10个产品[1,1,0,0,1,1,1,0,1,1],其分组的过程如下:请回答下列问题:(1)若有12个产品[1,1,0,0,0,1,1,1,0,1,0,0],则这些产品可分为 组。 (2)函数kuai完成分块,并返回分块后的列表s1=[[起始位置,结束位置,商品代号],…]。例如a=[1,1,0,0,1,1,1,0,1,1],则分块后s1=[[0,1,1],[2,3,0],[4,6,1],[7,7,0],[8,9,1]]。请完成在划线处的填空。def kuai(n,a): s1=[];st=0 for i in : if a[i]!=a[i-1]: s1.append([st,i-1,a[i-1]]) st=i s1.append([st,n-1,a[n-1]]) return sl(3)实现分组并输出每组商品下标的Python程序如下,请在划线处填写合适的代码。#读入n和列表a,代码略s1=kuai(n,a) #根据列表a中的数据,完成分块cnt=0f=[False for i in range(n)]while ① : s2=[] while (len(s1)>0): #分组 t=s1.pop(0) #删除s1的头元素,并赋值给t st,ed,v=t[0],t[1],t[2] while (f[st]): st+=1 ② print(st,end=",") cnt+=1 if st==ed: continue st+=1 s2.append([st,ed,v]) print() while (len(s2)>0): #合并相同商品 t1=s2.pop(0) #删除s2的头元素,并赋值给t1 while (len(s2)>0): t2=s2[0] if t1[2]==t2[2]: s2.pop(0) #删除s2的头元素 ③ else: break s1.append(t1) 展开更多...... 收起↑ 资源列表 浙江省普通高校招生信息技术选考模拟卷(十五).docx 浙江省普通高校招生信息技术选考模拟卷(十五)无答案.docx