分类题库
C++编程题库
按题型、年份与知识点筛选,快速定位练习题。
题目列表
共 303 题
A67930
对如下代码实现的欧几里得算法(辗转相除法),执行 gcd(48, 18) 得到的调用序列为( )。1 int gcd(int a, int b) {
2026年
单选
A67929
下面代码实现了欧拉(线性)筛,横线处应填写( )。1 vector<int> euler_sieve(int n) {
2026年
单选
A67928
埃氏筛中将内层循环从 j = i*i 开始而不是 j = 2*i 的主要原因是( )。1 vector<int> eratosthenes_sieve(int n) {
2026年
单选
A67927
下面程序的运行结果为( )。1 bool check(int n, int a[], int k, int dist) {
2026年
单选
A67926
在升序数组中查找第一个大于等于 x 的位置,下面循环中横线应填( )。1 int lowerBound(const vector<int>& a, int x){
2026年
单选
A67925
关于递归函数调用,下列说法错误的是( )。
2026年
单选
A67924
给定 n 根木头,第 i 根长度为 a[i] 。要切成不少于 m 段等长木段,求最大可能长度,则横线上应填 写( )。1 const int MAXN = 100005;
2026年
单选
A67923
下面代码用分治求“最大连续子段和”,其时间复杂度为( )。1 int solve(vector<int>& a, int l, int r){
2026年
单选
A67922
游戏大赛决赛,两组选手分别按得分从小到大排好队,现在要把他们合并成一个有序排行榜。 A组: A = {12, 35, 67, 89} ,B组: B = {20, 45, 55, 78} ,下面是归并合并函数的核心循环,横线处应填入( )。1 int i = 0, j = 0;
2026年
单选
A67921
有n位同学的成绩已经从小到大排好序,现在对它执行下面这段以第一个元素为 pivot 的快速排序,请 问此次排序的时间复杂度是( )。1 void quicksort(vector<int>& a, int l, int r) {
2026年
单选
A67920
下面关于排序算法的描述中,不正确的是( )。
2026年
单选
A67919
下面代码实现两个整数除法,其中被除数为一个“大整数”,用字符串表示,除数是一个小整数,用 int 表示,则横线处应该填写( )。1 int main(){
2026年
单选
A67918
有一个存储了 个整数的线性表,分别用数组和单链表两种方式实现。在已知下标(或结点指针)的前提下,数组的随机访问是 , 而在链表中已知某结点的指针时,在该结点之后插入一个新结点的操作也是O(1)。
2026年
判断
A67917
若数组 a 已按升序排列,则下面代码可以正确实现 “在 a 中查找第一个大于等于 x 的元素的位置”。1 int lowerBound(vector<int>& a,int x){
2026年
判断
A67916
快速排序只要每次都选取中间元素作为枢轴,就一定是稳定排序
2026年
判断
A67915
若某算法满足递推式:T(n) =2T(n/2)+O(n) ,则其时间复杂度为O(nlogn) 。
2026年
判断
A67914
在一个数组中,如果两个元素 a[i] 和 a[j] 满足 i < j 且 a[i] > a[j] ,则 a[i] 和 a[j] 是一个逆序对。 下面代码可以正确统计数组 a 区间 [l,r] 内的逆序对总数。1 long long cnt=0;
2026年
判断
A67913
唯一分解定理保证:若一个数未被任何不超过其平方根的质数筛去,则它一定是质数
2026年
判断
A67912
假设数组 的值域范围是D,以下程序的时间复杂度是O(nlogn+nlogD)。1 bool check(int n, int a[], int k, int dist) {
2026年
判断
A67911
若一个问题满足最优子结构性质,则一定可以用贪心算法得到最优解。
2026年
判断