CSP-J 第一轮认证知识点大全(上)
前言
CSP 非专业级认证的第一轮(初赛)需要对于基础知识的极度熟悉,故写下此合集,以便大家复习此前几次认证中出现的知识点,并应对2025 CSP-J 的第一轮认证。
合集框架:
| 文章标题 | 对应试题 |
|---|---|
| CSP-J 第一轮认证知识点大全(上) | 单项选择 |
| CSP-J 第一轮认证知识点大全(下) | 阅读、补全程序 |
另:CSP-J 第一轮认证原卷可在洛谷有题上找到。
\(\textcolor{red}{文章仍在更新中……}\)
文章使用 Markdown & \(\LaTeX\) 撰写
一、信息学史及基本知识
1、计算机科学领域的最高奖项
有关年份:2019、2021
图灵奖:全称A.M.图灵奖(ACM A.M Turing Award),是由美国计算机协会(ACM)于1966年设立的计算机奖项。More...
2.有关计算机软硬件的基本知识
有关年份:2019、2020、2021、2022、2023、2024
- 中国的国家顶级域名是 .cn
- 常见操作系统:Windows、macOS、Android、iOS、HarmonyOS、Linux……(注意与软硬件名称的区分,如:微信、iPad……)
- 内存地址是指内存中存储数据的位置,用于访问电脑主存中的数据。(每个存储单元都被赋予一个唯一的序号)
- 编译器的主要功能是将源程序翻译成机器指令代码
- 目前主流的计算机储存数据最终都是转换成二进制数据进行储存
- 在计算机中,比特(bit) 的数据存储容量最小。常用储存单位换算关系如下:
\(8 bit=1 byte;1024 byte=1 KB;1024 KB=1 MB;1024 MB=1 GB;1024 GB=1TB\) - 图像文件字节数=图像分辨率×颜色深度÷8
例:\(2048 \times 1024 \times 32 \div 8 = 8388608 byte = 8MB\)
3.进制、进制转换及计算
Ⅰ.关于进制
各进制的字母表达
十六进制——\(H(Hexadecimal)\)
十进制——\(D(Decimal)\)
八进制——\(O(Octonary)\)
二进制——\(B(Binary)\)
Ⅱ.进制转换
1)整数转换
- 十进制转 \(k\) 进制的方法:
十进制数除以 \(k\) ,得到余数,再将得到商继续除以 \(k\) ,直到商为0终止,然后反向取余数。这个过程通常被称为“短除法”。
例如:\(67_{10}\) → \(1000011_2\)
过程如图:

- \(n\) 位 \(k\) 进制转十进制的方法:
即将 \(\overline{ab...n}_{k}\) 转为 \(x _{10}\),有如下公式:
- 二进制转八进制、十六进制的方法:
从小数点开始,整数部分向左、小数部分向右,每3位为一组用一位八进制数的数字表示,不足3位的要用“0”补足3位,就得到一个八进制数。
如图:
转十六进制同理,每四位一组进行操作。 - 八进制、十六进制转二进制的方法:
将原数字每位取出进行短除法转换为二进制,补齐位数后再合起来。(实为前一方法的倒推)
如图:
- 任意进制转换的方法:
以十进制作为中转,间接求解。
2)小数转换
- \(k\) 进制小数转 \(n\) 进制的方法:
即将 \(\overline{0.abcd}_ {k}\) 转为 \(n\) 进制,取 \(\overline{0.abcd}_ {k} \times k\) 的整数部分, 再将小数部分乘 \(n\) ,直到没有小数部分,再将之前取出的整数部分从前至后排列即为新的小数。
例:将 \(0.1101_2\) 转为十进制

