B. CSP-J 单项选择题练习(2020-2025)

    客观题

CSP-J 单项选择题练习(2020-2025)

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

CSP-J 单项选择题练习(2020-2025)

要求:独立完成,先不查答案。不会或不确定的题先标记。完成后再打开 CSPJ03 对照解析。

一、计算机基础与编程环境

1.(2020·J·T1)在内存储器中,每个存储单元都被赋予一个唯一的序号,称为( )。

{{ select(1) }}

  • 地址
  • 序号
  • 下标
  • 编号

2.(2024·J·T10)下面哪一个不是操作系统名字?

{{ select(2) }}

  • Notepad
  • Linux
  • macOS
  • Windows

3.(2020·J·T4)现有一张分辨率为 2048×1024 像素的 32 位真彩色图像。请问要存储这张图像,需要多大的存储空间?

{{ select(3) }}

  • 16MB
  • 4MB
  • 8MB
  • 32MB

4.(2021·J·T7)二进制数 101.11₂ 对应的十进制数是( )。

{{ select(4) }}

  • 6.5
  • 5.5
  • 5.75
  • 5.25

5.(2022·J·T13)八进制数 32.1₈ 对应的十进制数是( )。

{{ select(5) }}

  • 24.125
  • 24.250
  • 26.125
  • 26.250

6.(2023·J·T2)八进制数 (12345670)₈ 和 (07654321)₈ 的和为( )。

{{ select(6) }}

  • (22222221)₈
  • (21111111)₈
  • (22111111)₈
  • (22222211)₈

7.(2023·J·T9)数 101010₂ 和 166₈ 的和为( )。

{{ select(7) }}

  • 10110000₂
  • 236₈
  • 158₁₀
  • A0₁₆

8.(2024·J·T1)32 位 int 类型的存储范围是( )。

{{ select(8) }}

  • -2147483647 ~ +2147483647
  • -2147483647 ~ +2147483648
  • -2147483648 ~ +2147483647
  • -2147483648 ~ +2147483648

9.(2024·J·T2)计算 (14₈ - 1010₂) × D₁₆ - 1101₂ 的结果,并选择答案的十进制值。

{{ select(9) }}

  • 13
  • 14
  • 15
  • 16

10.(2024·J·T5)记 1KB 为 1024 字节,1MB 为 1024KB,那么 1MB 是多少二进制位(bit)?

{{ select(10) }}

  • 1000000
  • 1048576
  • 8000000
  • 8388608

11.(2025·J·T1)一个 32 位无符号整数可以表示的最大值,最接近下列哪个选项?

{{ select(11) }}

  • 4×10⁹
  • 3×10¹⁰
  • 2×10⁹
  • 2×10¹⁰

12.(2025·J·T13)十进制数 720₁₀ 和八进制数 270₈ 的和用十六进制表示是多少?

{{ select(12) }}

  • 388₁₆
  • 3DE₁₆
  • 288₁₆
  • 720₁₀

13.(2024·J·T15)编译器的主要作用是什么?

{{ select(13) }}

  • 直接执行源代码
  • 将源代码转换为机器代码
  • 进行代码调试
  • 管理程序运行时的内存

14.(2021·J·T1)以下不属于面向对象程序设计语言的是( )。

{{ select(14) }}

  • C++
  • Python
  • Java
  • C

15.(2022·J·T1)以下哪种功能没有涉及 C++ 语言的面向对象特性支持?

{{ select(15) }}

  • C++ 中调用 printf 函数
  • C++ 中调用用户定义的类成员函数
  • C++ 中构造一个 class 或 struct
  • C++ 中构造来源于同一基类的多个派生类

二、C++ 程序设计

16.(2023·J·T1)在 C++ 中,下面哪个关键字用于声明一个变量,其值不能被修改?

{{ select(16) }}

  • static
  • const
  • volatile
  • mutable

17.(2020·J·T3)设 x=true, y=true, z=false,以下逻辑运算表达式值为真的是( )。

