#1095. GESP C++ 六 级 2024年12月真题 · 判断题

GESP C++ 六 级 2024年12月真题 · 判断题

GESP C++ 六 级 2024年12月真题(180 分钟,总分 100 分)

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

1. 构造函数是一种特殊的类成员函数,构造函数的名称和类名相同。但通过函数重载,可以创建多个同名的构造函数,条件是每个构造函数的参数列表不同。

{{ select(1) }}

  • 正确
  • 错误

2. 类的静态成员函数既能访问类的静态数据成员,也能访问非静态数据成员。

{{ select(2) }}

  • 正确
  • 错误

3. 栈中元素的插入和删除操作都在栈的顶端进行,所以方便用单向链表实现。

{{ select(3) }}

  • 正确
  • 错误

4. 下面代码构建的树一定是完全二叉树:

struct TreeNode
{
    int value;
    TreeNode *left;
    TreeNode *right;
};
TreeNode *buildCompleteBinaryTree()
{
    TreeNode *root = new TreeNode{1};
    root->left = new TreeNode{2};
    root->right = new TreeNode{3};
    root->left->left = new TreeNode{4};
    root->left->right = new TreeNode{5};
    root->right->left = new TreeNode{6};
    return root;
}

{{ select(4) }}

  • 正确
  • 错误

5. 在二叉排序树中,左子树所有节点的值都大于根节点的值,右子树所有节点的值都小于根节点的值。

{{ select(5) }}

  • 正确
  • 错误

6. 在生成一个派生类的对象时,只调用派生类的构造函数。

{{ select(6) }}

  • 正确
  • 错误

7. 下面的代码实现了二叉树的前序遍历,它通过递归方法访问每个节点并打印节点值。

void preorder(TreeNode *root)
{
    if (root == NULL)
        return;
    cout << root->val << " ";
    preorder(root->left);
    preorder(root->right);
}

{{ select(7) }}

  • 正确
  • 错误

8. 在二叉树中,宽度优先搜索算法(BFS)保证从起点到每个节点的访问路径是边数最少的路径(即最短路径)。

{{ select(8) }}

  • 正确
  • 错误

9. 在解决简单背包问题时,动态规划的状态转移方程如下:

dp[i][w] = max(dp[i-1][w], dp[i-1][w - weights[i-1]] + values[i-1]);

该方程表示:在考虑第 i 个物品时,当前背包容量为 w,如果不放物品 i,则最大价值是 dp[i-1][w];如果放入物品 i,则最大价值是 dp[i-1][w - weights[i-1]] + values[i-1],其中数组weights和values分别表示所有物品的重量和价值,数组下标从0开始。

{{ select(9) }}

  • 正确
  • 错误

10. 栈中元素的插入和删除操作都在栈的顶端进行,所以方便用双向链表比单向链表更合适表实现。

{{ select(10) }}

  • 正确
  • 错误