题目编号
语言
全部语言
等级
全部等级
考查知识点
选择考查知识点 (0)
找到 1506 道单选题
EXY-SC-1471
第 276 题

下列 C++ 代码的输出结果是( )。

#include <iostream>
#include <cmath>
using namespace std;
int main() {
    cout << (int)(sqrt(50) + log2(8));
    return 0;
}
A

9

B

10

C

11

D

12

语言: C++
GESP真题 七级
2026.6
单选题号: 1
EXY-SC-1470
第 277 题

下面代码实现 0/1 背包的一维动态规划。第 i 个物品重量为 wt[i] ,价值为 val[i] ,背包容量为 W 。横线处应填写( )。

int knapsack(int W, vector<int>& wt, vector<int>& val) {
    int n = wt.size();
    vector<int> dp(W + 1, 0);

    for (int i = 0; i < n; ++i) {
        for (int w = W; w >= wt[i]; --w) {
            __________________________
        }
    }

    return dp[W];
}
A

dp[w] = max(dp[w], dp[w - wt[i]] + val[i]);

B

dp[w] = max(dp[w - 1], dp[w - wt[i]] + val[i]);

C

dp[w] = dp[w] + val[i];

D

dp[w - wt[i]] = max(dp[w], val[i]);

语言: C++
GESP真题 六级
2026.6
单选题号: 15
EXY-SC-1469
第 278 题

给定一个整数数组 a ,每个元素表示一个位置上的数值。要求从数组中选择若干个元素,使得任意两个被选择的元素在原数组中都不相邻,并且所选元素的总和最大。函数 choose(vector<int>& a) 返回能够得到的最大总和,则横线处应填写( )。

int choose(vector<int>& a) {
    if (a.empty()) return 0;

    int n = a.size();
    if (n == 1) return a[0];

    vector<int> dp(n, 0);
    dp[0] = a[0];
    dp[1] = max(a[0], a[1]);

    for (int i = 2; i < n; ++i) {
        dp[i] = __________________________;
    }

    return dp[n - 1];
}
A

dp[i - 1] + a[i]

B

max(dp[i - 1], dp[i - 2] + a[i])

C

max(dp[i - 2], a[i])

D

dp[i - 1] + dp[i - 2]

语言: C++
GESP真题 六级
2026.6
单选题号: 14
EXY-SC-1468
第 279 题

下面代码实现二叉搜索树的插入操作。假设树中不存在重复值,横线处应填写( )。

TreeNode* insertNode(TreeNode* root, int x) {
    if (root == nullptr) {
        return new TreeNode(x);
    }

    if (x < root->val) {
        __________________________
    } else {
        root->right = insertNode(root->right, x);
    }

    return root;
}
A

root->left = insertNode(root->left, x);

B

root = insertNode(root->left, x);

C

root->right = insertNode(root->left, x);

D

insertNode(root->left, x);

语言: C++
GESP真题 六级
2026.6
单选题号: 13
EXY-SC-1467
第 280 题

给定一棵二叉树,采用广度优先搜索 BFS 返回其右视图,其中右视图中的每个节点都是该层最右侧的节点。横线处应填写( )。

vector<int> rightSideView(TreeNode* root) {
    vector<int> result;
    if (!root) return result;

    queue<TreeNode*> q;
    q.push(root);

    while (!q.empty()) {
        int sz = q.size();
        for (int i = 0; i < sz; ++i) {
            TreeNode* node = q.front();
            q.pop();

            __________________________

            if (node->left) q.push(node->left);
            if (node->right) q.push(node->right);
        }
    }

    return result;
}
A

if (i == 0) result.push_back(node->val);

B

if (i == sz - 1) result.push_back(node->val);

C

result.push_back(q.front()->val);

D

if (node->right) result.push_back(node->right->val);

语言: C++
GESP真题 六级
2026.6
单选题号: 12
当前页显示 276 - 280 ,共 1506 道单选题