{{ select(17) }}

  • (y∨z)∧x∧z
  • x∧(z∨y)∧z
  • (x∧y)∧z
  • (x∧y)∨(z∨x)

18.(2024·J·T7)以下哪个不是 C++ 中的循环语句?

{{ select(18) }}

  • for
  • while
  • do-while
  • repeat-until

19.(2024·J·T8)在 C/C++ 中,(char)('a'+13) 与下面的哪一个值相等?

{{ select(19) }}

  • 'm'
  • 'n'
  • 'z'
  • '3'

20.(2025·J·T2)在 C++ 中,执行 int x = 255; cout << (x & (x - 1)); 后,输出的结果是?

{{ select(20) }}

  • 255
  • 254
  • 128
  • 0

21.(2025·J·T7)假设 a、b、c 都是布尔变量,逻辑表达式 (a && b) || (!c && a) 的值与下列哪个表达式不始终相等?

{{ select(21) }}

  • a && (b || !c)
  • (a || !c) && (b || !c) && (a || a)
  • a && (!b || c)
  • !(!a || !b) || (a && !c)

22.(2020·J·T6)设 A 是 n 个实数的数组,递归算法 XYZ(A[1..n]):若 n=1 则返回 A[1];否则 temp←XYZ(A[1..n-1]),若 temp<A[n] 则返回 temp,否则返回 A[n]。算法 XYZ 的输出是什么?

{{ select(22) }}

  • A 数组的平均
  • A 数组的最小值
  • A 数组的中值
  • A 数组的最大值

23.(2024·J·T6)以下哪个不是 C++ 中的基本数据类型?

{{ select(23) }}

  • int
  • float
  • struct
  • char

24.(2022·J·T14)一个字符串中任意个连续的字符组成的子序列称为该字符串的子串,则字符串 abcab 有( )个内容互不相同的子串。

{{ select(24) }}

  • 12
  • 13
  • 14
  • 15

25.(2025·J·T9)下列关于 C++ string 类的说法,正确的是?

{{ select(25) }}

  • string 对象的长度在创建后不能改变
  • 可以使用 + 运算符直接连接一个 string 对象和一个 char 类型的字符
  • string 的 length() 和 size() 方法返回的值可能不同
  • string 对象必须以 '\0' 结尾,且这个结尾符计入 length()

26.(2021·J·T13)递归算法 solve(n):若 n≤1 返回 1;若 n≥5 返回 n×solve(n-2);否则返回 n×solve(n-1)。则调用 solve(7) 得到的返回结果为( )。

{{ select(26) }}

  • 105
  • 840
  • 210
  • 420

27.(2025·J·T3)函数 calc(n) 定义:若 n≤1 返回 1;若 n%2==0 返回 calc(n/2)+1;否则返回 calc(n-1)+calc(n-2)。则 calc(5) 的返回值是多少?

{{ select(27) }}

  • 5
  • 6
  • 7
  • 8

28.(2022·J·T15)以下对递归方法的描述中,正确的是:

{{ select(28) }}

  • 递归是允许使用多组参数调用函数的编程技术
  • 递归是通过调用自身来求解问题的编程技术
  • 递归是面向对象和数据而不是功能和逻辑的编程语言模型
  • 递归是将用某种高级语言转换为机器代码的编程技术

29.(2022·J·T3)运行以下代码片段的行为是:int x = 101; int y = 201; int *p = &x; int *q = &y; p = q;

{{ select(29) }}

  • 将 x 的值赋为 201
  • 将 y 的值赋为 101
  • 将 q 指向 x 的地址
  • 将 p 指向 y 的地址

30.(2023·J·T3)阅读代码:union Data{ int num; float value; char symbol; }; union Data data; 若要修改 data 的 value 成员以存储 3.14,正确的方式是:

{{ select(30) }}

  • data.value = 3.14;
  • value.data = 3.14;
  • data->value = 3.14;
  • value->data = 3.14;

