python计算机二级易错选择题汇总。

问题描述:

python计算机二级易错选择题汇总:

问题解答:

二叉树和部分列表操作的方法掌握不牢固。

————————————————————————————

7、设二叉树的前序序列为ABCDEF,中序序列为BDFECA,则该二叉树的深度为()(根结点为第1层)
A.6
B.2
c.3
D.4

要确定二叉树的深度,可以通过前序序列和中序序列构建二叉树,然后计算树的深度。给定:

  • 前序序列:ABCDEF
  • 中序序列:BDFECA

步骤 1:构建二叉树

  1. 前序序列的第一个节点是根节点

    • 根节点是 A。
  2. 在中序序列中找到根节点的位置

    • 根节点 A 在中序序列中的位置是最后一个位置 (6)。
  3. 中序序列被根节点 A 分割成左子树和右子树

    • 左子树的中序序列:BDFEC
    • 右子树的中序序列:空
  4. 根据左子树的中序序列长度来分割前序序列

    • 左子树的前序序列:BCDEF
    • 右子树的前序序列:空

步骤 2:递归构建左子树和右子树

继续递归构建左子树:

  1. 左子树的根节点是前序序列 BCDEF 的第一个节点 B。

  2. 在左子树的中序序列 BDFEC 中找到 B 的位置:

    • B 在位置 1。
  3. 分割左子树的中序序列:

    • B 的左子树的中序序列:空
    • B 的右子树的中序序列:DFEC
  4. 分割左子树的前序序列:

    • B 的左子树的前序序列:空
    • B 的右子树的前序序列:CDEF

继续递归构建 B 的右子树:

  1. B 的右子树的根节点是前序序列 CDEF 的第一个节点 C。

  2. 在 B 的右子树的中序序列 DFEC 中找到 C 的位置:

    • C 在位置 4。
  3. 分割 B 的右子树的中序序列:

    • C 的左子树的中序序列:DFE
    • C 的右子树的中序序列:空
  4. 分割 B 的右子树的前序序列:

    • C 的左子树的前序序列:DEF
    • C 的右子树的前序序列:空

继续递归构建 C 的左子树:

  1. C 的左子树的根节点是前序序列 DEF 的第一个节点 D。

  2. 在 C 的左子树的中序序列 DFE 中找到 D 的位置:

    • D 在位置 1。
  3. 分割 C 的左子树的中序序列:

    • D 的左子树的中序序列:空
    • D 的右子树的中序序列:FE
  4. 分割 C 的左子树的前序序列:

    • D 的左子树的前序序列:空
    • D 的右子树的前序序列:EF

继续递归构建 D 的右子树:

  1. D 的右子树的根节点是前序序列 EF 的第一个节点 E。

  2. 在 D 的右子树的中序序列 FE 中找到 E 的位置:

    • E 在位置 2。
  3. 分割 D 的右子树的中序序列:

    • E 的左子树的中序序列:F
    • E 的右子树的中序序列:空
  4. 分割 D 的右子树的前序序列:

    • E 的左子树的前序序列:F
    • E 的右子树的前序序列:空

继续递归构建 E 的左子树:

  1. E 的左子树的根节点是前序序列 F 的第一个节点 F。

  2. 在 E 的左子树的中序序列 F 中找到 F 的位置:

    • F 在位置 1。
  3. 分割 E 的左子树的中序序列:

    • F 的左子树的中序序列:空
    • F 的右子树的中序序列:空
  4. 分割 E 的左子树的前序序列:

    • F 的左子树的前序序列:空
    • F 的右子树的前序序列:空

此时,我们已经构建了整棵二叉树:

      A
     /
    B
     \
      C
     /
    D
     \
      E
     /
    F

步骤 3:计算深度

从根节点 A 到最深的叶节点 F,路径上的节点个数是 6 个,因此树的深度为 6。

正确答案是 A. 6。

——————————————————————————————————

9、设二叉树的前序序列为ABCDEF,中序序列为BDFECA,则该二叉树的后序序列为( )
A.ABCDEF
B.FEDCBA
C.BDFECA
D.CBAFED

为了确定二叉树的后序序列,我们需要先通过前序序列和中序序列构建二叉树,然后再进行后序遍历。给定:

  • 前序序列:ABCDEF
  • 中序序列:BDFECA

构建二叉树

  1. 前序序列的第一个节点是根节点

    • 根节点是 A。
  2. 在中序序列中找到根节点的位置

    • 根节点 A 在中序序列中的位置是最后一个位置 (6)。
  3. 中序序列被根节点 A 分割成左子树和右子树

    • 左子树的中序序列:BDFEC
    • 右子树的中序序列:空
  4. 根据左子树的中序序列长度来分割前序序列

    • 左子树的前序序列:BCDEF
    • 右子树的前序序列:空

构建左子树

继续递归构建左子树:

  1. 左子树的根节点是前序序列 BCDEF 的第一个节点 B。

  2. 在左子树的中序序列 BDFEC 中找到 B 的位置:

    • B 在位置 1。
  3. 分割左子树的中序序列:

    • B 的左子树的中序序列:空
    • B 的右子树的中序序列:DFEC
  4. 分割左子树的前序序列:

    • B 的左子树的前序序列:空
    • B 的右子树的前序序列:CDEF

