信息技术来源:浙江省新阵地教育联盟2026届第二次联考技术试题卷
第 12 题
答案与解析
本题解析
参考答案
D
程序分析
nums = [3, 1, 4, 2]
stack = []
while len(nums) > 0:
if randint(0,1) == 0: # randint(a,b)随机生成一个[a,b]范围内的整数
...
else:
...程序从给定的nums和空列表stack开始。只要nums非空,就随机选择两个分支之一执行;循环在nums为空时结束。
nums.append(nums.pop(0))pop(0)取出并删除首项,append再将它放到末尾,相当于队首元素出队后重新入队,nums的元素个数不变。重复这一操作可以使任意一个剩余元素来到队首。
if len(stack) > 0 and nums[0] > stack[-1]:
stack[-1] = nums.pop(0)
else:
stack.append(nums.pop(0))这一分支从nums队首取走一个元素。stack以列表末端作为栈顶:若非空且新元素大于栈顶,就替换栈顶;否则将新元素追加到栈顶。替换只改变末项的值,不改变stack长度,追加则使长度增加1。
选项分析
问题反馈
解析有疑问或显示异常?请先复制题目信息,再打开反馈表单填写。
题目编号:2026_03_G3_xinzhendi_q012
