2025年_CSP-J1初赛
__SECTIONS__:[{"name": "单选题", "count": 15}, {"name": "阅读程序", "count": 18}, {"name": "完善程序", "count": 10}] 从PDF导入:2025年_CSP-J _初赛试卷
试卷题目预览
一个32位无符号整数可以表示的最大值,最接近下列哪个选项?( )
在C++中,执行int x=255; cout<<(x&(x-1));后,输出的结果是?( )
函数calc(n)的定义如下,则calc(5)的返回值是多少?( )

用5个权值10、12、15、20、25构造哈夫曼树,该树的带权路径长度是多少?( )
在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和,这个总和等于?( )
从5位男生和4位女生中选出4人组成一个学习小组,要求学习小组中男生和女生都有。有多少种不同的选举方法?( )
假设a、b、c都是布尔变量,逻辑表达式(a&&b)||(!c&&a)的值与下列哪个表达式不始终相等?( )
已知f[0]=1,f[1]=1,并且对于所有n≥2有f[n]=(f[n-1]+f[n-2])%7。那么f[2025]的值是多少?( )
下列关于C++string类的说法,正确的是?( )
考虑以下C++函数,在main函数调用solve后,x和y的值分别是?( )

一个8×8的棋盘,左上角坐标为(1,1),右下角为(8,8)。一个机器人从(1,1)出发,每次只能向右或向下走一格。要到达(4,5),有多少种不同的路径?()
某同学用冒泡排序对数组{6,1,5,2,4}进行升序排序,请问需要进行多少次元素交换?( )
十进制数720和八进制数270₈的和用十六进制表示是多少?( )
一棵包含1000个结点的完全二叉树,其叶子结点的数量是多少?( )
给定一个初始为空的整数栈S和一个空的队列P。按顺序处理输入的整数队列A:7、5、8、3、1、4、2。对于队列A中的每一个数,执行规则:如果该数是奇数,则将其压入栈S;如果该数是偶数,且栈S非空,则弹出一个栈顶元素,并加入到队列P的末尾;如果该数是偶数,且栈S为空,则不进行任何操作。当队列A中的所有数都处理完毕后,队列P的内容是什么?( )
阅读程序(1)

当输入为2时,程序并不会执行第16行的判断语句。( )
阅读程序(1)

将第16行中的"&& gcd(i,k)==1"删去不会影响程序运行结果。( )
阅读程序(1)

当输入的n≥3的时候,程序总是输出一个正整数。( )
阅读程序(1)

将第7行的"gcd(b,a%b)"改为"gcd(a,a%b)"后,程序可能出现的问题是( )
阅读程序(1)

当输入为8的时候,输出为( )
阅读程序(1)

调用gcd(36,42)会返回( )
阅读程序(1)

当输入为"3 1 3 2 1"时,输出结果为2。( )
阅读程序(2)

假设输入的n为正整数,输出的答案一定小于等于n,大于等于1。( )
阅读程序(2)

将第14行"n=std::unique(a+1,a+n+1)-a-1;"删去后,有可能出现与原本代码不同的输出结果。( )
阅读程序(2)

假设输入的a数组和k均为正整数,执行第18行代码时,一定满足的条件不包括( )
阅读程序(2)

当输入的n=100、k=2、a={1,2,…,100}时,输出为( )
阅读程序(2)

假设输入的a数组和k均为正整数,但a数组不一定有序,则若误删去第13行的"std::sort(a+1,a+n+1);",程序有可能出现的问题有( )
阅读程序(3)

当输入"4 1 2 3 4 1 3 2 2"时,输出为2。( )
阅读程序(3)

当程序运行完毕后,对于所有的1≤i,j≤n,都一定有f[i][j]≤f[n][n]。( )
阅读程序(3)

将第18行的"f[i][j]=std::max(f[i][j],std::max(f[i-1][j],f[i][j-1]));"删去后,并不影响程序运行结果。()
阅读程序(3)

输出的答案满足的性质有( )
阅读程序(3)

如果在第16行的循环前加上"std::sort(a+1,a+n+1); std::sort(b+1,b+n+1);",则答案会( )
阅读程序(3)

如果输入的a={1,2,…,n},而且b数组中数字均为1∼n中的正整数,则上述代码等价于下面哪个问题:( )
完善程序(1)
(字符串解码)"行程长度编码"(Run-Length Encoding)是一种无损压缩算法,常用于压缩重复字符较多的数据,以减少存储空间。假设原始字符串不包含数字字符。压缩规则如下:
i)如果原始字符串中一个字符连续出现N次(N≥2),在压缩字符串中它被表示为"字符+数字N"。例如,编码"A12"代表12个连续的字符A。
ii)如果原始字符串中一个字符只出现1次,在压缩字符串中它就表示为该字符本身。例如,编码"B"代表1个字符B。
以下程序实现读取压缩字符串并输出其原始的、解压后的形式。试补全程序。

①处应填( )
完善程序(1)
(字符串解码)"行程长度编码"(Run-Length Encoding)是一种无损压缩算法,常用于压缩重复字符较多的数据,以减少存储空间。假设原始字符串不包含数字字符。压缩规则如下:
i)如果原始字符串中一个字符连续出现N次(N≥2),在压缩字符串中它被表示为"字符+数字N"。例如,编码"A12"代表12个连续的字符A。
ii)如果原始字符串中一个字符只出现1次,在压缩字符串中它就表示为该字符本身。例如,编码"B"代表1个字符B。
以下程序实现读取压缩字符串并输出其原始的、解压后的形式。试补全程序。

