2023年山东省信息学小学组(CSP-X)第一轮题解
2023年山东省信息学小学组(CSP-X)第一轮题解
- 原题下载
- 单项选择题
- 阅读程序
-
- 阅读程序 #1
-
- 判断题
- 单选题
- 阅读程序 #2
-
- 判断题
- 单选题
- 阅读程序 #3
-
- 判断题
- 单选题
- 完善程序
-
- 高精度减法
- 求区间最值
原题下载
试题及答案
单项选择题
共 15 题,每题 2 分,共计 30 分;每题有且仅有一个正确选项。
- CSP-J/S:CCF非专业级软件能力认证(Certified Software Professional Junior/Senior,简称CSP-J/S)创办于( )年。
- A. 2018 2018 2018
- B. 2019 2019 2019
- C. 2020 2020 2020
- D. 2021 2021 2021
- 十进制数 2023 2023 2023等值于二进制数( )。
- A. 11100000111 11100000111 11100000111
- B. 11000001111 11000001111 11000001111
- C. 10100010111 10100010111 10100010111
- D. 11111100111 11111100111 11111100111
解析:
- 2023 = 2 10 + 2 9 + 2 8 + 2 7 + 2 6 + 2 5 + 2 2 + 2 1 + 2 0 = 1024 + 512 + 256 + 128 + 64 + 32 + 4 + 2 + 1 = 11111100111 2 2023=2^{10}+2^9+2^8+2^7+2^6+2^5+2^2+2^1+2^0=1024+512+256+128+64+32+4+2+1=11111100111_2 2023=210+29+28+27+26+25+22+21+20=1024+512+256+128+64+32+4+2+1=111111001112
因此,答案为D。
- 将中缀表达式
F-(B+C/D)*E
的后缀形式是( )。
- A.
FB-C+D/E*
- B.
FBC+D/-E*
- C.
FBCD/E*+-
- D.
FBCD/+E*-
解析:按照计算顺序将中缀表达式转换为后缀表达式
C/D
→ \to →CD /
(B+C/D)
→ \to →B C D / +
(B+C/D)*E
→ \to →B C D / + E *
F-(B+C/D)*E
→ \to →F B C D / + E * -
因此,答案为D。
4. 对二叉排序树进行()遍历,可以得到该二叉树所有结点构成的有序序列。
- A. 前序
- B. 中序
- C. 后序
- D. 按层次
解析:二叉排序树(Binary Search Tree,BST)是满足以下性质的二叉树:
- 左子树所有节点值 < 根节点值
- 右子树所有节点值 > 根节点值
- 左右子树也分别为BST
如下图所示:
对BST进行中序遍历结果必然为有序序列。因此,答案为B。
- 递归过程或函数调用时,处理参数和返回地址,通常使用一种称为()的数据结构。
- A. 栈
- B. 队列
- C. 树
- D. 链表
解析:在处理递归过程或函数调用时,参数和返回地址的存储通常使用**栈(Stack)**这种数据结构。栈的后进先出(LIFO)特性完美匹配函数调用的嵌套顺序和返回逻辑。
因此,答案为A。
- 某有序数列有 1000 1000 1000个各不相同的元素,由小到大排列,现要对该数列进行二分查找,在最坏的情况下,需要查找( )个元素。
- A. 1000
- B. 500
- C. 10
- D. 8
解析:对长度为 n n n的有序数列进行二分查找,在最坏的情况下,需要查找 ⌈ l o g 2 n ⌉ \lceil log_2n\rceil ⌈log2n⌉个元素。
因此,答案为C。
- 将两个各有 100 100 100个元素的有序表合并成一个有序表,最坏情况下的比较次数是()?
- A. 100 100 100
- B. 199 199 199
- C. 200 200 200
- D. 99 99 99
解析:将两个各有序表合并成一个有序表,最坏情况指的是在合并过程中,每一次比较都只将一个元素放入结果表,且直到最后一个元素时才结束比较。例如:
- 表A:[1,3,5,…,199](100个奇数)
- 表B:[2,4,6,…,200](100个偶数)
合并时,每次比较都只能选择一个元素(如 1 vs 2 选 1,3 vs 2 选 2,3 vs 4 选 3,…),直到最后两个元素 199 和 200 的比较。最后一次比较时,两个表中各剩一个元素,比较后直接放入两个元素,比较次数比总元素数少 1 1 1。对于两个长度分别为 m m m 和 n n n 的有序表,最坏情况下的比较次数为 m + n − 1 m+n−1 m+n−1。
因此,答案为B。
- 线性链表不具有的特点是( )。
- A. 随机访问
- B. 不必事先估计所需存储空间大小
- C. 插入与删除时不必移动元素
- D. 所需空间与线性表长度成正比
解析:线性链表在内存中不要连续存储,所以不支持随机访问某一位置上的元素。
因此,答案为A。
- 二叉树的先序遍历和中序遍历如下,该二叉树根的左子树的根是()。
-
先序遍历:
EFHIGJK
-
中序遍历:
HFIEJKG
-
A.
E
-
B.
F
-
C.
G
-
D.
H
解析:先序遍历确定根节点,中序遍历确定左右子树包含的节点,题目中的二叉树如下图所示:
左子树的根节点为F
。因此,答案为B。
- 下面关于算法的描述不正确的是( )。
- A. 算法必须有输出
- B. 算法必须在计算机上用某种语言实现
- C. 算法不一定有输入
- D. 算法必须在有限步执行后能结束
解析:算法不依赖于某种计算机语言,甚至可以用自然语言描述。因此,答案为B。
- 下列代码执行后,s的值是( )。
int s=0;
for(int i=1;i<=100;i++)for(int j=1;j<=i;j++) s++;
cout<<s<<endl;
- A. 100 100 100
- B. 10000 10000 10000
- C. 200 200 200
- D. 5050 5050 5050
解析:程序求解的是如下矩阵中数的个数
1
1 2
1 2 3
1 2 3 4
...
1 2 3 4 ... 100
一共有 1 + 2 + 3 + ⋯ + 100 = 5050 1+2+3+\dots+100=5050 1+2+3+⋯+100=5050个数。因此,答案为D。
- 若已知一个栈的入栈顺序是 1 , 2 , 3 , … , 100 1,2,3,…,100 1,2,3,…,100,其输出序列为 P 1 , P 2 , P 3 , … , P 1 00 P_1,P_2,P_3,…,P_100 P1,P2,P3,…,P100,若 P 1 P_1 P1是100,则 P i P_i Pi是( )。
- A. i i i
- B. 100 − i 100-i 100−i
- C. 101 − i 101-i 101−i
- D. 不确定
解析:对栈来说,按照 1 , 2 , 3 , … , 100 1,2,3,…,100 1,2,3,…,100顺序入栈,并且第 1 1 1个出栈元素为 100 100 100,那么此时 1 ∼ 99 1\sim99 1∼99都在栈中,第 2 2 2个出栈元素为 99 99 99,第 3 3 3个出栈元素为 98 98 98…,第 i i