csp-j-2023真题

题目总数:42
总分数:100
时间:120分钟
第 1 题    单选题

C++中,下⾯哪个关键字⽤于声明⼀个变量,其值不能被修改?( 


A.

unsigned 


B.

const 


C.

static 


D.

Mutable


第 2 题    单选题

⼋进制数123456708 和076543218的和为( 


A.

222222218


B.

211111118


C.

221111118


D.

222222118


第 3 题    单选题

阅读下述代码,请问修改datavalue成员以存储3.14,正确的⽅式是( 

1  union Data{
2   int num;    
3   float value;    
4   char symbol;
5  };
6  union Data data;


A.

data.value = 3.14;


B.

value.data = 3.14;


C.

data->value = 3.14;


D.

value->data = 3.14;


第 4 题    单选题

假设有⼀个链表的节点定义如下:

1  struct Node {
2   int data;
3   Node* next;
4  };

现在有⼀个指向链表头部的指针:Node* head。如果想要在链表中插⼊⼀个新节点,其成员data的值为42,并使新节点成为链表的第⼀个节点,下⾯哪个操作是正确的?( 


A.

Node* newNode = new Node; newNode->data = 42; newNode->next = head; head = newNode;


B.

Node* newNode = new Node; head->data = 42; newNode->next = head;head = newNode; 


C.

Node* newNode = new Node; newNode->data = 42; head->next = newNode; 


D.

B. Node* newNode = new Node; newNode->data = 42; newNode->next = head; 


第 5 题    单选题

根节点的⾼度为1,⼀根拥有2023个节点的三叉树⾼度⾄少为( 


A.

6

B.

7

C.

8

D.

9

第 6 题    单选题

⼩明在某⼀天中依次有七个空闲时间段,他想要选出⾄少⼀个空闲时间段来练习唱歌,但他希望任意两个练习 的时间段之间都有⾄少两个空闲的时间段让他休息,则⼩明⼀共有( )种选择时间段的⽅案。


A.

31

B.

18

C.

21

D.

33

第 7 题    单选题

以下关于⾼精度运算的说法错误的是( 


A.

⾼精度计算主要是⽤来处理⼤整数或需要保留多位⼩数的运算。


B.

⼤整数除以⼩整数的处理的步骤可以是,将被除数和除数对⻬,从左到右逐位尝试将除数乘以某个数,通过减法得到新的被除数,并累加商。


C.

⾼精度乘法的运算时间只与参与运算的两个整数中⻓度较⻓者的位数有关。


D.

⾼精度加法运算的关键在于逐位相加并处理进位。 


第 8 题    单选题

后缀表达式“6 2 3 + - 3 8 2 / + * 2 ^ 3 +”对应的中缀表达式是( 


A.

((6 - (2 + 3)) * (3 + 8 / 2)) ^ 2 + 3

B.

6 - 2 + 3 * 3 + 8 / 2 ^ 2 + 3

C.

(6 - (2 + 3)) * ((3 + 8 / 2) ^ 2) + 3

D.

6 - ((2 + 3) * (3 + 8 / 2)) ^ 2 + 3

第 9 题    单选题


数(101010)2 和 (166)8 的和为( 


A.

(101100000)2

B.

(236)8

C.

(158)10

D.

(A0)16

第 10 题    单选题

假设有⼀组字符{a,b,c,d,e,f},对应的频率分别为5%9%,12%,13%,16%45%。请问以下哪个选项是字 a,b,c,d,e,f分别对应的⼀组哈夫曼编码?( 


A.

1111,1110,101,100110,0


B.

1010,10011000,011,01000


C.

000001,010,011,10,11


D.

1010,1011,110,11100,01


第 11 题    单选题

给定⼀棵⼆叉树,其前序遍历结果为:ABDECFG,中序遍历结果为:DEBACFG。请问这棵树的正确后序遍历结果是什么?( 


A.

EDBGFCA


B.

EDGBFCA


C.

DEBGFCA


D.

DBEGFCA 


第 12 题    单选题

考虑⼀个有向⽆环图,该图包括4条有向边:(1,2)(1,3)(2,4),和(3,4)。以下哪个选项是这个有向⽆环图的⼀个有效的拓扑排序?(

A.

42,3,1


B.

1,23,4


C.

12,4,3


D.

21,3,4


第 13 题    单选题

在计算机中,以下哪个选项描述的数据存储容量最⼩?( 


A.

字节(byte)


B.

⽐特(bit)


C.

字(word)


D.

千字节(kilobyte)


第 14 题    单选题

⼀个班级有10个男⽣和12个⼥⽣。如果要选出⼀个3⼈的⼩组,并且⼩组中必须⾄少包含1个⼥⽣,那么有多 少种可能的组合?( 


A.

1420

B.

1770

C.

1540

D.

2200

第 15 题    单选题

以下哪个不是操作系统?( 


A.

Linux


B.

Windows


C.

Android


D.

HTML


第 16-20 题    多题目

(1)

假设输⼊的所有数都为不超过1000的正整数,完成下⾯的判断题和单选题:


第1题 判断

当输⼊为“2 2 2”时,输出为“1.7321”


A.
正确
B.
错误

第2题 判断

将第7⾏中的"s-b*s-c""s-c)*

A.
正确
B.
错误

第3题 判断

程序总是输出四位⼩数


A.
正确
B.
错误

第4题 单选

当输⼊为“3 4 5”时,输出为( 


A.

"6.0000"


B.

"12.0000"


C.

"24.0000"


D.

"30.0000"


第5题 单选

当输⼊为“5 12 13”时,输出为( 


A.

24.0000


B.

30.0000


C.

60.0000


D.

120.0000


第 21-26 题    多题目

2)

第1题 判断

f函数的返回值⼩于等于min(n,m)。


A.
正确
B.
错误

第2题 判断

f函数的返回值等于两个输⼊字符串的最⻓公共⼦串的⻓度。


A.
正确
B.
错误

第3题 判断

当输⼊两个完全相同的字符串时,g函数的返回值总是true


A.
正确
B.
错误

第4题 单选

将第19⾏中的“v[m][n]”替换为“v[n][m]”,那么该程序


A.

行为不变


B.

只会改变输出


C.

一定非正常退出


D.

可能非正常退出


第5题 单选

当输入为 csp-j p-jcs 时,输出为()。


A.

0

B.

1

C.

T

D.

F

第6题 单选

当输⼊为“csppsc spsccp”时,输出为:( 


A.

T

B.

F

C.

0

D.

1

第 27-32 题    多题目

(3)

假设输⼊的

第1题 判断

如果输⼊的n为正整数,solve2函数的作⽤是计算n所有的因⼦的平⽅和


A.
正确
B.
错误

第2题 判断

12~13⾏的作⽤是避免n的平⽅根因⼦i(或n/i)进⼊第16⾏⽽被计算两次


A.
正确
B.
错误

第3题 判断

如果输⼊的n为质数,solve2(n)的返回值为n^2 + 1


A.
正确
B.
错误

第4题 单选

如果输⼊的n为质数p的平⽅,那么solve2(n)的返回值为( 


A.

B.

C.

D.

第5题 单选

当输⼊为正整数时,第⼀项减去第⼆项的差值⼀定( 


A.

⼤于0

B.

⼤于等于0且不⼀定⼤于0

C.

⼩于0

D.

⼩于等于0且不⼀定⼩于0

第6题 单选

 当输⼊为“5”时,输出为( 


A.

"651 625" 

B.

"650 729"

C.

"651 676"

D.

"652 625"

第 33-37 题    多题目

(1)(寻找被移除的元素)问题:原有⻓度为 n+1公差为1等升数列,将数列输到程序的数组时移除了⼀个元素,导致⻓度为 n 的开序数组可能不再连续,除⾮被移除的是第⼀个或最后之个元素。需要在数组不连续时,找出被移除的元素。试补全程序。

第1题 单选

①处应填( 


A.

1

B.

nums[0]

C.

right 

D.

left

第2题 单选

②处应填( 

A.

left=mid+1

B.

right=mid-1

C.

right=mid


D.

left=mid


第3题 单选

③处应填( 


A.

left=mid+1 


B.

right+nums[0] 


C.

mid+nums[0] 


D.

right+1


第4题 单选

 ④处应填( 


A.

left+nums[0] 


B.

right+nums[0]


C.

mid+nums[0]


D.

right+1


第5题 单选

 ⑤处应填( 


A.

nums[0]+n


B.

nums[0]+n-1 


C.

nums[0]+n+1


D.

nums[n-1]


第 38-42 题    多题目

(2) (编辑距离)给定两个字符串,每次操作可以选择删除(Delete)、插⼊(Insert)、替换(Replace),⼀个字符,求将第⼀个字符串转换为第⼆个字符串所需要的最少操作次数。

第1题 单选

 ①处应填( 


A.

j

B.

i

C.

m

D.

n

第2题 单选

 ②处应填( 


A.

j

B.

i

C.

m

D.

n

第3题 单选

 ③处应填( 


A.

str1[i-1]==str2[j-1]


B.

str1[i]==str2[j] 


C.

str1[i-1]=str2[j-1]


D.

str1[i]=str2[j]


第4题 单选

④处应填( 


A.

dp[i-1][j-1]+1 


B.

dp[i-1][j-1]


C.

dp[i-1][j] 


D.

dp[i][j-1]


第5题 单选

⑤处应填( 


A.

dp[i][j] + 1 


B.

dp[i-1][j-1]+1


C.

dp[i-1][j-1]


D.

dp[i][j]