GESP Python 6级 2024.09
以下( )没有涉及Python语言的面向对象特性支持。
Python中构造一个 class
Python中调用 printf 函数
Python中调用用户定义的类成员函数
Python中构造来源于同一基类的多个派生类
关于Python中面向对象的类的继承,下面说法错误的是( )
子类可以通过继承不能访问到父类的所有属性
多个子类可以继承同一个父类
子类和子类产生的对象都可以通过句点的方式拿到父类
python中支持多继承
有6个元素,按照 6,5,4,3,2,1 的顺序进入栈S,下列( )的出栈序列是不能出现的( )。
5,4,3,6,1,2
4,5,3,1,2,6
3,4,6,5,2,1
2,3,4,1,5,6
采用如下代码实现检查输入的字符串括号是否匹配,横线上应填入的代码为( )。
class Stack:
def __init__(self):
self.items = []
def is_empty(self):
return not self.items
def push(self, item):
self.items.append(item)
def pop(self):
if not self.is_empty():
return self.items.pop()
def peek(self):
if not self.is_empty():
return self.items[-1]
def size(self):
return len(self.items)
def paren_match(expr):
s = Stack()
balanced = True
index = 0
while index < len(expr) and balanced:
symbol = expr[index]
if symbol in '([{':
________________
else:
if s.is_empty():
balanced = False
else:
top = s.pop()
if not matches(top, symbol):
balanced = False
index += 1
if balanced and s.is_empty():
return True
else:
return False
def matches(opening, closing):
opens = '([{'
closers = ')]}'
return opening in opens and closers.index(closing) == opens.index(opening)
s.push(symbol)
s.pop(symbol)
s.push(index)
s.pop(index)
下面代码判断队列的第一个元素是否等于 ,并删除该元素,横向上应填写( )。
import queue
q = queue.Queue()
a = 'a'
if ________________________________________
q.get()
print('元素 {} 是队列的第一个元素,并已被移除。'.format(a))
else:
print('队列的第一个元素不是 {}.'.format(a))
not q.empty() and q.queue[0] != a:
not q.empty() and q.queue[0] == a:
q.empty() and q.queue[0] == a:
q.empty() and q.queue[0] != a:
假设字母表 {a,b,c,d,e} 在字符串出现的频率分别为 10%,15%,30%,16%,29%。若使用哈夫曼编码方式对字母进行二进制编码,则字符 abcdef 分别对应的一组哈夫曼编码的长度分别为( )。
4, 4, 1, 3, 2
3, 3, 2, 2, 2
3, 3, 1, 2, 1
4, 4, 1, 2, 2
以下Python代码实现 位的格雷码,则横线上应填写( )。
def generate_gray_code(n):
if n <= 0:
return []
if n == 1:
return [0, 1]
gray_code = generate_gray_code(n - 1)
————————————————————————————————————————
for x in gray_code]
return gray_code + inverted_gray_code
inverted_gray_code = [int(('0' * n + bin(x)[2:])[-n:], 2)
inverted_gray_code = [int(('1' * n + bin(x)[2:])[-n:], 2)
inverted_gray_code = [int(('1' * n + bin(x)[1:])[-n:], 2)
inverted_gray_code = [int(('1' * n + bin(x)[2:])[n:], 2)
给定一棵二叉树,其前序遍历结果为:ABDECFG,中序遍历结果为:DEBACFG,则这棵树的正确后序遍历结果是( )。
EDBGFCA
EDGBFCA
DEBGFCA
DBEGFCA
一棵有 个结点的完全二叉树用数组进行存储与表示,已知根结点存储在数组的第 个位置。若存储在数组第个位置的结点存在兄弟结点和两个子结点,则它的兄弟结点和右子结点的位置分别是( )。
8, 18
10, 18
8, 19
10, 19
二叉树的深度定义为从根结点到叶结点的最长路径上的结点数,则以下基于二叉树的深度优先搜索实现的深度计算函数中横线上应填写( )。
class Node:
def __init__(self, data):
self.data = data
self.left = None
self.right = None
def max_depth(root_node):
if root_node is None:
return 0
else:
left_depth = max_depth(root_node.left)
right_depth = max_depth(root_node.right)
_______________________________________
return max(left_depth, right_depth)
return min(left_depth, right_depth) + 1
return max(left_depth, right_depth) + 1
return max(left_depth, right_depth) - 1
