2024CSP-J原创初赛模拟卷3

(认证时间:2023年9月16日 09:30~11:30)
*
基本信息:
姓名:
姓名:
班级:
班级:
学校:
学校:

一、单项选择题(每题只有一个正确选项,每题2分,共30分)

*
1.计算机存储数据的基本单位是()
A. bit
B. Byte
C. GB
D. KB
*
2.十进制小数13.375对应的二进制数是()
A. 1101.011
B. 1011.011
C. 1101.101
D. 1010.01
*
3.要求以下程序的功能是计算:s=1+1/2+1/3+...+1/10。
#include
using namespace std;
int main(){
int n;
float s;
s = 1.0;
for(n = 10; n > 1; n--)
s = s + 1 / n;
cout << s << endl;
return 0;
}
程序运行后输出结果错误,导致错误结果的程序行是()。
A. s = 1.0;
B. for(n = 10; n > 1; n--);
C. s = s + 1 / n;
D. cout << s << endl;
*
4.2017 年 10 月 1 日是星期日,1999 年 9 月 29 日是()
A. 星期三
B. 星期日
C. 星期五
D. 星期二
*
5.已知表头元素为c的单链表在内存中的存储状态如下表所示。现将f存放于1014H处并插入单链表,若f在逻辑上位于a和e之间,则a,e,f的“链接地址”依次是()
地址 元素 链接地址
1000H a 1010H
1004H b 100CH
1008H c 1000H
100CH d NULL
1010H e 1004H
1014H f
A. 1010H,1014H,1004H
B. 1010H,1004H,1014H
C. 1014H,1010H,1004H
D. 1014H,1004H,1010H
*
6.设二叉树有2n个结点,且m<n,则不可能存在()的结点。
A. n个度为0
B. 2m个度为0
C. 2m个度为1
D. 2m个度为2
*
7.一家四口人,至少两个人生日属于同一月份的概率是()(假定每个人生日属于每个月份的概率相同且不同人之间相互独立)。
A. 1/12
B. 1/144
C. 41/96
D. 3/4
*
8.表达式a * (b + c) * d的后缀形式为()
A. a
b
c
d * + *
B. a b c + * d *
C. a * b c + * d
D. b + c * a * d
*

8.表达式a * (b + c) * d的后缀形式为( )

【多选题】
A.a b c d * + *
B. a b c + * d *
C.a * b c + * d
D.b + c * a * d
*
9.求整数的阶乘的算法如下,其时间复杂度是()。
int fact(int n){
if(n <= 1) return 1;
return n*fact(n-1);
}
A.O(log2n)
B.O(n)
C.(nlon2n)
D.O(n^2)
*
10.将 7 个名额分给 4 个不同的班级,允许有的班级没有名额,有()种不同的分配方案。
A. 60
B. 84
C. 96
D. 120
*
11.若 f[0] = 0, f[1] = 1, f[n + 1] = (f[n] + f[n - 1]) / 2,则随着 i 的增大,f[i]将接近于()。
A. 1/2
B. 2/3
C. (√5 - 1)/2
D. 1
*
12.设a,b,c,d,e,f以所给的次序进栈,若在进栈操作时,允许出栈操作,则下面得不到的序列为()
A. fedcba
B. bcafed
C. dcefba
D. cabdef
*
13.若串 ”S=“copyright”,其子串的个数是()。
A. 78
B. 45
C. 46
D. 36
*
14.下列哪个算法不是用来求最小生成树的:()
A. Kruscal 算法
B. Boruvka 算法
C. Prim 算法
D. Tarjan 算法
*
15.甲、乙、丙三位同学选修课程,从 4 门课程中,甲选修 2 门,乙、丙各选修3门,则不同的选修方案共有()种。
A. 36
B. 48
C. 96
D. 192

二、阅读程序(程序输入不超过数组或字符串定义的范围;判断题正确填√,错误填×;除特殊说明外,判断题 1.5 分,选择题 3 分,共计 40 分)

1.

● 判断题



*
16..将第7行改为”memset(a, n, sizeof(a));”程序运行结果不变。( )
*
17..将第12行的”ok=false”改为”break”程序可能会进入死循环。( )
*
18.程序可能会输出多行。( )
*
19.(2分)将第 12 行”--a[y%10]<0”改为”a[y%10]--<0”程序运行结果不变。( )
*
20.程序输入3时,输出()。
A. 2
B. 3
C. 10
D. 11
*
21.程序输入20时,输出()。
A. 20
B. 99
C. 100
D. 101

2.


● 判断题

*
22..将第 04 行的&去除掉后,程序仍能通过编译。( )
*
23..读入的 x,y,p 为 int 范围内任意值时程序均能完成运行。( )
*
24.(2分)若 x=1 时,输出的 x,y 与输入的一致。( )
*
25.(2分)输出的 x 必然小于等于输入的 x。( )
*
26.输入为 7 33 2 时,输出为()。
A. 4 31
B. 4 35
C. 3 31
D. 3 35
*
27.(4分)输入为 33 7 2 时,输出为()。
A. 5 3
B. 3 5
C. 6 4
D. 4 6

3.



(约定每次输入的str均由2个大写或小写字母拼接而成,如"aa", "Xt", "RE")

● 判断题

*
28.若n=1,则输出结果和输入的str 相同。( )
*
29.若每次输入的str 均为"aa" ,则输出结果为n+1 个'a' 拼接而成的字符串。( )
*
30.若n>1,且每次输入的str 共2n 个字符两两不同,则输出"No Solution"。( )
*
31.(2分)若n=26,且输入的str依次为"ab", "bc", "cd", ..., "za",则输出结果为"abcd...za"。( )
*
32.在所有str 中,出现奇数次的字母个数为( )时,程序不会输出"No Solution"。()
A. 1
B. 2
C. 3
D. 4
*
33.(4分)当输入为"9 ab cd hh od ob bb ba bh ha" 时,输出字符串的长度为()
A. 2
B. 8
C. 9
D. 10

1.(坐标统计)

输入n个点的坐标,输出每个点左下方的点的个数,并且输出哪个点的"左下角的点的个数"最多(若有并列,则输出编号最大的那个)

注:左下角的点指的是x和y的坐标都更小的点。

试补全程序。


*
34.①处应填()
A. 0
B. 1
C. i
D. 0x3f
*
35.②处应填()
A. y[j]<=y[i]
B. y[j]<y[i]
C. y[j]>y[i]
D. y[j]>=y[i]
*
36.③处应填()
A. ans=i
B. num[i]++
C. num[i]--
D. ans++
*
37.④处应填()
A. (num[i]>cnt)
B. (num[i]>=cnt)
C. (num[i]<cnt)
D. (num[i]<=cnt)
*
38.⑤处应填()
A. ans++
B. ans+=cnt
C.ans=i
D. ans=cnt

2.(n选m排列)

1~n中选m个数,输出这m个数的全排列,但由于这m个数并不确定,所以需要你输出所有可能的序列。

输出要求按照字典序从小到大输出。

题目保证

试补全程序。



*
39.①处应填()
A. false
B. true
C. 2
D. -1
*
40.②处应填()
A. vis[i]=true
B. a[i]=i
C. vis[a[i]]=true
D.vis[a[i]]=false
*
41.③处应填()
A. j
B. i
C. true
D. false
*
42.④处应填()
A. n
B. m
C. i
D. j
*
43.⑤处应填()
A. return 0
B. exit
C.continue
D. break
问卷星提供技术支持
举报