EXY-SC-1445
第 56 题
下面代码实现线性筛(欧拉筛),以筛选出 $n$ 以内的所有素数。横线处的代码应为( )。
vector<int> sieve(int n) {
vector<bool> is_prime(n + 1, true);
vector<int> primes;
if (n >= 0) is_prime[0] = false;
if (n >= 1) is_prime[1] = false;
for (int i = 2; i <= n; ++i) {
if (is_prime[i]) {
primes.push_back(i);
}
for (int j = 0; j < primes.size() && i * primes[j] <= n; j++) {
is_prime[i * primes[j]] = false;
if (________________) break; // 在此处填入代码
}
}
return primes;
}
语言:
C++
GESP真题
五级
2026.6
单选题号:
5
EXY-SC-1444
第 57 题
使用如下欧几里得算法求 gcd(105, 45) 时,函数 gcd(a, b) 的递归调用序列正确的是( )。
int gcd(int a, int b) {
return b == 0 ? a : gcd(b, a % b);
}
语言:
C++
GESP真题
五级
2026.6
单选题号:
4
EXY-SC-1443
第 58 题
双链表结点定义如下,若要删除双链表中的中间结点(非首尾节点)
p,下面写法正确的是( )。struct Node {
int val;
Node* prev;
Node* next;
};
语言:
C++
GESP真题
五级
2026.6
单选题号:
3
EXY-SC-1442
第 59 题
下面代码遍历并输出一个循环单链表,其中
head 指向链表的第一个节点,横线处应填入的是( )。struct Node {
int val;
Node* next;
};
void printList(Node* head) {
if (head == nullptr) return;
Node* p = head;
_______________________ // 在此处填入代码
cout << endl;
}
语言:
C++
GESP真题
五级
2026.6
单选题号:
2
EXY-SC-1441
第 60 题
假设
head != nullptr,下面是实现单向循环链表在头节点后插入新节点的代码,横线处应填入( )。struct Node {
int val;
Node* next;
};
void insertAfterHead(Node* head, int x) {
Node* newNode = new Node;
newNode->val = x;
______________________ // 在此处填入代码
}
语言:
C++
GESP真题
五级
2026.6
单选题号:
1
当前页显示 56 - 60
,共 1260 道单选题