2023年CSP-S组(提高组)初赛真题(文末附答案)一、单项选择题(共15题,每题2分,共计30分:每题有且仅有一个正确选项)1.在Linux系统终端中,以下那个命令用于创建一个新的目录()。A.newdirB.mkdirC.createD.mkfold2.由0,1,2,3,4中选取4个数字,能组成()个不同四位数注:最小的四位数是1000最大的四位数是9999。A96B18C120D843.假设n是图的顶点的个数,m是图的边的个数,为求解某一问题有下面四种不同时间复杂度的算法对于m=O(n)的稀疏图而言下面的四个选项,哪一项的渐近时间复杂度最小。A、O(m*sqrt(logn)*loglogn)B、O(n^2+m)C、O(n^2/logm+mlogn)D、O(m+nlogn)4.假设有n根柱子,需要按照以下规则依次放置编号为1、2、3、...的圆环:每根柱子的底部固定,顶部可以放入圆环,每次从柱子顶部放入圆环时,需要保证任何两个相邻圆环的编号之和是一个完全平方数。请计算当有4根柱子时,最多可以放置()个圆环。A7B9C11D55.以下对数据结构的表述不恰当的一项是。A队列是一种先进先出(FIFO)的线性结构B哈夫曼树的构造过程主要是为了实现图的深度优先搜索C散列表是一种通过散列函数将关键字映射到存储位置的数据结构D二又树是一种每个结点最多有两个子结点的树结构6.以下连通无向图中,()一定可以用不超过两种颜色进行染色A完全三叉树B平面图C边双连通图D欧拉图7.最长公共子序列长度常常用来衡量两个序列的相似度。其定义如下:给定两个序列X={x1,x2,x3,...xm}和Y={y1,y2,y3...yn},最长公共子序列(LCS)问题的目标是找到一个最长的新序列Z={z1,z2,z3...zk},使得序列既是序列X的子序列,又是序列Y的子序列,且序列Z的长度k在满足上述条件的序列里是最大的。(注:序列A是序列B的子序列,当且仅当在保持序列B元素顺序的情况下,从序列B中删除若千个元素,可以使得剩余的元素构成序列A。测序列“ABCAAAABA”和“ABABCBABA”的最长公共子序列长度为()。A4B5C6D78.一位玩家正在玩一个特殊的掷骰子的游戏,游戏要求连续掷两次骰子,收益规则如下:玩家第一次掷出x点,得到2x元;第二次掷出y点,当y=x时玩家会失去之前得到的2x元而当y!=x时玩家能保住第一次获得的2x元。上述x,y∈[1,2,3,4,5,6]。例如:玩家第一次掷出3点得到6元后,但第二次再次掷出3点,会失去之前得到的6元,玩家最终收益为0元:如果玩家第一次掷出3点第二次掷出4点,则最终收益是6元。假设骰子挑出任意一点的概率均为1/6,玩家连续掷两次般子后所有可能情形下收益的平均值是多少?A7B35/6C16/3D19/39.假设我们有以下的C++代码:提示:在C++中,逻辑运算的优先级从高到低依次为:逻辑非(!)逻辑与(&&)、逻辑或(||)。位运算的优先级从高到低依次为:位非(~)、位与(&)、位异或(^)、位或(|)。同时,双目位运算的优先级高于双目逻辑运算:逻辑非和位非优先级相同,且高于所有双目运算符AtrueBfalseC1D010.假设快速排序算法的输入是一个长度为n的已排序数组,且该快速排序算法在分治过程总是选择第1个元素作为基准元素。以下哪个选项描述的是在这种情况下的快速排序行为?A快速排序对于此类输入的表现最好因为数组已经排序B快速排序对于此类输入的时间复杂度是O(nlogn)。C快速排序对于此类输入的时间复杂度是O(n^2)D快速排序无法对此类数组进行排序因为数组已经排序11.以下哪个命令,能将一个名为“main.cpp”的C++源文件,编译并生成一个名为"main“的可执行文件?()Ag++-omainmain.cppBg++-omain.cppmainCg++main-omain.cppDg++main.cpp-omain.cpp12.在图论中,树的重心是树上的一个结点,以该结点为根时,使得其所有的子树中结点数最多的子树的结点数最少。一棵树可能有多个重心。请问下面哪种树一定只有一个重心()A4个结点的树B6个结点的树C7个结点的树D8个结点的树13.如图是一张包含6个顶点的有向图,但顶点间不存在拓扑序。如果要删除其中一条边,使这6个顶点能进行拓扑排序,请问总共有多少条边可以作为候选的被删除边?A1B2C3D414.A10B11C12D1315.现在用如下代码来计算x^n,其时间复杂度为()AO(n)BO(1)CO(logn)DO(nlogn)二、阅读程序(程序输入不超过数组成字符串定义的范围:判断题正确填√,错误填×;除特殊说明外,判断题1.5分,选择题3分...