CSP-J 2024 知识点精讲(上篇)
2024 年 CSP-J 入门级第一轮笔试共 15 道单项选择题,每题 2 分,合计 30 分。本篇文章对第 1-15 题逐题拆解,并归纳出核心知识点清单,帮助同学们在备考时精准定位薄弱环节。
一、2024 年选择题知识点总览
二、逐题精讲
第 1 题:32 位 int 的存储范围
答案:C. -2147483648 ~ +2147483647
核心知识点:补码表示
32 位有符号整数使用二进制补码存储,最高位为符号位。
最小值: 1000...000(31 个 0) = -2³¹ = -2147483648最大值: 0111...111(31 个 1) = 2³¹ - 1 = 2147483647
备考建议:熟记 8/16/32/64 位有符号整数范围,考试中常以不同形式出现。
第 2 题:多进制混合运算
答案:A. 13
题目:(148 − 1010₂) × D₁₆ − 1101₂
解题步骤:
14₈= 1×8 + 4 = 12 1010₂= 8 + 2 = 10 D₁₆= 13 1101₂= 8 + 4 + 1 = 13 原式 = (12 - 10) × 13 - 13 = 2 × 13 - 13 = 13
核心知识点:进制转换基本功
二进制:逢 2 进 1 八进制:逢 8 进 1,每 3 位二进制对应 1 位八进制 十六进制:逢 16 进 1,每 4 位二进制对应 1 位十六进制
备考建议:考前反复练习 2/8/10/16 进制互转,做到心算不出错。
第 3 题:组合计数
答案:B. 126
题目:从 A(4 人)、B(3 人)、C(3 人) 三个部门中选 4 人,每个部门至少 1 人。
核心思想:分类讨论
由于共选 4 人且每部门至少 1 人,必然是一个部门出 2 人,另两个部门各出 1 人。
A 出 2,B、C 各出 1:C(4,2) × C(3,1) × C(3,1) = 6 × 3 × 3 = 54 B 出 2,A、C 各出 1:C(3,2) × C(4,1) × C(3,1) = 3 × 4 × 3 = 36 C 出 2,A、B 各出 1:C(3,2) × C(4,1) × C(3,1) = 3 × 4 × 3 = 36
合计:54 + 36 + 36 = 126
备考建议:遇到"至少"问题,先确定分类标准,避免重复或遗漏。
第 4 题:格雷码
答案:D. 0000, 0001, 0011, 0010, 0110, 0111, 0101, 0100
核心知识点:格雷码定义
格雷码是一种相邻两个数只有一位二进制位不同的编码方式。
验证选项 D:
0000 → 0001(第 4 位不同) 0001 → 0011(第 3 位不同) 0011 → 0010(第 4 位不同) 0010 → 0110(第 2 位不同) 0110 → 0111(第 4 位不同) 0111 → 0101(第 3 位不同) 0101 → 0100(第 4 位不同) 每一对相邻数字都只有一位不同。
备考建议:记住格雷码的核心特征——"相邻仅一位变",考试时逐对验证即可。
第 5 题:存储单位换算
答案:D. 8388608
换算关系:
1 Byte = 8 bit 1 KB = 1024 Byte 1 MB = 1024 KB
所以:
1 MB = 1024 × 1024 × 8 bit = 8,388,608 bit 备考建议:区分大写 B(Byte,字节)和小写 b(bit,位),这是初赛常考陷阱。
第 6 题:C++ 基本数据类型
答案:C. struct
核心知识点:
C++ 基本数据类型包括:int、float、double、char、bool 等。
struct 是用户自定义的复合数据类型,用于将多个数据组合在一起。
备考建议:区分"基本类型"与"自定义类型",避免概念混淆。
第 7 题:C++ 循环语句
答案:D. repeat-until
核心知识点:
C++ 支持的循环语句:
for循环 while循环 do-while循环
repeat-until 是 Pascal、Lua 等语言中的循环结构,C++ 不支持。
备考建议:了解常见编程语言基本语法差异。
第 8 题:ASCII 码运算
答案:B. 'n'
解题过程:
'a' 的 ASCII 码为 97 97 + 13 = 110 ASCII 码 110 对应字符 'n'
备考建议:熟记常见字符 ASCII 码:a=97,A=65,0=48。
第 9 题:二分查找复杂度
答案:B. 10
核心知识点:二分查找每次将搜索范围减半
需要找到最小的 n,使得 2ⁿ > 1000。
2^10 = 1024 > 1000 所以最多需要 10 次比较。
备考建议:熟记二分查找时间复杂度 O(log n),能快速估算比较次数。
第 10 题:操作系统识别
答案:A. Notepad
核心知识点:
操作系统:Windows、macOS、Linux、Android、iOS 等 应用软件:Notepad(记事本)、Word、Photoshop 等
备考建议:掌握常见系统软件与应用软件的区别。
第 11 题:无向图度数之和
答案:B. 图的边数的两倍
核心知识点:
在无向图中,每条边连接两个顶点,为这两个顶点的度数各贡献 1。
因此,所有顶点的度数之和 = 2 × 边数。
备考建议:这是图论中的握手定理,初赛高频考点。
第 12 题:二叉树遍历
答案:A. [D, E, B, F, G, C, A]
核心知识点:由前序+中序重构二叉树
前序: [A, B, D, E, C, F, G]→ 第一个元素 A 是根节点中序: [D, B, E, A, F, C, G]→ A 左边是左子树,右边是右子树
递归拆分即可得到二叉树结构,再后序遍历得到答案。
备考建议:掌握"前序找根、中序分左右"的重构方法。
第 13 题:栈操作合法性
答案:D. 1 3 5 2 4 6
核心思想:模拟栈操作
选项 A:全部入栈后全部出栈,可以实现 选项 B:1 入栈出栈,其余依次入栈后出栈,可以实现 选项 C:通过合理安排入栈出栈顺序,可以实现 选项 D:当 1、3、5 出栈后,栈内从底到顶为 2、4、6,此时 2 不可能在 5 之后出栈
备考建议:遇到栈合法性判断,耐心用一张纸模拟入栈出栈过程。
第 14 题:排列组合——捆绑法
答案:A. 4320
核心思想:相邻元素捆绑为一个整体
将 3 个女生捆绑为 1 个"大元素",与 5 个男生共 6 个元素排列:6! = 720 3 个女生内部可互换:3! = 6 总排列数:720 × 6 = 4320
备考建议:"必须相邻"用捆绑法,"不能相邻"用插空法。
第 15 题:编译器作用
答案:B. 将源代码转换为机器代码
核心知识点:
- 编译器
:将高级语言源代码翻译成机器可执行代码 - 解释器
:逐行解释执行源代码 - 调试器
:用于代码调试 - 操作系统
:管理程序运行时资源
备考建议:理解编译型语言与解释型语言的基本区别。
三、上篇知识点清单(建议收藏)
1. 计算机基础
整数补码表示与取值范围 二进制、八进制、十进制、十六进制互转 存储单位换算(bit / Byte / KB / MB) ASCII 码常见值 操作系统与应用软件区分 编译器作用
2. C++ 基础
基本数据类型:int、float、double、char、bool 复合数据类型:struct、数组 循环语句:for、while、do-while 字符运算与 ASCII 码转换
3. 算法与数据结构
二分查找时间复杂度 O(log n) 栈的基本操作与合法性判断 二叉树三种遍历(前序、中序、后序)及重构 无向图度数与边数关系
4. 数学与组合
组合数计算 C(n,k) 分类讨论思想 排列问题:捆绑法、插空法 格雷码相邻特性
四、备考建议
- 选择题部分性价比极高
:15 题 30 分,是拉开差距的关键。 - 基础知识要形成条件反射
:进制转换、ASCII 码、存储单位等必须做到秒算。 - 图论和树是每年必考
:重点掌握遍历、度数、边数关系。 - 组合数学要善于分类
:遇到"至少""相邻"等关键词,立刻想到对应方法。
下篇预告:CSP-J 2024 阅读程序题(第 16-26 题)精讲,重点剖析素数算法、动态规划(上楼梯最小花费)以及程序阅读技巧。
夜雨聆风