31.(2023·J·T4)链表节点定义 struct Node{ int data; Node* next; };,指向头部的指针为 Node* head。插入新节点使其成为第一个节点,正确的操作是?

{{ select(31) }}

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

32.(2025·J·T10)考虑 C++ 函数:void solve(int &a, int b) { a = a + b; b = a - b; a = a - b; },int x=5, y=10; solve(x,y);。调用 solve 后,x 和 y 的值分别是?

{{ select(32) }}

  • 5, 10
  • 10, 5
  • 10, 10
  • 5, 5

三、数据结构

33.(2020·J·T7)链表不具有的特点是( )。

{{ select(33) }}

  • 可随机访问任一元素
  • 不必事先估计存储空间
  • 插入删除不需要移动元素
  • 所需空间与线性表长度成正比

34.(2021·J·T5)对于入栈顺序为 a、b、c、d、e 的序列,下列( )不是合法的出栈序列。

{{ select(34) }}

  • a,b,c,d,e
  • e,d,c,b,a
  • b,a,c,d,e
  • c,d,a,e,b

35.(2021·J·T9)表达式 a*(b+c)*d 的后缀表达式为( )。

{{ select(35) }}

  • **a+bcd
  • abc+d
  • abc+d**
  • a+bcd

36.(2022·J·T2)有 6 个元素,按照 6、5、4、3、2、1 的顺序进入栈 S,下列哪个出栈序列是非法的?

{{ select(36) }}

  • 543612
  • 453126
  • 346521
  • 234156

37.(2022·J·T4)链表和数组的区别包括( )。

{{ select(37) }}

  • 数组不能排序,链表可以
  • 链表比数组能存储更多的信息
  • 数组大小固定,链表大小可动态调整
  • 以上均正确

38.(2022·J·T5)栈 S 和队列 Q 初始为空。e1~e6 按进栈 S、出栈 S、进队列 Q、出队列 Q 的顺序操作。已知队列 Q 依次有 e2、e4、e3、e6、e5、e1 出队列,则栈 S 的容量至少是( )。

{{ select(38) }}

  • 2
  • 3
  • 4
  • 6

39.(2022·J·T6)对表达式 a+(b-c)*d 的前缀表达式为( )。

{{ select(39) }}

  • *+a-bcd
  • +a*-bcd
  • abc-d*+
  • abc-+d

40.(2022·J·T10)以下对数据结构的表述不恰当的一项为:

{{ select(40) }}

  • 图的深度优先遍历算法常使用的数据结构为栈
  • 栈的访问原则为后进先出,队列的访问原则是先进先出
  • 队列常常被用于广度优先搜索算法
  • 栈与队列存在本质不同,无法用栈实现队列

41.(2022·J·T11)以下哪组操作能完成在双向循环链表结点 p 之后插入结点 s 的效果?

{{ select(41) }}

  • p->next->prev=s; s->prev=p; p->next=s; s->next=p->next;
  • p->next->prev=s; p->next=s; s->prev=p; s->next=p->next;
  • s->prev=p; s->next=p->next; p->next=s; p->next->prev=s;
  • s->next=p->next; p->next->prev=s; s->prev=p; p->next=s;

42.(2023·J·T8)后缀表达式 6 2 3 + - 3 8 2 / + * 2 ^ 3 + 对应的中缀表达式是( )。

{{ select(42) }}

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

43.(2025·J·T15)初始为空的整数栈 S 和空队列 P。按顺序处理整数队列 A:7,5,8,3,1,4,2。规则:奇数压入栈 S;偶数且 S 非空,弹出栈顶加入队列 P 末尾;偶数且 S 为空,不操作。处理完毕后队列 P 的内容是?

{{ select(43) }}

  • 5,1,3
  • 7,5,3
  • 3,1,5
  • 5,1,3,7

44.(2020·J·T12)独根树的高度为 1。具有 61 个结点的完全二叉树的高度为( )。

{{ select(44) }}

  • 7
  • 8
  • 5
  • 6

