通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
"CSP考试" 试卷中 CSP-S1提高级初赛试卷[2020] 中有题目如下:
第1题
#include <iostream> #include <cstdlib> using namespace std; int n; int d[10000]; int find(int L, int R, int k) { int x = rand() % (R - L + 1) + L; swap(d[L], d[x]); int a = L + 1, b = R; while (a < b) { while (a < b && d[a] < d[L]) ++a; while (a < b && d[b] >= d[L]) --b; swap(d[a], d[b]); } if (d[a] < d[L]) ++a; if (a - L == k) return d[L]; if (a - L < k) return find(a, R, k - (a - L)); return find(L + 1, a - 1, k); } int main() { int k; cin >> n; cin >> k; for (int i = 0; i < n; ++i) cin >> d[i]; cout << find(0, n - 1, k); return 0; }
假设输入的 n,k 和 d[i] 都是不超过 10000 的正整数,且 k 不超过 n,并假设 rand() 函数产生的是均匀的随机数。
4)当输入的 d[i] 是严格单调递减序列时,第 17 行的“swap”平均执行次数是( )
O(n^2)
O(n)
O(nlogn)
O(logn)
所属试卷:CSP-S1提高级初赛试卷[2020]
下列数据结构中,属于非线性结构的是
下列Simple类定义的方法中,属于Applet生命周
给定程序中函数fun的功能是:根据整型形参m,计算如下
下列给定程序中,函数fun的功能是:从s所指字符串中,
以下程序的功能是:通过调用calc函数,把所求得的两数
以下不是合法C语言转义字符的是。
以下不构成无限循环的语句或者语句组是。
设有以下语句:若要为变量ch1和ch2分别输入字符A和
已知x=[[1,3,3],[2,3,1]],那么表达式
已知formatter ='good {0}'.for
表达式‘Hello word’.lower的值为_
打印出所有“水仙花数”,所谓:“水仙花数”是指一个三位
以下程序的输出结果是________。
已知,计算f(n)的C语言函数f1如下:将f1中的in
要使一棵非空二叉树的先序序列与中序序列相同,其所有非叶
设计一个shell程序计算n的阶乘。要求:(1) 从命
若要删除数据库中已经存在的表S,可用( )。
对于删除操作以下说法正确的是
后缀表达式“6 2 3 + - 3 8 2 / + *
按内存排列顺序,数组char a[2]中的所有元素是a
假定有以下变量定义:则能使值为3的表达式是( )。
当a=3,b=2,c=1时,执行以下程序段后c=___
假设所有变量都为整型,表达式(a=2,b=5,a>b?
某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是
假设输入的 n 是不超过262的正整数,k 都是不超过
输入:1 2 3 4 5 6 0 7输出:( )
下列关于图灵奖的说法中,正确的有( )。
下图表示一个果园灌溉系统,有 A、B、C、D 四个阀门
输入: 16输出: ______________
输出: ________________
更多选择题
更多填空题
第十章 C++流
第九章 C++模板
第八章 C++运算符重载
C++语言程序设计真题5
C++语言程序设计真题4
C++语言程序设计真题3
C++语言程序设计真题2