通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
"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() 函数产生的是均匀的随机数。
2)判断:将第 19 行的“d[a]”改为“d[b]”,程序不会发生运行错误。( )
正确
错误
所属试卷:CSP-S1提高级初赛试卷[2020]
关于在调用模板函数时模板实参的使用,下列表述正确的是
如果表达式-x/y中的“-”和“/”是作为友元函数重载
有如下程序,其主函数中错误的语句是。
下列代码中,将引起一个编译错误的行是( )。1) pu
公司中有多个部门和多名职员,每个职员只能属于一个部门,
以下程序段中,循环次数不超过10的是。
有以下程序段:程序的输出结果是( )。
表达 [index for index, value
从键盘输入一个字符串a,并在a串中的最大元素后边插入字
执行下面程序段后,k的值为________。
若a是int型变量,则表达式(a=4.5,a*2),a
在C语言中,输入操作是由库函数____________
有数学表达式:,其C语言表达式为___________
若有代数|x3+log10x|,则正确的C语言表达式是
以下程序段通过移动指针变量m,给如图所示连续动态存储单
路由器R通过以太网交换机S1和S2连接两个网络,R的接
简述linux的几个运行级别及其相应的含义。答:0-关
Mysql锁的粒度越小,并发度就越 ___,开销越大,
MySql数据库中具体实现备份数据库的方法很多,可以分
修改视图除了可能使用create or replace
数据视图属于三级模式中的( )
以下排序算法的常见实现中,哪个选项的说法是错误的( )
C语言中,数组名是一个不可变的_____量,不能对它进
函数的_____调用是一个函数直接或间接地调用它自身。
在数据库中,产生数据不一致的根本原因是
有以下程序程序的运行结果是
设循环队列的存储空间为Q(1:35),初始状态为fro
由数字 1,1,2,4,8,8 所组成的不同的四位数的
十六进制数 9A 在( )进制下是 232
输入: 10 20输出: _________
更多选择题
更多填空题
第十章 C++流
第九章 C++模板
第八章 C++运算符重载
C++语言程序设计真题5
C++语言程序设计真题4
C++语言程序设计真题3
C++语言程序设计真题2