全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
将数据元素 4、8、12 依次采用尾插法插入带头结点的单链表(每个新结点均插在表尾),建表完成后,从首元结点出发按值查找元素 12,则指针需移动 ____ 次到达该结点;若改用头插法依次插入 4、8、12,则建表后链表中数据元素的排列顺序为 ____。
登录后查看答案
某循环队列采用牺牲一个存储单元区分队空与队满,数组下标为 0 至 10,front 指向队头元素之前的位置,rear 指向队尾元素所在位置。现 front=8、rear=3,队列处于哪种状态? A. 队空 B. 队满 C. 既非队空也非队满 D. 仅凭这两个指针无法判断
采用牺牲一个存储单元的循环队列,约定 front 指向队头元素,rear 指向下一次入队的位置。下列哪一项正确给出了队空与队满的判定条件? A. 队空:front==rear;队满:(rear+1)%MaxSize==front B. 队空:(rear+1)%MaxSize==front;队满:front==rear C. 队空:front==0;队满:rear==MaxSize−1 D. 队空:front==rear;队满:rear==front
顺序表原有 10 个元素。先从所有合法位序中等概率选一处插入新元素,再删除所得顺序表的第 4 个元素。若按元素实际移动次数计,认为这两步操作的平均总移动次数为 11 次。判断该说法是否正确。
有如下 Python 程序: class Robot: def __init__(self, code): self.code = code def speak(self): return 'I am ' + self.code r1 = Robot('A1') r2 = r1 r2.code = 'B2' print(r1.speak()) 程序运行的输出结果是什么? A. I am A1 B. I am B2 C. I am code D. 程序报错,因为 speak 缺少参数
执行以下代码后,变量 p 的值为 ___。 L = [12, 5, 9, 3] p = L q = L[:] L.sort(reverse=True) p.insert(2, 7) q.append(L[-1]) L = q + p
在带头结点的单链表中,指针 p 指向结点 m(其后继为结点 n),指针 s 指向新结点 k。现依次执行了三个语句:① q=p->next; ② p->next=s; ③ ____; 完成了在 p 之后插入 s 的操作。随后要删除刚插入的结点 s 本身(p 仍指向结点 m),应执行的语句序列为 p->next=____; free(s);。若有人把插入的两条关键语句写成 s->next=p->next; 与 p->next=s; 的相反顺序,将导致结点 ____ 的后继链丢失。
顺序表原有 n 个元素。在第 5 个位置插入一个新元素时,恰有 12 个原元素向后移动;随后删除插入后表的第 9 个元素。两步操作中元素移动次数之和是多少? A. 19 次 B. 20 次 C. 21 次 D. 22 次
判断:执行以下代码时,调用 b.reveal() 会因没有手动传入 self 而报错。 class Badge: def __init__(self, code): self.code = code def reveal(self): return self.code b = Badge("K7")
阅读以下 Python 代码: score = 50 def outer(): score = 10 def inner(): ____ score score = score + 5 inner() return score print(outer()) print(score) 第一空应填写关键字 ____(使 inner 能修改外层函数 outer 的局部变量 score);程序运行后,第一行输出为 ____,第二行输出为 ____。
判断下列说法是否正确:在 Python 中,若 f = lambda n: n * f(n - 1)(未写终止条件),则调用 f(5) 时会因递归深度超过默认上限(约 1000 层)而立即抛出 RecursionError;若补充终止条件 f = lambda n: 1 if n == 0 else n * f(n - 1),则 lambda 也能定义合法的递归函数。
已定义函数: ```python def describe(item, tone="plain", *tags): return item, tone, tags ``` 调用 `describe("tea", "warm", "gift", "local")` 的返回值是什么? A. ("tea", "warm", ("gift", "local")) B. ("tea", "plain", ("warm", "gift", "local")) C. ("tea", "warm", ["gift", "local"]) D. ("tea", "warm", "gift", "local")
执行以下代码后,data 与 result 的值分别是什么? data = [12, 5, 9, 5, 2] view = data[1:4] view.remove(5) view.insert(1, 7) data.append(4) data.sort() result = sorted(view) A. data=[2, 4, 5, 5, 9, 12],result=[5, 7, 9] B. data=[2, 4, 5, 5, 9, 12],result=[9, 7, 5] C. data=[12, 5, 9, 5, 2, 4],result=[5, 7, 9] D. data=[2, 4, 5, 5, 9, 12],result=None
已知 d = {'北站': 7}。有人断言:执行 d.get('遗址', d['旧站']) 不会引发 KeyError,因为 get 会在键不存在时返回默认值。判断该断言正误。
在单链表中,指针 p 指向结点 x(其后继为结点 a),指针 s 指向新结点 y。若误将插入语句顺序颠倒,先执行 p->next=s;,再执行 s->next=p->next;,则此时 y 的后继结点是____,结点 a 将从链表中____(填:保留 / 丢失)。由此可知,正确的插入顺序应先执行 s->next=p->next;,后执行 p->next=s;,这样才能保证在 x 与 a 之间插入 y 且不丢失后继链。
顺序表 L 中已有 n 个元素(n≥2),元素按位序 1 至 n 存储。现依次执行两步操作:第一步,删除第 2 个元素;第二步,在第一步删除后的第 n 个位置插入一个新元素(若该位置合法)。已知两步操作总共移动了 7 个元素,则 n 的值是( ) A. 8 B. 9 C. 10 D. 11
设单链表中 p 指向的结点有后继结点。删除该后继结点时,先执行 free(p->next),再执行 p->next=p->next->next,仍能正确删除该结点且保留其后续链表。判断该说法是否正确。
带头结点的单链表依次采用头插法插入数据元素 2、6、9,建表后数据结点的顺序为 2、6、9;按值查找元素 6 时,从头结点出发,指针移动 2 次即可到达该结点。判断:上述表述是否正确?
将数据元素 3、5、7、9 依次采用头插法插入带头结点的单链表(每插入一个元素,新结点均插在头结点之后),建表完成后,再在该链表中按值查找元素 7。若查找从首元结点开始按序号计数,则元素 7 所在结点的序号是(查找时依次比较结点的数据域) A. 1 B. 2 C. 3 D. 4
阅读以下程序,判断结论是否正确: class Card: def __init__(self, text): self.text = text def rename(self, text): text = self.text def read(self): return self.text card = Card("初始") card.rename("更新") 结论:调用 card.rename("更新") 后,card.read() 的返回值是 "更新"。