题目编号
语言
全部语言
等级
全部等级
知识点
选择知识点 (0)
找到 1260 道单选题
EXY-SC-1270
第 231 题

下面的 C++ 代码,用于求一系列数据中的最大值。有关其算法说法错误的是( )。

int find_max(const vector<int>& nums) {
    if (nums.empty()) {
        throw invalid_argument("输入数组不能为空");
    }
 
    int max_value = nums[0];
    for (int num : nums) {
        if (num > max_value) {
            max_value = num;
        }
    }
    return max_value;
}
A

本题 find_max() 函数采用的是迭代算法

B

本题 find_max() 函数的时间复杂度为 $O(n)$

C

和上一题的 find_max() 相比,因为没有递归,所以没有栈的创建和销毁开销

D

本题 find_max() 函数和上一题的 find_max() 空间复杂度相同

语言: C++
GESP真题 五级
2025.6
单选题号: 10
EXY-SC-1269
第 232 题

下面的 C++ 代码,用于求一系列数据中的最大值。有关其算法说法错误的是( )。

int find_max_recursive(const vector<int>& nums, int left, int right) {
    if (left == right)
        return nums[left];
 
    int mid = left + (right - left) / 2;
    int left_max = find_max_recursive(nums, left, mid);
    int right_max = find_max_recursive(nums, mid + 1, right);
 
    return max(left_max, right_max);
}
 
int find_max(const vector<int>& nums) {
    if (nums.empty()) {
        throw invalid_argument("输入数组不能为空");
    }
    return find_max_recursive(nums, 0, nums.size() - 1);
}
A

该算法采用分治算法

B

该算法是递归实现

C

该算法采用贪心算法

D

该算法不是递推算法

语言: C++
GESP真题 五级
2025.6
单选题号: 9
EXY-SC-1268
第 233 题

唯一分解定理描述了关于正整数的什么性质?

A

任何正整数都可以表示为两个素数的和。

B

任何大于 1 的合数都可以唯一分解为有限个质数的乘积。

C

两个正整数的最大公约数总是等于它们的最小公倍数除以它们的乘积。

D

所有素数都是奇数。

语言: C++
GESP真题 五级
2025.6
单选题号: 8
EXY-SC-1267
第 234 题

下面的代码用于判断一个整数是否为质数。若要找出 1 到 n 之间的所有质数,对 1 到 n 中的每个整数都调用该函数,下列说法中错误的是( )。

bool is_prime(int n) {
    if (n <= 1) return false;
 
    int finish_number = static_cast<int>(sqrt(n)) + 1;
    for (int i = 2; i < finish_number; ++i) {
        if (n % i == 0)
            return false;
    }
    return true;
}
A

埃氏筛算法相对于上面的代码效率更高

B

线性筛算法相对于上面的代码效率更高

C

上面的代码有很多重复计算,因为不是判断单个数是否为质数,故而导致筛选出连续数中质数的效率不高

D

相对而言,埃氏筛算法比上面代码以及线性筛算法效率都高

语言: C++
GESP真题 五级
2025.6
单选题号: 7
EXY-SC-1266
第 235 题

下列 C++ 代码用两种方式求解两个正整数的最大公约数,说法错误的是( )。

int gcd0(int big, int small) {
    if (big < small) {
        swap(big, small);
    }
    if (big % small == 0) {
        return small;
    }
    return gcd0(small, big % small);
}
 
int gcd1(int big, int small) {
    if (big < small) {
        swap(big, small);
    }
    for (int i = small; i >= 1; --i) {
        if (big % i == 0 && small % i == 0)
            return i;
    }
    return 1;
}
A

gcd0() 函数的时间复杂度为 $O(\log n)$

B

gcd1() 函数的时间复杂度为 $O(n)$

C

一般说来,gcd0() 的效率高于 gcd1()

D

gcd1() 中的代码 for (int i = small; i >= 1; --i) 应该修改为 for (int i = small; i > 1; --i)

语言: C++
GESP真题 五级
2025.6
单选题号: 6
当前页显示 231 - 235 ,共 1260 道单选题