高中信息技术浙教版(2019)选修1:3.2 队列 课后练习(3份,含答案)

资源下载
  1. 二一教育资源

高中信息技术浙教版(2019)选修1:3.2 队列 课后练习(3份,含答案)

资源简介

作业练习
课程基本信息
学科 信息技术 年级 (高三) 学期 (秋季)
课题 (3.2 队列)
教科书 书 名:选择性必修1 数据与数据结构 出版社:浙江教育出版社
学生信息
姓名 学校 班级 学号
作业练习
1.依次在初始为空的队列中将元素“h”,“e”,“l”,“l”,“o”入队以后,紧接着做了两次删除操作,此时的队首元素是( ) A.“h” B.“e” C.“l” D.“o” 2.下列对队列的描述,正确的是( ) A.队列的特点是先进后出 B.在队列中,允许插入的一端称为队首,允许删除的一端称为队尾 C.刚建立的队列,队首指针和队尾指针均为0 D.出队操作时,先将队首指针加1,然后再将队首元素出队 3小王在使用队列解决问题的过程中,初始时,队列为空,队列的首指针和尾指针分为为head、tail,接着小王开始进行了一系列的操作,操作序列为:入队、入队、入队、出队、入队、入队、出队、出队、出队、入队、入队,则操作结束时head和tail的值分别为( ) A.4 7 B.4 8 C.5 7 D.5 8 4.有1个队列,队首到队尾的元素依次为8,3,2,9,5。约定:T操作是指队列中1个元素出队后再入队,Q操作是指队列中l个元素出队。则经过TTTQTTQ系列操作后,队列中队首到队尾的元素依次为( ) A.2,9,5 B.2,5,8 C.5,8,2 D.8,3,2 5.创建一个容量为3的队列,元素2,3,5,1,3,5,2依次等待入队。入队规则为: ①若当前待入队元素已经在队列中,则跳过该元素,否则转② ②若当前队列已满,将队首元素出队列,否则转③ ③将当前待入队元素入队列 操作完成后,队列中的元素为(  ) A.2,3,5,1 B.1,2,3,5 C.2,3,5 D.5,1,2 6.有如下python 程序段,使用长度为3的列表q模拟队列的出队、入队活动: q=[1,2,3] ys=[] for i in range(4,10): ys.append(q[0]) q[0]=q[1] q[1]=q[2] q[2]=i print(ys,q) 程序运行结束后,列表ys中元素的数量为_____________。 7.有如下python程序段: from queue import Queue q=Queue(5) print(“能存放的最多元素个数=”,q.maxsize) #q.maxsize 返回最大元素个数 for i in range(q.maxsize): q.put(3*i) print(“是否满:”,q.full()) #q.full 返回True或False for i in range(q.qsize()): print(“当前实际长度=”,q.qsize()) print(“取出元素:”,q.get()) 从队列中取出的元素依次是____________。 8.银行叫号排队系统:客户去银行办理业务时,需先从取号机上取一张排队号,然后等待叫号系统叫号去柜台办理业务。请设计算法,实现该叫号系统的功能。 (1)思考:取号、叫号的顺序符合__________数据结构的特征? (2)算法设计: ①建立队列que,队列的初始长度设置为1000,初始值均为-1。设置队首指针变量head,队尾指针变量tail的值均为0。 ②设计输入提示界面,实现多次取号和叫号功能。用x存储输入的数字,如果x=1,实现取号功能;x=2,实现叫号功能;x=3,程序退出。 ③当x=1时,分配一个号码,入队指针tail加1,并显示需要等待的人数。 ④当x=2时,先判断que队列是否为空。若为空,则显示无等待的人员;否则,que队首元素出队,head指针加1,并显示可以办理业务的客户号码。 (3)算法实现,并在划线处填入正确的语句。 que=[-1]*100;head=tail=0 print("1.新到顾客(取号)") print("2.下一个顾客(叫号)") print("3.程序结束") x=int(input("请输入操作编号:")) while x!=3: if x==1: que[tail]=tail print("您当前的号码为:A%d,需要等待的人数为:%d"%( ___①_ ,___②__)) __③_______ if x==2: if ____④_________: print("对不起,没有等待的客户!") else: print("请A%d的客户准备,马上为您办理业务!"% _____⑤___ ) ____⑥_______ x=int(input("请输入操作编号:")) 答案: 1-5 ACCABD 6、6 7、0,3,6,9,12 8、(1)①que[tail], ②tail-head ③tail=tail+1 ④head==tail ⑤que[head] ⑥head=head+1作业练习
课程基本信息
学科 信息技术 年级 高二 学期 春季
课题 队列的应用
教科书 书 名:《数据与数据结构》教材 出版社:浙江教育出版社
学生信息
姓名 学校 班级 学号
作业练习
1.卫星系统: 有一套环球卫星通讯系统,由n颗通讯卫星组成,编号为1到n,呈环状。为了保证信息通信的安全,在信息传递时将一条信息分割到各个卫星中传递。按以下规则接收信号:先接收第1号卫星上的信号,再间隔1颗卫星接收信号,这时恰好是第2号卫星上的信号;接下来间隔2颗卫星,接收到是第3号卫星上的信号。依此类推,每次间隔的卫星数量为上一次接收到的卫星编号。一颗卫星只接收一次信号,接收过的卫星不再接收第二次信号,即此卫星不计算在间隔的卫星数量中。按此规则,正好可以接收到所有n颗卫星的信号,并组成最终信息。 按上述规则,当有5颗卫星时,它们在环上的卫星编排顺序为:1 3 2 5 4,4号卫星的下一颗卫星是1号卫星。输入卫星数量n,从位置1开始输出环上每个位置上的卫星编号。程序如下,请完善代码。 n=int(input()) a=[0]*(n+1) a[1]=1 t=1 times=0 for i in range(2,n+1): c=0 while ① : t=t+1 ② if t>n: t=1 if a[t]==0: c+=1 a[t]= ③ # 表示位置t上放置卫星i for i in range(1,n+1):#检举环上位置,输出每个位置上的卫星编号 print(a[i],end=" ") print() print(times) 参考答案: ①c课程基本信息
学科 信息技术 年级 高二 学期 春季
课题 初识队列
教科书 书 名:《数据与数据结构》教材 出版社:浙江教育出版社
学生信息
姓名 学校 班级 学号
作业练习
一、选择题 1. 队列是一种线性表,入队操作限定在( ) A. 队首 B.中间 C.队尾 D.两端 2.“甲乙丙丁”四人按顺序入队,出队顺序为( ) A. 甲乙丙丁 B. 丁丙乙甲 C. 丙丁甲乙 D. 乙甲丁丙 3. 对某队列进行入队、出队操作,初始时,队首指针head和队尾指针tail都指向位置0。当进行了3次入队操作,1次出队操作后,head、tail的值分别为( ) A.3,1 B. 2,1 C.4,2 D.4 1 一、填空题 1.队列是限制插入只能在表的一端,而删除在表的另一端进行的线性表,期操作特点是_________。 2.20个人围成一圈,他们的学号分别1,2,……,10,从第一个人开始数起,每数到4,这个人从圈里出来,再继续数。凡从圈里出来的位置,下次数时,就跳过不再计数,直到所有人出圈。请打印从圈里出来的人的顺序。_________________________________。 二、简答题 1. 有11人,6男5女,在玩排队游戏。初始时,11人排成一个纵队A,并给他们标号为1,2,3,……,11号。排队游戏规则为:每次纵队A的前2人出队,按序插入到纵队B中,纵队A中第3人出队后,并排到纵队A的队尾;循环操作直至纵队A为空,且全部排到纵队B中。现要求纵队B,男女交替,则纵队A中,男女如何安排? 答案: 一、选择题 1.C 2.A 3.A 二、填空题 1.先进先出。 2.4 8 2 7 3 10 9 1 6 5 三、简答题 1.答:先按游戏规则,11个人排的纵队A,如下表: 1234567891011
按照游戏规则,纵队A和纵队B变化如下: A45678910113
B12
A789101136
B1245
A1011369
B124578
A693
B1245781011
A3
B124578101169
A
B1245781011693
按照原始排队,得到的纵队B(男女交替)的编号为: B1245781011693
由于纵队B为一男一女,则初始时,纵队A对应的性别为: A1234567891011男女男男女男男女女男女

展开更多......

收起↑

资源列表