CSP-S 知识点合集来啦!

真的很肝呀,点个赞吧,求求了!😁

目录

真的很肝呀,点个赞吧,求求了!😁

初赛 Linux 考点总结

GCC编译选项

进制转换

十转X进制:

小数部分转化

排序算法​编辑

原码、补码、反码、计算

一. 机器数和真值

1、机器数

2、真值

二. 原码, 反码, 补码的基础概念和计算方法.

计算深入

同余

同余的概念

负数取模

运算符

大端与小端模式

什么是低地址、高地址?

什么是数据的低位、高位?

大端模式

数据结构

基础数据结构

队列

链表

定义

有关树的定义

适用于无根树和有根树

只适用于有根树

特殊的树

树的遍历

拓展数据结构

线性结构:

  堆(优先队列):

图论有关:

  稀疏图:

  二分图(偶图)

性质

判定

  欧拉图

  有向无环图(DAG)

拓扑排序的概念

拓扑排序的应用

  连通图与强连通图

  双连通图

哈希表:

字符串Hash流程

字符串Hash正确性

数字哈希与哈希冲突

1、开放定址法:我们在遇到哈希冲突时,去寻找一个新的空闲的哈希地址。

(1)线性探测法

(2)平方探测法(二次探测)

2、再哈希法:

3、链地址法:

4、建立公共溢出区:


初赛 Linux 考点总结

[CSP-S2021] 在 Linux 系统终端中,用于列出当前目录下所含的文件和子目录的命令为 ( )

A. ls

B. cd

C. cp

D. all

答案:A

ls: 列出目前工作目录所含的文件及子目录

cd: 切换目录

cp: 复制文件或者目录

[CSP-S2022] 在 Linux 系统终端中,用于切换工作目录的命令为 ( )

A. ls

B. cd

C. cp

D. all

答案:B

[CSP-S2023] 在 Linux 系统终端中,以下哪个命令用于创建一个新的目录?

A. newdir

B. mkdir

C. create

D. mkfold

答案:B

mkdir 命令使用命令行接口创建目录并设置目录的权限

GCC编译选项

  • -c:编译源代码,但不进行链接操作,生成目标文件。

  • -o :指定输出文件名。例如,-o myprogram表示将输出文件命名为myprogram

  • -g:生成调试信息。这意味着编译器将在目标文件中包含调试信息,可以用于调试程序。

  • -O:指定优化级别。例如,-O2表示使用较高的优化级别。

  • -Wall:生成所有警告信息。这意味着编译器将生成所有警告信息,帮助开发者检查代码。

  • -std=:指定使用的 C/C++ 标准。例如,-std=c++11表示使用 C++11 标准。

  • -I:指定编译时搜索的头文件目录。

  • -D:定义宏。例如,-DDEBUG 表示定义宏 DEBUG

  • -U:取消定义宏。例如,-UDEBUG 表示取消定义宏 DEBUG

  • -E:只进行预处理操作,不进行编译和链接操作。

  • -Werror:将所有警告信息视为错误信息。这意味着编译器将在生成警告信息时停止编译操作。

进制转换

  1. 十进制: 都是以0-9这九个数字组成,不能以0开头。

  2. 二进制: 由0和1两个数字组成。

  3. 八进制: 由0-7数字组成,为了区分与其他进制的数字区别,开头都是以0开始。

  4. 十六进制:由0-9和A-F组成。为了区分于其他数字的区别,开头都是以0x开始。

十转X进制:
  1. 将需要转换的数 a 除以 x,取余 amod  x,余数为所求进制数,从下往上取

  2. 所的整数部分保留,重复步骤 1,直到商为 0。

例如:9(10)→1001(2)

小数部分转化

十转二:

原理:十进制小数转换成二进制小数采用 “乘2取整,顺序输出” 法。

例如:十进制小数0.68转换为二进制数。 具体步骤: 0.68×2=1.36→1 0.36×2=0.72→0 0.72×2=1.44→1 0.44×2=0.88→0 0.88×2=1.76→1 已经达到了题目要求的精度,最后将取出的整数部分顺序输出即可。 则为:0.68D–>0.10101B

其他进制思路一样小数与整数结合的,两种方法直接一起套用

二进制、八进制、十六进制转换为十进

小数部分:小数部分从小数点后一位指数-1为开始算起,以后依次为-2、-3……

排序算法

原码、补码、反码、计算

一. 机器数和真值

1、机器数

一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为 0, 负数为 1。

比如,十进制中的数 +3,计算机字长为 8 位,转换成二进制就是 00000011。如果是 −3 ,就是 10000011 。

那么,这里的 00000011 和 10000011 就是机器数。

2、真值

例:0000 0001的真值=+000 0001=+1,1000 0001的真值=–000 0001=–1

二. 原码, 反码, 补码的基础概念和计算方法.

前置知识:原码、反码、补码

  1. 原码

原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值。比如如果是8位二进制:

第一位是符号位。因为第一位是符号位,所以 8 位二进制数的取值范围就是:

原码是人脑最容易理解和计算的表示方式。

  1. 反码

反码的表示方法是:

正数的反码是其本身

负数的反码是在其原码的基础上,符号位不变,其余各个位取反。

可见如果一个反码表示的是负数, 人脑无法直观的看出来它的数值。通常要将其转换成原码再计算。

  1. 补码

补码的表示方法是:

正数的补码就是其本身

负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1。(即在反码的基础上+1)

对于负数, 补码表示方式也是人脑无法直观看出其数值的。通常也需要转换成原码在计算其数值。

计算深入

正数三码和一

为什么要有反码? 为了解决原码做减法的问题

为什么要有补码? 为了解决正负0同一个编码的问题

有了补码,反码还有作用吗? 可能真的没什么作用了,只是作为原码到补码的过度状态 ?可以简单地理解为原码到补码是一个层层递进的关系,也是一个在错误中逐步发展的过程。也就是说利用原码运算减法时出现的错误,为了解决出现了反码运算,但是反码运算时又出现了让人不满意的地方,于是为了更好的追求出现了补码。


同余

同余的概念

两个整数 a,b,若它们除以整数 m 所得的余数相等,则称 a,b 对于模 m 同余。

记作 a≡b(mod  m)

读作: a 与 b 关于模 m 同余。

举例说明:

所以 4,16,28关于模 12 同余。

负数取模

正数进行 mod 运算是很简单的。 但是负数呢?

下面是关于 mod 运算的数学定义:

上面公式的意思是:

xmod  y 等于 x减去 y 乘上 xy 向下取整。

以 −3mod  2 举例:

所以:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值