继续递归构建 B 的右子树:

  1. B 的右子树的根节点是前序序列 CDEF 的第一个节点 C。

  2. 在 B 的右子树的中序序列 DFEC 中找到 C 的位置:

    • C 在位置 4。
  3. 分割 B 的右子树的中序序列:

    • C 的左子树的中序序列:DFE
    • C 的右子树的中序序列:空
  4. 分割 B 的右子树的前序序列:

    • C 的左子树的前序序列:DEF
    • C 的右子树的前序序列:空

继续递归构建 C 的左子树:

  1. C 的左子树的根节点是前序序列 DEF 的第一个节点 D。

  2. 在 C 的左子树的中序序列 DFE 中找到 D 的位置:

    • D 在位置 1。
  3. 分割 C 的左子树的中序序列:

    • D 的左子树的中序序列:空
    • D 的右子树的中序序列:FE
  4. 分割 C 的左子树的前序序列:

    • D 的左子树的前序序列:空
    • D 的右子树的前序序列:EF

继续递归构建 D 的右子树:

  1. D 的右子树的根节点是前序序列 EF 的第一个节点 E。

  2. 在 D 的右子树的中序序列 FE 中找到 E 的位置:

    • E 在位置 2。
  3. 分割 D 的右子树的中序序列:

    • E 的左子树的中序序列:F
    • E 的右子树的中序序列:空
  4. 分割 D 的右子树的前序序列:

    • E 的左子树的前序序列:F
    • E 的右子树的前序序列:空

继续递归构建 E 的左子树:

  1. E 的左子树的根节点是前序序列 F 的第一个节点 F。

  2. 在 E 的左子树的中序序列 F 中找到 F 的位置:

    • F 在位置 1。
  3. 分割 E 的左子树的中序序列:

    • F 的左子树的中序序列:空
    • F 的右子树的中序序列:空
  4. 分割 E 的左子树的前序序列:

    • F 的左子树的前序序列:空
    • F 的右子树的前序序列:空

构建出的二叉树结构如下:

      A
     /
    B
     \
      C
     /
    D
     \
      E
     /
    F

后序遍历(左 -> 右 -> 根)

按上述树结构进行后序遍历得到:

  1. 从 F 开始:F
  2. 回到 E:F, E
  3. 回到 D:F, E, D
  4. 回到 C:F, E, D, C
  5. 回到 B:F, E, D, C, B
  6. 回到 A:F, E, D, C, B, A

所以,后序序列为:F, E, D, C, B, A

正确答案是:B. FEDCBA

____________________________________________

____________________________________________________________________

21、以下关于随机运算函数库的描述,错误的是
A.random(a,b)产生一个a到b之间的随机小数
B.random.seedo函数初始化随机数种子,默认值是当前系统时间
C.random库的随机数是计算机按一定算法产生的,并非完全随机
D.Python内置的random库主要用于产生各种伪随机数序列

A. random(a,b)产生一个a到b之间的随机小数

  • 这是错误的。Python 中没有 random(a, b) 函数。生成一个指定范围内的随机小数应该使用 random.uniform(a, b)random.random() 函数生成的是 0 到 1 之间的随机小数。

B. random.seed0函数初始化随机数种子,默认值是当前系统时间

  • 这是不准确的描述。random.seed(a=None) 用于初始化随机数生成器。如果 aNone,则使用当前系统时间作为种子。这里提到的 random.seed0 是错误的,因为正确的函数名是 random.seed

C. random库的随机数是计算机按一定算法产生的,并非完全随机

  • 这是正确的。Python 的 random 库产生的是伪随机数,是通过算法计算出来的,并不是完全随机的。

D. Python内置的random库主要用于产生各种伪随机数序列

  • 这是正确的。Python 的 random 库确实用于产生各种伪随机数序列。

因此,错误的描述是:

A. random(a,b)产生一个a到b之间的随机小数

_________________________________________________________________

ls.copy( ):复制ls中所有元素生成一个新列表。题目中列表ls使用.copy()方法复制后赋值给变量l2,l2中元素的改变不会影响l1,所以最后输出l1的内容为[1,2,3,4]。本题选D。

_____________________________________________________________

___________________________________________________________

正确选项

D. turtle.done()

其他选项的功能

A. turtle.clear()

  • 这个函数清除当前 turtle 绘图窗口中的所有图形,但不关闭窗口。它相当于在同一个窗口中重置绘图,以便进行新的绘图操作。

B. turtle.setup()

  • 这个函数用于设置 turtle 绘图窗口的大小和位置。可以指定窗口的宽度、高度以及窗口在屏幕上的位置。例如,turtle.setup(width, height, startx, starty)

C. turtle.penup()

  • 这个函数抬起画笔,之后的移动不会在窗口中绘制路径。它常用于需要将画笔移动到另一个位置而不绘制线条的情况。

结论

为了让 turtle 画图结束后窗口不立即关闭,应使用 turtle.done()。因此,正确答案是:

D. turtle.done()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神笔馬良

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值