Ⅲ.计算
以十进制为中转进行计算即可。
4.ASCII(美国信息交换标准代码)
有关年份:暂无
关于ASCII的介绍:戳这里
常用转换:More...
| 中文解释 | 十进制 |
|---|---|
| 字符0 | 48 |
| 字符A | 65 |
| 字符a | 141 |
二、数学基础
1.排列组合
1.组合计数原理
组合计数原理是组合数学中的重要内容,用于计算从给定元素集合中选取特定数量元素的组合方式数量,核心涉及分类加法计数原理和分步乘法计数原理:
Ⅰ.分类加法计数原理
完成一件事,有\(n\)类办法,在第\(1\)类办法中有\(m_1\)种不同的方法,在第\(2\)类办法中有\(m_2\)种不同的方法,……,在第\(n\)类办法中有\(m_n\)种不同的方法,那么完成这件事共有:
\(N = m_1 + m_2 + \cdots + m_n\)
种不同的方法。各类办法相互独立,任何一类办法中的任何一种方法都能独立完成此事。
示例:从A地到B地,坐火车有3种车次,坐汽车有2种车次,坐飞机有1种航班,则从A地到B地的出行方式共有:
\(3 + 2 + 1 = 6\)种。
Ⅱ.分步乘法计数原理
完成一件事,需要分成\(n\)个步骤,做第\(1\)步有\(m_1\)种不同的方法,做第\(2\)步有\(m_2\)种不同的方法,……,做第\(n\)步有\(m_n\)种不同的方法,那么完成这件事共有:
\(N = m_1 \times m_2 \times \cdots \times m_n\)
种不同的方法。各步骤相互依存,只有依次完成所有步骤才能完成这件事。
示例:从A地经B地到C地,从A地到B地有2条路可走,从B地到C地有3条路可走,则从A地经B地到C地的走法共有:
\(2 \times 3 = 6\)种。
2.组合相关概念
Ⅰ.组合
从\(n\)个不同元素中任意取出\(m(m\leq n)\)个元素并成一组,称为从\(n\)个不同元素中任取\(m\)个元素的一个组合。组合不强调元素顺序,只要元素相同,即便顺序不同也视为同一组合。
示例:从\(a\)、\(b\)、\(c\)三个元素中取\(2\)个元素的组合,\(\{a, b\}\)和\(\{b, a\}\)是同一个组合。
Ⅱ.组合数
从\(n\)个不同元素中任意取出\(m(m\leq n)\)个元素的所有可能组合的个数,称为组合数,用符号\(C_{n}^m\)(或\(\binom{n}{m}\))表示。其计算公式为:
其中\(A_{n}^m\)是排列数,\(n! = n \times (n - 1) \times \cdots \times 1\)。
示例:从5个不同元素中取3个元素的组合数为:
\(
C_{5}^3 = \frac{5!}{3!(5 - 3)!} = \frac{5 \times 4 \times 3!}{3! \times 2 \times 1} = 10
\)
3.组合数的性质
- 对称性:\(C_{n}^m = C_{n}^{n-m}\)
- 递推公式:\(C_{n}^m = C_{n-1}^m + C_{n-1}^{m-1}\)
- 和为2的幂:\(\sum_{k=0}^n C_{n}^k = 2^n\)
4.应用场景
- 概率计算:计算事件发生的可能情况数目
- 排列组合问题:如选择委员会成员、组队等
- 二项式定理:\((a+b)^n = \sum_{k=0}^n C_{n}^k a^{n-k} b^k\)
- 图论:计算图的边数、子图数目等
2.幻方
幻方是由 \(1\) 到 \(N^2\) 排列成的 \(N \times N\) 矩阵,满足每行、每列及对角线和(幻和)等(幻和 \(S = \frac{N (N^2+1)}{2}\))。
三、关于编程
有关年份:2019、2020、2021、2022、2023、2024
1.C++中的数据类型
-
C++ 的类型系统由如下几部分组成:
① 基础类型(括号内为代表关键词/代表类型)- 无类型/void 型 (void)
- 空指针类型 (std::nullptr_t) 【C++11 起】
- 算术类型
- 整数类型 (int)
- 布尔类型/bool 型 (bool) ※取值只可能为两种:true 和 false。
- 字符类型 (char)
- 浮点类型 (float,double)
② 复合类型
- 包括数组类型、引用类型、指针类型、类类型、函数类型等
-
下表给出在一般情况下,部分类型表示范围大小(少数平台上可能与下表不同):
| 类型 | 字节数 | 范围 |
|---|---|---|
| char | 1 | -128~127 |
| unsigned char | 1 | 0~255 |
| int | 4 | -2147483648~2147483647 |
| unsigned int | 4 | 0~4294967295 |
| short int | 2 | -32768~32767 |
| unsigned short int | 2 | 0~65535 |
| long long | 8 | -9223372036854775808~9223372036854775807 |
| unsigned long long | 8 | 0~18446744073709551615 |

浙公网安备 33010602011771号