通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
"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]
在类声明中,紧跟在“public:”后声明的成员的访问
要定义一个具有5个元素的一维数组vect,初值依次是3
下列程序的运行结果是( )。
在下列二进制数字调制方法中,需要 2 个不同频率载波的
下列程序查找输入8个整数中的最小数。请仔细阅读他的程序
若有C语言表达式 2+3*4+7/3,以下选项中叙述正
以下叙述正确的是( )。
若定义cin>>str;,当输入Object Wind
表达式set([1,1,2,3])的值为_______
已知x={'a':'b','c':'d'},那么表达式
C语言提供了 fopen函数,该函数用于打开文件,
二进制是一种“逢二进一”的机制,它用0和_____两个
ASCII编码是规定了把英文字母、数字、标点、____
程序中定义了一个指向结构体变量的指针后,可以通过"__
在OSI参考模型的各层次中,( )的数据传送单位是报文
前台启动的进程使用复合键______终止。
设计一个shell程序,添加一个新组为class1,然
/etc/passwd中第几列表示用户登录的shell
数据库的物理设计主要包括存储结构和 两个方面
MySQL提供了下面4种事务隔离级别,但只有 ____
下面的选项是关系数据库基本特征的是( )。
对于顺序存储的线性表,访问结点和增加、删除结点的时间复
f函数的返回值小于等于min(n,m)。( )
功能:求x到y之间的奇数和(包括x和y)。
功能:在键盘上输入一个3行3列矩阵的各个元素的值(值为
以下不能用于描述算法的是
若有以下程序则程序的输出结果是
(交通中断)有一个小国家,国家内有 n座城市和 m条双
(排列数)输入两个正整数 n,m(1≤n≤20,1≤m
( 寻找假币 ) 现有 80枚硬币,其中有一枚是假币,
更多选择题
更多填空题
第十章 C++流
第九章 C++模板
第八章 C++运算符重载
C++语言程序设计真题5
C++语言程序设计真题4
C++语言程序设计真题3
C++语言程序设计真题2