45.(2021·J·T6)对于有 n 个顶点、m 条边的无向连通图(m>n),需要删掉( )条边才能使其成为一棵树。

{{ select(45) }}

  • n-1
  • m-n
  • m-n-1
  • m-n+1

46.(2021·J·T8)如果一棵二叉树只有根结点,那么这棵二叉树高度为 1。请问高度为 5 的完全二叉树有( )种不同的形态?

{{ select(46) }}

  • 16
  • 15
  • 17
  • 32

47.(2022·J·T7)字母表 {a,b,c,d,e} 频率分别为 10%,15%,30%,16%,29%。若使用哈夫曼编码,字母 d 的编码长度为( )位。

{{ select(47) }}

  • 1
  • 2
  • 2 或 3
  • 3

48.(2022·J·T8)一棵有 n 个结点的完全二叉树用数组存储,根结点在数组第 1 个位置。若存储在数组第 9 个位置的结点存在兄弟结点和两个子结点,则它的兄弟结点和右子结点的位置分别是( )。

{{ select(48) }}

  • 8, 18
  • 10, 18
  • 8, 19
  • 10, 19

49.(2023·J·T5)根节点的高度为 1,一棵拥有 2023 个节点的三叉树高度至少为( )。

{{ select(49) }}

  • 6
  • 7
  • 8
  • 9

50.(2023·J·T10)字符 {a,b,c,d,e,f} 频率分别为 5%,9%,12%,13%,16%,45%。以下哪个选项是字符 a,b,c,d,e,f 分别对应的一组哈夫曼编码?

{{ select(50) }}

  • 1111,1110,101,100,110,0
  • 1010,1001,1000,011,010,00
  • 000,001,010,011,10,11
  • 1010,1011,110,111,00,01

51.(2023·J·T11)前序遍历为 ABDECFG,中序遍历为 DEBACFG。后序遍历结果是?

{{ select(51) }}

  • EDBFGCA
  • EDBGCFA
  • DEBGFCA
  • DBEGFCA

52.(2024·J·T12)已知二叉树前序遍历 [A,B,D,E,C,F,G],中序遍历 [D,B,E,A,F,C,G],求后序遍历。

{{ select(52) }}

  • [D,E,B,F,G,C,A]
  • [D,E,B,F,G,A,C]
  • [D,B,E,F,G,C,A]
  • [D,E,B,F,G,A,C]

53.(2025·J·T4)用 5 个权值 10、12、15、20、25 构造哈夫曼树,该树的带权路径长度是多少?

{{ select(53) }}

  • 176
  • 186
  • 196
  • 206

54.(2025·J·T14)一棵包含 1000 个结点的完全二叉树,其叶子结点的数量是多少?

{{ select(54) }}

  • 499
  • 512
  • 500
  • 501

55.(2020·J·T8)有 10 个顶点的无向图至少应该有( )条边才能确保是一个连通图?

{{ select(55) }}

  • 9
  • 10
  • 11
  • 12

56.(2022·J·T9)考虑由 N 个顶点构成的有向连通图,采用邻接矩阵表示时,该矩阵中至少存在( )个非零元素。

{{ select(56) }}

  • N-1
  • N
  • N+1
  • N²

57.(2024·J·T11)在无向图中,所有顶点的度数之和等于( )。

{{ select(57) }}

  • 图的边数
  • 图的边数的两倍
  • 图的顶点数
  • 图的顶点数的两倍

58.(2025·J·T5)在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和,这个总和等于?

{{ select(58) }}

  • 顶点数
  • 边数
  • 顶点数+边数
  • 顶点数×2

四、算法

59.(2021·J·T4)以比较作为基本运算,在 N 个数中找出最大数,最坏情况下所需要的最少的比较次数为( )。

{{ select(59) }}

  • N²
  • N
  • N-1
  • N+1

60.(2021·J·T11)哈夫曼编码方法在本质上是一种( )的策略。

