CSP-J 第一轮认证知识点大全(上)

前言

CSP 非专业级认证的第一轮(初赛)需要对于基础知识的极度熟悉,故写下此合集,以便大家复习此前几次认证中出现的知识点,并应对2025 CSP-J 的第一轮认证。
合集框架:

文章标题 对应试题
CSP-J 第一轮认证知识点大全(上) 单项选择
CSP-J 第一轮认证知识点大全(下) 阅读、补全程序

另:CSP-J 第一轮认证原卷可在洛谷有题上找到。
\(\textcolor{red}{文章仍在更新中……}\)
文章使用 Markdown & \(\LaTeX\) 撰写

一、信息学史及基本知识

1、计算机科学领域的最高奖项

有关年份:20192021
图灵奖:全称A.M.图灵奖(ACM A.M Turing Award),是由美国计算机协会(ACM)于1966年设立的计算机奖项。More...

2.有关计算机软硬件的基本知识

有关年份:201920202021202220232024

  • 中国的国家顶级域名.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.进制、进制转换及计算

有关年份:20202021202220232024

Ⅰ.关于进制

各进制的字母表达

十六进制——\(H(Hexadecimal)\)
十进制——\(D(Decimal)\)
八进制——\(O(Octonary)\)
二进制——\(B(Binary)\)

Ⅱ.进制转换

1)整数转换
  • 十进制转 \(k\) 进制的方法:
    十进制数除以 \(k\) ,得到余数,再将得到商继续除以 \(k\) ,直到商为0终止,然后反向取余数。这个过程通常被称为“短除法”。
    例如:\(67_{10}\)\(1000011_2\)
    过程如图:
    3.2.1
  • \(n\)\(k\) 进制转十进制的方法:
    即将 \(\overline{ab...n}_{k}\) 转为 \(x _{10}\),有如下公式:

\[\large x _{10}=a\times k^{n-1} + b\times k^{n-2} + ... + n \times k^0 \]

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

Ⅲ.计算

以十进制为中转进行计算即可。

4.ASCII(美国信息交换标准代码)

有关年份:暂无
关于ASCII的介绍:戳这里
常用转换:More...

中文解释 十进制
字符0 48
字符A 65
字符a 141

二、数学基础

有关年份:20192020202120232024

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}\))表示。其计算公式为:

\[C_{n}^m = \frac{A_{n}^m}{A_{m}^m} = \frac{n!}{m!(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.组合数的性质

  1. 对称性\(C_{n}^m = C_{n}^{n-m}\)
  2. 递推公式\(C_{n}^m = C_{n-1}^m + C_{n-1}^{m-1}\)
  3. 和为2的幂\(\sum_{k=0}^n C_{n}^k = 2^n\)

4.应用场景

  1. 概率计算:计算事件发生的可能情况数目
  2. 排列组合问题:如选择委员会成员、组队等
  3. 二项式定理\((a+b)^n = \sum_{k=0}^n C_{n}^k a^{n-k} b^k\)
  4. 图论:计算图的边数、子图数目等

2.幻方

幻方是由 \(1\)\(N^2\) 排列成的 \(N \times N\) 矩阵,满足每行、每列及对角线和(幻和)等(幻和 \(S = \frac{N (N^2+1)}{2}\))。

三、关于编程

有关年份:201920202021202220232024

1.C++中的数据类型

  1. C++ 的类型系统由如下几部分组成:
    ① 基础类型(括号内为代表关键词/代表类型)

    • 无类型/void 型 (void)
    • 空指针类型 (std::nullptr_t) 【C++11 起】
    • 算术类型
    • 整数类型 (int)
    • 布尔类型/bool 型 (bool) ※取值只可能为两种:true 和 false。
    • 字符类型 (char)
    • 浮点类型 (float,double)

    ② 复合类型

    • 包括数组类型、引用类型、指针类型、类类型、函数类型等
  2. 下表给出在一般情况下,部分类型表示范围大小(少数平台上可能与下表不同):

类型 字节数 范围
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
posted @ 2025-06-22 20:53  StevenJiahao  阅读(248)  评论(0)    收藏  举报