#GESP202506C6T2. 判断题(每题 2 分,共 20 分)

    ID: 3465 Type: Objective Tried: 2 Accepted: 1 Difficulty: 5 Uploaded By: Tags>GESP六级程序设计基础数据结构算法基础搜索动态规划 DP程序阅读

判断题(每题 2 分,共 20 分)

判断题(每题 2 分,共 20 分)

第 1 题

构造函数可以被声明为 virtual。

{{ select(1) }}

  • 正确
  • 错误

第 2 题

给定一组字符及其出现的频率,构造出的哈夫曼树是唯一的。

{{ select(2) }}

  • 正确
  • 错误

第 3 题

为了实现一个队列,使其出队操作(pop)的时间复杂度为 O(1)O(1) 并且避免数组删除首元素的 O(n)O(n) 问题,一种常见且有效的方法是使用环形数组,通过调整队首和队尾指针来实现。

{{ select(3) }}

  • 正确
  • 错误

第 4 题

对一棵二叉排序树进行中序遍历,可以得到一个递增的有序序列。

{{ select(4) }}

  • 正确
  • 错误

第 5 题

如果二叉搜索树在连续的插入和删除操作后,所有节点都偏向一侧,导致其退化为类似于链表的结构,这时其查找、插入、删除操作的时间复杂度会从理想情况下的 O(logn)O(\log n) 退化到 O(nlogn)O(n \log n)

{{ select(5) }}

  • 正确
  • 错误

第 6 题

执行下列代码, my_dog.name 的最终值是 Charlie 。

class Dog {
public:
    std::string name;
    Dog(std::string str) : name(str) {}
};

int main() {
    Dog my_dog("Buddy");
    my_dog.name = "Charlie";
    return 0;
}

{{ select(6) }}

  • 正确
  • 错误

第 7 题

下列 C++ 代码可以成功编译,并且子类 Child 的实例能通过其成员函数访问父类 Parent 的属性 value。

class Parent {
private:
    int value = 100;
};
class Child : public Parent {
public:
    int get_private_val() {
        return value; // 尝试访问父类的私有成员
    }
};

{{ select(7) }}

  • 正确
  • 错误

第 8 题

下列代码中的 tree 向量,表示的是一棵完全二叉树(-1 代表空节点)按照层序遍历的结果。

#include <vector>
std::vector<int> tree = {1, 2, 3, 4, -1, 6, 7};

{{ select(8) }}

  • 正确
  • 错误

第 9 题

在树的深度优先搜索(DFS)中,使用栈作为辅助数据结构以实现“先进后出”的访问顺序。

{{ select(9) }}

  • 正确
  • 错误

第 10 题

下面代码采用动态规划求解零钱兑换问题:给定 nn 种硬币,第 ii 种硬币的面值为 coins[i1]coins[i - 1],目标金额为 amtamt,每种硬币可以重复选取,求能够凑出目标金额的最少硬币数量;如果不能凑出目标金额,返回 -1。

int coinChangeDPComp(vector<int> &coins, int amt) {
    int n = coins.size();
    int MAX = amt + 1;
    vector<int> dp(amt + 1, MAX);
    dp[0] = 0;

    for (int i = 1; i <= n; i++) {
        for (int a = 1; a <= amt; a++) {
            if (coins[i - 1] > a)
                dp[a] = dp[a];
            else
                dp[a] = min(dp[a], dp[a - coins[i - 1]] + 1);
        }
    }
    return dp[amt] != MAX ? dp[amt] : -1;
}

{{ select(10) }}

  • 正确
  • 错误