{{ select(60) }}

  • 枚举
  • 贪心
  • 递归
  • 动态规划

61.(2023·J·T6)小明有 7 个空闲时间段,选至少一个来练习唱歌,任意两个练习时间段之间至少有两个空闲时间段休息。共有( )种选择方案?

{{ select(61) }}

  • 31
  • 18
  • 21
  • 33

62.(2025·J·T12)用冒泡排序对数组 {6,1,5,2,4} 进行升序排序,需要进行多少次元素交换?

{{ select(62) }}

  • 5
  • 6
  • 7
  • 8

63.(2024·J·T9)假设有序表中有 1000 个元素,则用二分法查找元素 x 最多需要比较( )次。

{{ select(63) }}

  • 25
  • 10
  • 7
  • 1

64.(2022·J·T12)以下排序算法的常见实现中,哪个选项的说法是错误的:

{{ select(64) }}

  • 冒泡排序算法是稳定的
  • 简单选择排序是稳定的
  • 简单插入排序是稳定的
  • 归并排序算法是稳定的

65.(2025·J·T11)一个 8×8 的棋盘,左上角 (1,1),右下角 (8,8)。机器人从 (1,1) 出发,每次只能向右或向下走一格。到达 (4,5) 有多少种不同的路径?

{{ select(65) }}

  • 20
  • 35
  • 56
  • 70

五、数学与其他

66.(2025·J·T8)已知 f[0]=1,f[1]=1,且对于 n≥2 有 f[n]=(f[n-1]+f[n-2])%7,那么 f[2025] 的值是多少?

{{ select(66) }}

  • 2
  • 4
  • 5
  • 6

67.(2020·J·T10)五个小朋友并排站成一列,其中有两个小朋友是双胞胎,要求这两个双胞胎必须相邻,则有( )种不同排列方法?

{{ select(67) }}

  • 48
  • 36
  • 24
  • 72

68.(2020·J·T14)10 个三好学生名额分配到 7 个班级,每个班级至少有一个名额,一共有( )种不同的分配方案。

{{ select(68) }}

  • 84
  • 72
  • 56
  • 504

69.(2020·J·T15)有五副不同颜色的手套(共 10 只,每副左右手各 1 只),一次性从中取 6 只手套,恰好能配成两副手套的不同取法有( )种。

{{ select(69) }}

  • 120
  • 180
  • 150
  • 30

70.(2021·J·T10)6 个人,两人组一队,共三队,不区分队伍编号。不同的组队情况有( )种。

{{ select(70) }}

  • 10
  • 15
  • 30
  • 20

71.(2021·J·T12)由 1,1,2,2,3 这五个数字组成不同的三位数有( )种。

{{ select(71) }}

  • 18
  • 15
  • 12
  • 24

72.(2023·J·T14)一个班级有 10 个男生和 12 个女生。选 3 人小组,至少包含 1 个女生,有多少种可能的组合?

{{ select(72) }}

  • 1420
  • 1770
  • 1540
  • 2200

73.(2024·J·T3)某公司 10 名员工分 3 个部门:A 部门 4 人,B 部门 3 人,C 部门 3 人。选 4 人组成工作组,每个部门至少 1 人。有多少种选择方式?

{{ select(73) }}

  • 120
  • 126
  • 132
  • 238

74.(2024·J·T14)有 5 个男生和 3 个女生站成一排,规定 3 个女生必须相邻,问有多少种不同的排列方式?

{{ select(74) }}

  • 4320 种
  • 5040 种
  • 3600 种
  • 2880 种

75.(2025·J·T6)从 5 位男生和 4 位女生中选出 4 人组成学习小组,要求男生和女生都有。有多少种不同的选法?

{{ select(75) }}

  • 126
  • 121
  • 120
  • 100

打印版原资料

⭐️CSP考前复习⭐️

未认领
状态
已结束
题目
5
开始时间
2026-9-18 0:00
截止时间
2026-9-26 23:59
可延期
24 小时