②处应填( )
完善程序(1)
(字符串解码)"行程长度编码"(Run-Length Encoding)是一种无损压缩算法,常用于压缩重复字符较多的数据,以减少存储空间。假设原始字符串不包含数字字符。压缩规则如下:
i)如果原始字符串中一个字符连续出现N次(N≥2),在压缩字符串中它被表示为"字符+数字N"。例如,编码"A12"代表12个连续的字符A。
ii)如果原始字符串中一个字符只出现1次,在压缩字符串中它就表示为该字符本身。例如,编码"B"代表1个字符B。
以下程序实现读取压缩字符串并输出其原始的、解压后的形式。试补全程序。

③处应填( )
完善程序(1)
(字符串解码)"行程长度编码"(Run-Length Encoding)是一种无损压缩算法,常用于压缩重复字符较多的数据,以减少存储空间。假设原始字符串不包含数字字符。压缩规则如下:
i)如果原始字符串中一个字符连续出现N次(N≥2),在压缩字符串中它被表示为"字符+数字N"。例如,编码"A12"代表12个连续的字符A。
ii)如果原始字符串中一个字符只出现1次,在压缩字符串中它就表示为该字符本身。例如,编码"B"代表1个字符B。
以下程序实现读取压缩字符串并输出其原始的、解压后的形式。试补全程序。

④处应填( )
完善程序(1)
(字符串解码)"行程长度编码"(Run-Length Encoding)是一种无损压缩算法,常用于压缩重复字符较多的数据,以减少存储空间。假设原始字符串不包含数字字符。压缩规则如下:
i)如果原始字符串中一个字符连续出现N次(N≥2),在压缩字符串中它被表示为"字符+数字N"。例如,编码"A12"代表12个连续的字符A。
ii)如果原始字符串中一个字符只出现1次,在压缩字符串中它就表示为该字符本身。例如,编码"B"代表1个字符B。
以下程序实现读取压缩字符串并输出其原始的、解压后的形式。试补全程序。

⑤处应填( )
完善程序(2)
(精明与糊涂)有N个人,分为两类:
i)精明人:永远能正确判断其他人是精明还是糊涂;
ii)糊涂人:判断不可靠,会给出随机的判断。
已知精明人严格占据多数,即如果精明人有k个,则满足k>N/2。
你只能通过函数query(i,j)让第i个人判断第j个人:返回true表示判断结果为"精明人";返回false表示判断结果为"糊涂人"。你的目标是,通过这些互相判断,找出至少一个百分之百能确定的精明人。
以下程序利用"精明人占多数"的优势。设想一个"消除"的过程,让人们互相判断并进行抵消。经过若干轮抵消后,最终留下的候选者必然属于多数派,即精明人。
①处应填( )
完善程序(2)
(精明与糊涂)有N个人,分为两类:
i)精明人:永远能正确判断其他人是精明还是糊涂;
ii)糊涂人:判断不可靠,会给出随机的判断。
已知精明人严格占据多数,即如果精明人有k个,则满足k>N/2。
你只能通过函数query(i,j)让第i个人判断第j个人:返回true表示判断结果为"精明人";返回false表示判断结果为"糊涂人"。你的目标是,通过这些互相判断,找出至少一个百分之百能确定的精明人。
以下程序利用"精明人占多数"的优势。设想一个"消除"的过程,让人们互相判断并进行抵消。经过若干轮抵消后,最终留下的候选者必然属于多数派,即精明人。
②处应填( )
完善程序(2)
(精明与糊涂)有N个人,分为两类:
i)精明人:永远能正确判断其他人是精明还是糊涂;
ii)糊涂人:判断不可靠,会给出随机的判断。
已知精明人严格占据多数,即如果精明人有k个,则满足k>N/2。
你只能通过函数query(i,j)让第i个人判断第j个人:返回true表示判断结果为"精明人";返回false表示判断结果为"糊涂人"。你的目标是,通过这些互相判断,找出至少一个百分之百能确定的精明人。
以下程序利用"精明人占多数"的优势。设想一个"消除"的过程,让人们互相判断并进行抵消。经过若干轮抵消后,最终留下的候选者必然属于多数派,即精明人。
③处应填( )
完善程序(2)
(精明与糊涂)有N个人,分为两类:
i)精明人:永远能正确判断其他人是精明还是糊涂;
ii)糊涂人:判断不可靠,会给出随机的判断。
已知精明人严格占据多数,即如果精明人有k个,则满足k>N/2。
你只能通过函数query(i,j)让第i个人判断第j个人:返回true表示判断结果为"精明人";返回false表示判断结果为"糊涂人"。你的目标是,通过这些互相判断,找出至少一个百分之百能确定的精明人。
以下程序利用"精明人占多数"的优势。设想一个"消除"的过程,让人们互相判断并进行抵消。经过若干轮抵消后,最终留下的候选者必然属于多数派,即精明人。
④处应填( )
完善程序(2)
(精明与糊涂)有N个人,分为两类:
i)精明人:永远能正确判断其他人是精明还是糊涂;
ii)糊涂人:判断不可靠,会给出随机的判断。
已知精明人严格占据多数,即如果精明人有k个,则满足k>N/2。
你只能通过函数query(i,j)让第i个人判断第j个人:返回true表示判断结果为"精明人";返回false表示判断结果为"糊涂人"。你的目标是,通过这些互相判断,找出至少一个百分之百能确定的精明人。
以下程序利用"精明人占多数"的优势。设想一个"消除"的过程,让人们互相判断并进行抵消。经过若干轮抵消后,最终留下的候选者必然属于多数派,即精明人。
⑤处应填( )