2019年CSP-J 初赛真题模拟赛

选手注意:
试题满分100分。
不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。
线上考试不得借助网络搜索或编译器。
*
考生信息:
姓名:
姓名:
一、单项选择题(共 15 题,每题 2 分,共计 30 分;每题有且仅有一个正确选项)
*
1.中国的国家顶级域名是?
.ch
.cn
.chn
.china
*
2. 二进制数11 1011 1001 0111和01 0110 1110 1011 进行逻辑与运算的结果是?
01 0010 1000 0001
01 0010 1000 0011
01 0010 1000 1011
01 0010 1001 0011
*
3. 一个32位整型变量占用的字节数是?
8
128
4
32
*
4. 若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0):
s=a;
for(b=1;b<=c;b++) s=s-1;
则与上述程序段功能等价的赋值语句是?
s=b-c;
s=s-c;
s=a-c;
s=a-b;
*
5. 设有100个已排好序的数据元素,采用折半查找时,最大比较次数为?
7
10
6
8
*
6. 链表不具有的特点是?
所需空间与线性表长度成正比
不必事先估计存储空间
可随机访问任一元素
插入删除不需要移动元素
*
7. 把8个同样的球放在5个同样的袋子里,允许有的袋子空着不放,问共有多少种不同的分法(如果8个球都放在一个袋子里,无论是哪个袋子,都只算同一种分法)?
22
18
20
24
*
8. 一棵二叉树如右图所示,若采用顺序存储结构,即用一维数组元素存储该二叉树中的结点(根结点的下标为1,若某结点的下标为i,则其左孩子位于下标2i处、右孩子位于下标2i+1处),则该数组的最大下标至少为?
10
12
6
15
*
9. 100以内最大的素数是?
88
91
97
93
*
10. 319和377的最大公约数是?
31
33
27
29
*
11. 新学期开学了,小胖想减肥,健身教练给小胖制定了两个训练方案。方案一:每次连续跑3公里可以消耗300千卡(耗时半小时) ;方案二:每次连续跑5公里可以消耗600千卡(耗时1小时)。小胖每周周一到周四能抽出半小时跑步,周五到周日能抽出一小时跑步。另外,教练建议小胖每周最多跑21公里,否则会损伤膝盖。请问如果小胖想严格执行教练的训练方案,并且不想损伤膝盖,每周最多通过跑步消耗多少千卡?
2500
3000
2520
2400
*
12.一副纸牌除掉大小王有52张牌,四种花色,每种花色13张。假设从这52张牌中随机抽取13张纸牌,则花色一致的牌数至少是?
2
3
4
5
*
13.一些数字可以颠倒过来看,例如0、1、8颠倒过来还是本身,6颠倒过来是9,9颠倒过来看还是6,其他数字颠倒过来都不构成数字。类似的,一些多位数也可以颠倒过来看,比如106颠倒过来是901。假设某个城市的车牌只由5位数字组成,每一位都可以取0到9。请问这个城市最多有多少个车牌倒过来恰好还是原来的车牌?
60
100
75
125
*
14.假设一棵二叉树的后序遍历序列为 DGJHEBIFCA ,中序遍历序列为DBGEHJACIF,则其前序遍历序列为?
ABDEGJHCFI
ABDEGHJCFI
ABDEGHJFIC
ABCDEFGHIJ
*
15.以下哪个奖项是计算机科学领域的最高奖?
普利策奖
图灵奖
诺贝尔奖
鲁班奖
二、阅读程序(程序输入不超过数组或字符串定义的范围;判断题正确填√,错误填×;除特殊说明外,判断题1.5分,选择题3分,共计40分)
*
1.

1.1 输入的字符串只能由小写字母或大写字母组成。
*
1.2 若将第8行的“i = 1”改为“i = 0”,程序运行时会发生错误。
*
1.3 若将第8行的“i <= n”改为“i * i <= n”,程序运行结果不会改变。
*
1.4 若输入的字符串全部由大写字母组成,那么输出的字符串就跟输入的字符串一样。
*
1.5 若输入的字符串长度为18,那么输入的字符串跟输出的字符串相比,至多有()个字符不同。
6
10
18
1
*
1.6 若输入的字符串长度为(),那么输入的字符串跟输出的字符串相比,至多有36个字符不同。
10^5
36
128
1
*
2.

假设输入的n和m都是正整数,x和y都是在[1, n]的范围内的整数,完成下面的判断题和单选题:

2.1 当m>0时,输出的值一定小于2n。
*
2.2 执行完第27行的"++ans"时,ans —定是偶数。
*
2.3  a[i]和 b[i]不可能同时大于0。
*
2.4 右程序执行到第13行时,x总是小于y,那么第15行不会被执行。
*
2.5 若m个x两两不同,且m个y两两不同,则输出的值为()。
2n-2
2n+2
2n
2n-2m
*
2.6 若m个x两两不同,且m个y都相等,则输出的值为()。
2n
2n-2m
2m
2n-2
*
3. 


3.1 如果a数组有重复的数字,则程序运行时会发生错误。
*
3.2  如果b数组全为0,则输出为0。
*
3.3 当n=100时,最坏情况下,与第12行的比较运算执行的次数最接近的是(   )
100
600
5000
6
*
3.4 当n=100时,最好情况下,与第12行的比较运算执行的次数最接近的是(   )
6
100
5000
600
*
3.5 当n=10时,若b数组满足,对任意0<=i<n,都有b[i] = i + 1,那么输出最大为(   )
383
385
386
384
*
3.6 当n=100时,若b数组满足,对任意0<= i < n,都有b[i]=1,那么输出最小为(    )
582
580
579
581
三 、完善程序(单选题,每小题3分,共计30分)
*
1.



1.1  ①处应填()
0
1
n%2
t
*
1.2  ②处应填(    )
x,y-step
x-step,y-step
x-step,y
x,y
*
1.3  ③处应填(   )
x-step,y
x,y-step
x-step,y-step
x+step,y+step
*
1.4  ④处应填()
n-1,0
n,0
n,n%2
n-1,n%2
*
1.5  ⑤处应填(    )
1<<n
n+1
1<<(n-1)
1<<(n+1)
*
2.




2.1 ①处应填(   )
++cnt[a[i] * maxs + b[i]]
++cnt [i]
++cnt[a[i]]
++cnt[b[i]]
*
2.2  ②处应填(    )
ord[--cnt[a[i]]] = b[i]
ord[--cnt[b[i]]] = a[i]
ord[--cnt[b[i]]] = i
ord[--cnt[a[i]]] = i
*
2.3  ③处应填(   )
++cnt[b[i]]
++cnt [i]
++cnt[a[i] * maxs + b[i]]
++cnt[a[i]]
*
2.4  ④处应填(    )
res[--cnt[b[ord[i]]]] = ord[i]
res[--cnt[a[i]]] = ord[i]
res[--cnt[a[ord[i]]]] = ord[i]
res[--cnt[b[i]]] = ord[i]
*
2.5  ⑤处应填(     )
a[res[i]], b[res[i]]
a[i], b[i]
a[res[ord[i]]]j, b[res[ord[i]]]
a[ord[res[i]]]j, b[ord[res[i]]]
问卷星提供技术支持
举报