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

在面向对象编程中,下列关于虚函数的描述中,错误的是( )。

A

虚函数用于支持运行时多态

B

通过基类指针调用虚函数时,会根据对象实际类型决定调用版本

C

构造函数可以声明为虚函数以支持多态

D

基类析构函数常声明为虚函数以避免资源泄漏

语言: C++
GESP真题 六级
2025.12
单选题号: 1
EXY-SC-0195
第 1312 题

下面代码实现了对两个数组表示的正整数的高精度加法(数组低位在前),则横线上应填写( )。

vector<int> add(vector<int> a, vector<int> b) {
    vector<int> c;
    int carry = 0;
 
    for (int i = 0; i < a.size() || i < b.size(); i++) {
        if (i < a.size()) carry += a[i];
        if (i < b.size()) carry += b[i];
        _________________________  // 在此处填入代码
    }
    if (carry) c.push_back(carry);
 
    return c;
}
A
c.push_back(carry / 10);
carry %= 10;
B
c.push_back(carry % 10);
carry /= 10;
C
c.push_back(carry % 10);
D
c.push_back(carry);
carry /= 10;
语言: C++
GESP真题 五级
2025.12
单选题号: 15
EXY-SC-0194
第 1313 题

给定有 n 个任务,每个任务有截止时间和利润,每个任务耗时 1 个时间单位、必须在截止时间前完成,且每个时间槽最多做 1 个任务。为了在规定时间内获得最大利润,可以采用贪心策略,即按利润从高到低排序,尽量安排,则横线处应填写( )。

struct Task {
    int deadline;  // 截止时间
    int profit;    // 利润
};
 
void sortByProfit(vector<Task>& tasks) {
    sort(tasks.begin(), tasks.end(),
        [](const Task& a, const Task& b) {
            return a.profit > b.profit;
        });
}
 
int maxProfit(vector<Task>& tasks) {
    sortByProfit(tasks);
 
    int maxTime = 0;
    for (auto& t : tasks) {
        maxTime = max(maxTime, t.deadline);
    }
 
    vector<bool> slot(maxTime + 1, false);
    int totalProfit = 0;
 
    for (auto& task : tasks) {
        for (int t = task.deadline; t >= 1; t--) {
            if (!slot[t]) {
                __________________  // 在此处填入代码
                break;
            }
        }
    }
 
    return totalProfit;
}
A
slot[t] = true;
totalProfit += task.profit;
B
slot[t] = false;
totalProfit += task.profit;
C
slot[t] = true;
totalProfit = task.profit;
D
slot[t] = false;
totalProfit = task.profit;
语言: C++
GESP真题 五级
2025.12
单选题号: 14
EXY-SC-0193
第 1314 题

下面给出了阶乘计算的两种方式。以下说法正确的是( )。

int factorial1(int n) {
    if (n <= 1) return 1;
    return n * factorial1(n - 1);
}
 
int factorial2(int n) {
    int acc = 1;
    while (n > 1) {
        acc = n * acc;
        n = n - 1;
    }
    return acc;
}
A

上面两种实现方式的时间复杂度相同,都为 O(n)

B

上面两种实现方式的空间复杂度相同,都为 O(n)

C

上面两种实现方式的空间复杂度相同,都为 O(1)

D

函数 factorial1() 的时间复杂度为 $O(2^n)$,函数 factorial2() 的时间复杂度为 $O(n)$

语言: C++
GESP真题 五级
2025.12
单选题号: 13
EXY-SC-0192
第 1315 题

小杨要把一根长度为 L 的木头切成 K 段,使得每段长度小于等于 x。已知每切一刀只能把一段木头分成两段,他用二分法找到满足条件的最小 x(x 为正整数),则横线处应填写( )。

// 判断:在不超过 K 次切割内,是否能让每段长度 <= x
bool check(int L, int K, int x) {
    int cuts = (L - 1) / x;
    return cuts <= K;
}
 
// 二分查找最小可行的 x
int binary_cut(int L, int K) {
    int l = 1, r = L;
    while (l < r) {
        int mid = l + (r - l) / 2;
        __________________  // 在此处填入代码
    }
    return l;
}
 
int main() {
    int L = 10;  // 木头长度
    int K = 2;   // 最多切 K 刀
 
    cout << binary_cut(L, K) << endl;
    return 0;
}
A
if (check(L, K, mid))
    r = mid;
else
    l = mid + 1;
B
if (check(L, K, mid))
    r = mid+1;
else
    l = mid + 1;
C
if (check(L, K, mid))
    r = mid + 1;
else
    l = mid - 1;
D
if (check(L, K, mid))
    r = mid + 1;
else
    l = mid;
语言: C++
GESP真题 五级
2025.12
单选题号: 12
当前页显示 1311 - 1315 ,共 1506 道单选题