通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
"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() 函数产生的是均匀的随机数。
6)若输入的 d[i] 都为同一个数,此程序的平均时间复杂度是( )
O(n)
O(logn)
O(nlogn)
O(n^2)
所属试卷:CSP-S1提高级初赛试卷[2020]
下列关于派生类和基类的描述中,正确的是。
下面程序的输出结果是。
下列运算结果为1的是( )。
数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些
有如下程序:程序运行后的输出结果是( )。
以下程序的输出结果是。
表达式'He11o wor1d!'[-4:]的值为__
表达式 list(filter(None,[0,1,2
已知列表x=[1,2],那么连续执行命令 y=x和 y
集合:s={1,2,3,4,5,6},t={4,5,6
已知列表x=[1,3,2],那么执行语句 x=x.re
以下程序的运行结果是输出如下图形。请填空。
为了建立如图所示的存储结构(即每个结点两个域,data
以下程序执行结果是_________。
OSI/RM产生之后开始的计算机网络称为( )
以下fun函数的功能是在N行M列的整形二维数组中,选出
如下为命令终端下的一个截图:则,以下两句的执行结果是:
在某Makefile内有以下语句:SRC = f1.c
某文件的权限为:drw-r--r--,用数值形式表示该
补全语句:select vend_id,count(*
既希望较快的查找又便于线性表动态变化的查找方法是( )
请编写函数void fun(int *dp,int n
我们所写的每条C语句,经过编译最终都将转换成二进制的机
对长度为10的线性表进行冒泡排序,最坏的情况下需要比较
本题t是s的子序列的意思是:从s中删去若干个字符,可以
对于一个 1到 n的排列 P(即 1到 n中每一个数在
逻辑异或⊕是一种二元运算,其真值表如下所示。以下关于逻
在程序运行过程中,如果递归调用的层数过多,会因为( )
(矩阵中的数字) 有一个 n*n(1<=n<=5000
ASCII 码的含义是( )。
更多选择题
更多填空题
第十章 C++流
第九章 C++模板
第八章 C++运算符重载
C++语言程序设计真题5
C++语言程序设计真题4
C++语言程序设计真题3
C++语言程序设计真题2