2024年山东省信息学小学组(CSP-X)第一轮试题
答案解析
一、选择题(共15题,每题2分,共计30分;每题有且仅有一个正确选项)
1.(2024)10+(2F)16 的运算结果是 ( C ) 。
A. (100000010110)2 B. (816)16 C. (2071)10 D. (4026)8
【解析】题目中算式转成10进制结果为2024 + 2*16+15 = (2071)10
选项A(100000010110)2=(1*21+1*22+1*24+1*211)10=(2070)10
选项B(816)16=(6*160+1*161+8*162)10=(2070)10
选项C(2F)16=(15*160+2*161)10=(15+32)10=(47)10,(2024)10+(2F)16=(2024+47)10=(2071)10
选项D(4026)8=(6*80+2*81+0*82+4*83)10=(2070)10
故选C
2.执行完以下代码后,c的值是 ( D )。
int a=9,b=6,c;
c=a/b+0.5;
- 1.5 B. 2 C. 2.0 D. 1
【解析】a,b,c均为int类型,得到c = 9 / 6 + 0.5 = 1 + 0.5 = 1.5。又因int类型在赋值时会把1.5小数点后面的丢掉。故结果为1
3.将数组{7, 20, 4, 16, 88, 0, 55, 100}中的元素按从大到小的顺序排列, 每次可以交换任意两个元素,最少需要交换( B )次。
A. 4 B. 5 C. 6 D. 7
【解析】因为每次可以交换任意两个元素,因此
第一次保证最大的100在第1位,交换100和7,得到
{100,20,4,16,88,0,55,7}。
第二次保证第二个最大的88在第2位,交换88和20,得到
{100,88,4,16,20,0,55,7}。
第三次保证第三个最大的55在第3位,交换55和4,得到
{100,88,55,16,20,0,4,7}。
第四次保证第四个最大的20在第4位,交换20和16,得到
{100,88,55,20,16,0,4,7},同时第五个最大的数16也已经就位。
第五次保证第六个最大的7在第6位,交换7和9,得到
{100,88,55,20,16,7,4,0}。至此8个数已经按照从大到小排序。
4.若待排序对象序列在排序前已按其排序码递增顺序排序,则采用( A )方法比较次数最少。
A. 直接插入排序 B. 快速排序 C. 归并排序 D. 直接选择排序
【解析】将一个待排序对象插入已经有序的序列中直接插入排序比较次数最少。由于序列已经是有序的,插入排序在处理每个元素时,只需要与已排序的元素进行一次比较即可确定其位置,因此比较次数最少。
5.设有一个100阶的对称矩阵保存在二维数组a[100][100], 满足a[i][j]=a[j][i], 如果采用压缩存储方式按行将矩阵的下三角部分的元素存入一维数组 b[ ]中,a[0][0]存入b[0]中,则a[10][5]在b[ ]中( B )位置。
A. 50 B. 60 C. 51 D. 61
【解析】本题是把一个二维数组a按照行优先的顺序把下半三角部分存入到数组b中。
a[0][0]
a[1][0], a[1][1]
a[2][0], a[2][1], a[2][2]
a[3][0], a[3][1], a[3][2], a[3][3]
... ...
可以看出第1行有1个元素,第2行有2个元素....第i行有i个元素,下标从0开始,a[10][5]位于第11行,前面已经有10行共(1+2+3+4+5+6+7+8+9+10)=55个元素,a[10][5]位于第11行的第6个,因此a[10][5]位于总的第61个的位置。存储到数组b,下标从0开始,所以a[10][5]在数组b中的下标是60。
6.字符串 abcabcabc有多少不同的非空子串? ( A ) 。
A. 24 B. 36 C. 45 D. 46
【解析】长度为1的非空子串有:a,b,c,共3个
长度为2的非空子串有:ab,bc,ca,共3个
长度为3的非空子串有:abc,bca,cab,共3个
长度为4的非空子串有:abca,bcab,cabc,共3个
长度为5的非空子串有:abcab,bcabc,cabca,共3个
长度为6的非空子串有:abcabc,bcabca,cabcab,共3个
长度为7的非空子串有:abcabca,bcabcab,cabcab,共3个
长度为8的非空子串有:abcabcab,bcabcabc,共2个
长度为9的非空子串有:abcabcabc,共1个
总共有3+3+3+3+3+3+3+2+1=24个
7.一个栈的输入顺序为1、2、3、4、5、6,下列序列中可能是栈的输出序列是( C )。
A. 654312 B. 241356 C. 216543 D. 125346
【解析】栈是一种先进后出的线性表。如果b在a的后面进栈,那么a一定要在b的后面出栈。只有C的过程合理。
选项A,6第一个出栈,说明1,2,3,4,5已经进栈,那么出栈时1只能在2的后面。
选项B,2第一个出栈,4第2个出栈,说明前面1和3已经进栈,那么出栈时1只能在2的后面。
选项D,1进栈出栈,2进栈出栈,然后5出栈,则3和4已经进栈,那么出站时3只能在4的后面。
8.一棵二叉树的中