试卷 2024年北京市中小学信息学能力测评活动BCSP-X小高组真题
2024年北京市中小学信息学能力测评活动BCSP-X小高组真题
选择题
第 1 题    单选题

计算机在工作过程中突然停电,( )中的信息不会丢失。

A.

显存

B.

寄存器

C.

RAM

D.

ROM

第 2 题    单选题

中缀表达式a*(b+c)-d的后缀形式是( )。

A.

abcd*+-

B.

abc+*d

C.

abc*+d

D.

-+*abcd

第 3 题    单选题

设栈S的初始状态为空,元素a,b,c,d,e依次入栈,以下出栈序列不可能出现的有( )。

A.

a,b,c,e,d

B.

b,c,a,e,d

C.

a,e,c,b,d

D.

d,c,e,b,a

第 4 题    单选题
已知7个结点的⼆叉树的先根遍历是1245637(数字为结点编号),中根遍历是4265173,则该⼆叉树的后根遍历是( )。
A.
4652731
B.
4652137
C.
4231547
D.
4653172
第 5 题    单选题

C++中,若变量xint类型且已被赋值为40,x&(x-1)的值为()

A.

79

B.

47

C.

32

D.

0

第 6 题    单选题

有⼀个等比数列,共有奇数项,其中第⼀项和最后⼀项分别是2118098,中间⼀项是486,请问以下那个数是可能的公比()。

A.

2

B.

3

C.

4

D.

5

第 7 题    单选题

设变量float 类型且⼰赋值,则以下语句能将x中的数值四舍五入到小数点后第2位的是()。

A.

x = (x * 100 + 0.5) / 100.0

B.

x = x * 100 + 0.5 / 100.0

C.

x = (x / 100 + 0.5) * 100. 0

D.

x = (int) (x * 100 + 0.5) / 100. 0

第 8 题    单选题

十六进制下,7*7 的运算结果为()。

A.

31

B.

38

C.

41

D.

48

第 9 题    单选题

()是⼀种选优搜索法,按选优条件向前搜索, 以达到⽬标。当搜索到某一步时,发现原先选择并不优或达不到目标,就退回⼀步重新选择。

A.

回溯法

B.

枚举法

C.

动态规划

D.

贪心

第 10 题    单选题

1TB代表的字节数⿏是()。

A.

210次方

B.

220次方

C.

230次方

D.

240次方

第 11 题    单选题

原字符串中任意一段连续的字符所组成的新字符串称为子串。则字符AAABBBCCC”共有()个不同的非空子串。

A.

3

B.

12

C.

36

D.

45

第 12 题    单选题

1958年以前的第⼀代计算机主要⽤于科学计算、军事研究。这些计算机以()为主要的逻辑元件。

A.

晶体管

B.

电子管

C.

集成电路

D.

⼤规模集成电路

第 13 题    单选题

链表不具备的特点是()。

A.

可用O1)时间随机访问任何⼀个元素。

B.

插入 、删除操作不需要移动元素。

C.

存储单元在内存中的地址可以不连续。

D.

无需事先估计存储空间大小。

第 14 题    单选题

以下排序算法中,()属于稳定排序算法。

A.

堆排序

B.

选择排序

C.

冒泡排序

D.

快速排序

第 15 题    单选题
完全⼆叉树的顺序存储⽅案, 是指将完全⼆叉树的结点从上到下 、从左到右依次存放 到⼀个顺序结构的数组中 。假定根结点存放在数组的1号位置上,则第k号结点的⽗结点  如果存在的话, 应当在放在数组中的() 号位置。
A.
2k
B.

2k+1

C.
⌊k/2⌋
D.
⌈k/2⌉
阅读程序题
第 16-22 题    组合题

假设输入的所有数是不超过100的正整数, 完成下面的判断题和单选题:

第16题 判断
判断題16.该程序的算法时间复杂度为0(n) 。( )
A.
正确
B.
错误
第17题 判断
若将第004⾏的代码改为“int n, a[105],avg, ans;”(声明变量时不赋值),程序仍可以被正常执行,且对于相同的输入数据,输出结果不变。( )
A.
正确
B.
错误
第18题 判断
若将第004⾏的代码改⼒“int n, a[100], avg = 0, ans = 0:”(更改数组a 的⼤⼩),程序仍可以被正常执⾏,且对于相同的输入数据,输出结果不变。()
A.
正确
B.
错误
第19题 判断
若将第011⾏的for 循环执⾏条件改为“i<=n”,程序仍可以被正常执行,且对于相同的输⼊数据,输出结果不变。( )
A.
正确
B.
错误
第20题 判断
若将第016⾏的代码改“else{”(去掉else 之后的条件判断),程序仍可以被正常执行,且对于相同的输入数据,输出结果不变。( )
A.
正确
B.
错误
第21题 判断
该程序的输出结果不可能为负数。( )
A.
正确
B.
错误
第22题 单选
若输入数据第一行为“7”,第二行为“1 9 2 8 12 2 8”,则程序将输出()。
A.

2

B.

16

C.

21

D.

26

第 23-28 题    组合题

假设输入的所有数是正整数, 其中n以及数组元素h[1], h[2],…, h[n均不超过1000000, m不超过 h[1], h[2],…, h[n]之和, 完成下面的判断题和单选题: 

第23题 判断
若将第 011⾏的 while循环执⾏条件改为“L<=R”,程序仍可以被正常执行,且对于相同的输入数据,输出结果不变。( )
A.
正确
B.
错误
第24题 判断
若将变量m和变量 tmp 的数据类型都改为int,程序仍可以被正常执行,且对于相同的输入数据输出结果不变 。( )
A.
正确
B.
错误
第25题 判断
程序的输出结果有可能是0。( )
A.
正确
B.
错误
第26题 单选
将第 012⾏代码改为( ),程序执行的效果不变。
A.
int mid = (L+R) / 2;
B.
int mid = (L+R) * 2;
C.
int mid = L + R + 1 << 2:
D.
 int mid = L + R + 1 >> 2;
第27题 单选
若输⼊数据第⼀⾏为“5 20”,第⼆⾏为“4 42 40 26 46”,则程序将输出( )。
A.

35

B.

36

C.

37

D.

38

第28题 单选
若输⼊的n为 10000,程序输出结果的最大可能值是( )。
A.
9999
B.

10000

C.
999999
第 29-35 题    组合题

假设输入的n是不超过 5000的正整数, 数组元素a[1], a[2],…, a[nl均是不超过1的非负整数, 完成下面的判断题和单选题判断题

第29题 判断
若将第 009 ⾏的 for 循环执⾏条件改为“i + k - 1<= n ”,程序仍可以被正常执行,且对于相同的输⼊数据, 输出结果不变。( )
A.
正确
B.
错误
第30题 判断
若将第 015 ⾏的代码改为“s++, res++;”(去掉 d[i]++),程序仍可以被正常执行,且对于相同的输⼊数据, 输出结果不变。( )
A.
正确
B.
错误
第31题 判断
若将第 015 ⾏的代码改为“s++, res++;”(去掉 d[i]++),程序仍可以被正常执行,且对于相同的输⼊数据, 输出结果不变。( )
A.
正确
B.
错误
第32题 判断
程序的输出结果有可能为0 。( )
A.
正确
B.
错误
第33题 判断
程序的输出结果必然小于输入的 n。( )
A.
正确
B.
错误
第34题 单选
该程序的算法时间复杂度为()。
A.

O(n)

B.

O(n log n)

C.

O(n2

D.

O(n2 log n)

第35题 单选
若输⼊数据第⼀⾏为“7”, 第⼆⾏为“0 0 1 0 1 0 0”,则程序将输出()。
A.

3

B.

4

C.

5

D.

6

完善程序题
第 36-40 题    组合题

给定⻓度n的整数序列a1,a2, …,an,以及q个询问 。每个询问将指定两个整数l,r,请判断下标在l与r之间的序列元素包括al与ar是否互不相同。输入数据保证1≤n,q≤100000,1≤ai≤n,1≤l≤r≤n。

第36题 单选
①处应填(       )。
A.
 last[tmp[i]] = a[i]
B.
last[i]= tmp[a[i]]
C.
tmp[last[i]]= i
D.
tmp[a[i]]=i
第37题 单选
②处应填(        )。
A.
last[tmp[i]]= a[i]
B.
last[i]= tmp[a[i]]
C.
tmp[last[i]]=i
D.
tmp[a[i]]=i
第38题 单选
③处应填(       )。
A.
mxlast[i]= MAXN
B.
mxlast[i]= tmp[i]
C.
mxlast[i]=0
D.
mxlast[i]=mxlast[ i -1 ]
第39题 单选
④处应填(       )。
A.
q--
B.
--q
C.
!(q--)
D.
!(--q)
第40题 单选
⑤处应填() 。
A.
mxlast[1]<= r
B.
mxlast[r]<= 1
C.
mxlast[1]>=r
D.
mxlast[r]>=1
第 41-45 题    组合题

给定正整数n, 请编写程序计算它的全部正约数之和 。输⼊数据保证 n ≤ 10000000。试⽤最优选项补全程序:

第41题 单选
①处应填(       )。
A.
ans/(x-1)
B.
ans*(x-1)
C.
(ans-1)*(x-1)
D.
 (ans-1)/(x-1)
第42题 单选
②处应填(       )。
A.
int i=1;i< MAXN; i++
B.
inti=1;i<= MAXN; i+
C.
int i=2;i< MAXN; i++ 
D.
int i=2;i<= MAXN; i++
第43题 单选
③处应填(    )。
A.
d[j]= i
B.
d[i]=j
C.
d[i]=i
D.
d[j]=j
第44题 单选
④处应填(       )。
A.
n -= d[n]
B.
n-= last
C.
n /= d[n]
D.
n--
第45题 单选
⑤处应填()
A.
last =d[n],t=0
B.
last =d[n],t=1
C.
last = d[n],t--
D.
last=-1,t=0
答题卡
选择题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
阅读程序题
完善程序题
题目总数:20
总分数:100
时间:120分钟