内容正文:
利用AI生成随堂练习的操作说明
操作步骤:
(1)用手机将浙教版(2019)高中信息技术选择性必修1“3.2 队列”的内容拍成照片;
(2)在手机上打开Deepseek APP,将(1)中的照片上传到该软件的对话框中,并给出恰当的提示词:“请你根据以上教学内容,提供与之匹配的课堂练习题目(基础+扩展)”,然后确定;
(3)将生成的结果转发到微信电脑端的“文件传输助手”中,然后打开豆包官网或打开豆包桌面软件,将上述结果复制粘贴到豆包的对话框中,提出要求整理成word文档格式;
(4) 待文档生成后,下载word格式的文件,检查随堂练习(分层作业)文档的内容和格式,并进行微调,最后定稿。
以上就是利用AI工具生成随堂练习的全部过程,用到的AI工具有Deepseek、豆包,其中借助微信电脑端完成数据从手机到电脑端的共享,也可直接在电脑端登录网页版Deepseek,登录账号后也可实现数据deepseek手机端和电脑端的数据同步。
学科网(北京)股份有限公司
$
《3.2 队列》课堂分层练习
班级:________ 姓名:________ 学号:________ 得分:________
说明
1. 本练习分为基础巩固题(必做)、能力提升题(选做)、思维挑战题(选做)三个层次;
1. 基础题确保全员掌握核心知识,提升题针对中等及以上学生,挑战题面向学有余力学生;
1. 编程题可在 Python IDLE 中调试后,将代码与运行结果写在对应区域;
1. 建议完成时间:30 分钟(基础题 15 分钟,提升题 / 挑战题 15 分钟)。
一、基础巩固题(每题 5 分,共 20 分)
1. 选择题(每题 2.5 分)
(1)队列的存取原则是( )
A. 先进后出 B. 先进先出 C. 随机存取 D. 后进先出
(2)在顺序队列中,判断队列为空的条件是( )
A. head == tail B. head == 0 C. tail == 0 D. head > tail
2. 填空题(每题 2.5 分)
(1)队列允许插入的一端称为________,允许删除的一端称为________。
(2)在顺序队列中,入队操作是 que [] = x,然后 tail += 1;出队操作是 x = que [],然后 head += 1。
3. 简答题
简述队列的 “先进先出” 特性,并举例说明生活中的一个队列应用场景。
4. 编程题
补全以下代码,实现一个简单队列的入队和出队操作(队列最大长度为 5),并写出程序运行结果。
que = [""] * 5
head = 0
tail = 0
# 入队 "A", "B", "C"
for ch in ["A", "B", "C"]:
que[______] = ch
tail += 1
# 出队两次并打印
for _ in range(2):
print(que[______])
head += 1
代码补全:
运行结果:
二、能力提升题(每题 10 分,共 30 分)
1. 分析题
以下是一个字符串加密程序的部分代码,请说明其执行过程,并写出输入 "HELLO" 时的加密结果。
s = "HELLO"
que = [""] * 10
head = 0
tail = 0
for ch in s:
que[tail] = ch
tail += 1
while head < tail:
print(que[head], end="")
head += 1
if head < tail:
que[tail] = que[head]
tail += 1
head += 1
执行过程:
加密结果:
2. 编程题
仿照教材中的 “银行叫号系统”,编写一个 “食堂排队打饭系统”,要求如下:
1. 输入 1:取号,显示号码与等待人数;
1. 输入 2:叫号,显示当前服务号码;
1. 输入 3:退出;
1. 输入 4:显示当前所有等待号码。
代码实现:
3. 思考题
什么是 “假溢出”?循环队列如何解决这个问题?请画出示意图说明。
“假溢出” 定义:
循环队列解决原理:
示意图:
(在下方空白处绘制,标注 head、tail 指针及数组索引)
三、思维挑战题(每题 10 分,共 30 分)
1. 编程题
使用循环队列实现一个长度为 5 的队列,支持入队、出队和判断队列是否已满的功能(提示:使用取模运算 %)。
代码实现:
2. 应用题
假设有一个打印任务队列,每个任务打印时间不同。编写程序模拟打印过程:每打印一个任务(出队),显示 “打印完成:任务 X”,并提示下一个任务。如果队列为空,则提示 “无任务”。
代码实现:
3. 拓展题
查阅资料,了解 “广度优先搜索(BFS)” 中队列的作用,并用一句话描述。
答案:
参考答案(教师专用)
一、基础巩固题
1. (1)B (2)A
1. (1)队尾、队首 (2)tail、head
1. 特性:队列中元素只能从队尾插入,从队首删除,先插入的元素先被删除。
示例:超市付款排队、公交车上车排队等。
1. 代码补全:que [tail]、que [head];运行结果:A、B
二、能力提升题
1. 执行过程:先将字符串 “HELLO” 入队,再通过循环依次出队队首元素并打印,若队列还有元素,则将新队首元素再次入队,重复该过程直到队空。
加密结果:HLLEO
1. 参考代码:
que = []
head = 0
num = 1 # 初始号码
while True:
choice = int(input("1-取号 2-叫号 3-退出 4-显示等待队列:"))
if choice == 1:
que.append(num)
print(f"取号成功!您的号码是{num},当前等待人数:{len(que)-head-1}")
num += 1
elif choice == 2:
if head print(f"请号码{que[head]}到窗口打饭!")
head += 1
else:
print("当前无等待人员!")
elif choice == 3:
print("退出系统!")
break
elif choice == 4:
if head ):
print(f"当前等待号码:{que[head:]}")
else:
print("无等待号码!")
else:
print("输入错误,请重新选择!")
1. 假溢出:顺序队列中,tail 指针到达数组末尾后,即使数组前端有空闲空间,也无法继续入队的现象。
解决原理:将队列数组视为环状,通过取模运算让 tail 指针到达末尾后绕回数组开头,充分利用空闲空间。
三、思维挑战题
1. 参考代码:
class CircularQueue:
def __init__(self, size):
self.size = size
self.que = [""] * size
self.head = 0
self.tail = 0
def is_full(self):
return (self.tail + 1) % self.size == self.head
def enqueue(self, x):
if not self.is_full():
self.que[self.tail] = x
self.tail = (self.tail + 1) % self.size
print(f"入队成功:{x}")
else:
print("队列已满,无法入队!")
def dequeue(self):
if self.head != self.tail:
x = self.que[self.head]
self.head = (self.head + 1) % self.size
print(f"出队成功:{x}")
return x
else:
print("队列为空,无法出队!")
# 测试
cq = CircularQueue(5)
cq.enqueue("A")
cq.enqueue("B")
cq.dequeue()
cq.enqueue("C")
cq.enqueue("D")
cq.enqueue("E")
cq.enqueue("F") # 队列已满提示
1. 参考代码:
import time
class PrintQueue:
def __init__(self):
self.que = []
self.head = 0
def add_task(self, task, time_needed):
self.que.append((task, time_needed))
print(f"添加打印任务:{task}(所需时间:{time_needed}秒)")
def print_task(self):
if self.head .que):
task, t = self.que[self.head]
print(f"开始打印:{task},预计{t}秒后完成...")
time.sleep(t) # 模拟打印时间
print(f"打印完成:{task}")
self.head += 1
# 提示下一个任务
if self.head que):
print(f"下一个任务:{self.que[self.head][0]}")
else:
print("无后续任务!")
else:
print("无任务可打印!")
# 测试
pq = PrintQueue()
pq.add_task("文档1", 2)
pq.add_task("图片2", 3)
pq.print_task()
pq.print_task()
pq.print_task()
1. 答案:广度优先搜索(BFS)中,队列用于存储待访问的节点,确保按 “先访问的节点先处理其邻接节点” 的顺序遍历,实现层级搜索。
学科网(北京)股份有限公司
$