Fork me on GitHub

初赛典籍

1.单位转换

1B   (Byte 字节)=8 bit

1KB (Kilobyte 千字节)=1024B,

1MB (Megabyte 兆字节 简称“兆”)=1024KB,

1GB (Gigabyte 吉字节 又称“千兆”)=1024MB,

1TB (Trillionbyte 万亿字节 太字节)=1024GB

 

例题🌰
·一个32位整型变量占用()个字节。
A. 32
B. 128
C. 4
D. 8
这里的位指的是比特位,32/8 = 4,选 C

 

2.一些名人

  1. 艾伦·麦席森·图灵,英国人,计算机科学/人工智能之父,首次提出了计算机科学理论
  2. 冯·诺依曼,美国人,现代计算机之父,首次提出了存储程序控制原理
  3. 克劳德·香农,美国人,提出了某种信息从一处传送到另一处所需的全部设备所构成的系统, 创造了信息论
  4. Ada·Lovelace,第一位程序员/软件设计工程师

 

例题1🌰
以下奖项与计算机领域最相关的是( )。
A. 奥斯卡奖
B. 图灵奖
C. 诺贝尔奖
D. 普利策奖
计算机领域没有诺贝尔奖,选 B
例题2🌰
1948 年,( )将热力学中的熵引入信息通信领域,标志着信息论研究的开端。
A. 欧拉(Leonhard Euler)
B. 冯·诺伊曼(John von Neumann)
C. 克劳德·香农(Claude Shannon)
D. 图灵(Alan Turing)
看到信息论,选C

 

3.计算机语言常识

机器语言/机器码:最早的语言,计算机唯一能识别的语言由二进制数字组成,速度快,难度高。

汇编语言:用符号代替二进制数,计算机不能直接识别,需要用编译器进行编译,难度依然很大,目前除了对性能要求极高外不被使用。

高级语言:如今的编程语言(C++,JAVA等),需要用编译器,难度小,分为编译方式和解释方式两种编译方式。

编译方式(C++):先对整个程序进行编译(会进行多次分析),再执行程序。速度快(进行多次编译对程序进行优化)。

解释方式(Python/PHP):扫描一行解释一行,速度慢(无法进行优化)。

面向对象的语言有: Smalltalk,Eiffel,C++,Java,PHP,Python等

 

例题🌰
以下不属于面向对象程序设计语言的是( )。
A. C++
B. Python
C. Java
D. C
C语言是面向过程,选D

 

4.原码,反码,补码

计算机中要处理的整数有无符号有符号之分,无符号整数顾名思义就是不考虑正负的整数,可以直接用二进制表示

这里只讨论有符号整数。

原码:原码将一个整数表示成符号位+二进制串。符号位上,0表示正数 1表示负数

但是呢,只用原码的话,进行两个异号数相加或两个同号数相减时很不方便,而且, 0的表示不唯一(可以表示为 00000000 或 10000000)

所以,引入反码和补码的概念

反码:

对于一个正数反码就是其原码

对于一个负数反码就是除符号位外,原码的各位全部取反

补码:

对于一个正数补码就是其原码

对于一个负数补码等于反码 + 1

举个例子🌰
 5的原码,反码和补码都一样,为0101
然而,-5的原码为1101,其反码为1010,补码为1011

我们一般用原码表示正数,用补码表示负数

 

例题🌰
十进制数114的相反数的8位二进制补码是:
A. 10001110
B. 10001101
C. 01110010
D. 01110011
首先,我们要求出114的相反数,即-114的原码,为11110010
接下来,得到其反码: 10001101
最后,得到补码: 10001110
综上,选A

 

5.数据结构

5.1 树

树:一个长得像真实生活中倒置(即根在上、叶子在下)的树的图,任意两点之间的简单路径有且只有一条。树是一棵连通且无环的图,边数为 n-1

根节点:树最上层的节点,一棵树有且仅有一个。

深度:到根结点的路径上的边数

高度:所有结点深度最大值

叶节点:没有子结点的结点。

父亲:对于除根以外的每个结点,从该结点到根路径上的第二个结点根结点没有父结点

祖先:一个结点到根结点的路径上,除了它本身外的结点根结点的祖先集合为

子节点:如果 u 是 v的父亲,那么 v 是u  的子结点。子结点的顺序一般不加以区分二叉树是一个例外,有左儿子和右儿子之分。

兄弟:同一个父亲多个子结点互为兄弟

后代:如果 u 是 v 的祖先,那么v 是 u 的后代

子树:删掉与父亲相连的边后,该结点所在子图

 

5.2 二叉树

树的概念在二叉树中照样适用

下面是遍历相关:

先(前)序遍历:根 ->左儿子 -> 右儿子。

中序遍历:左子树  -> 根  -> 右子树。

后序遍历:左子树   ->右子树 -> 根。

另外,如果我们知道了中序遍历以及另外任意一个遍历结果,那么,我们必然会得到一个确定二叉树

下面是特殊的二叉树及其性质:

满二叉树(完美二叉树):所有叶结点的深度均相同的二叉树称为满二叉树(完美二叉树)。

完全二叉树:只有最下面两层结点的度数可以小于2 ,且最下面一层的结点都集中在该层的最左侧

对于一棵满二叉树,其高度为k ,则其节点总数为2k - 1 ,此结论可逆

对于一棵满二叉树(完全二叉树),设该节点的编号为i  ,则其左儿子的编号(如果有)为 2 * i ,其右儿子的编号(如果有)为 2 * i + 1  。此结论可逆。

对于二叉树而言,第i层的结点数最多为 2i-1

例题1🌰
如果一棵二叉树只有根结点,那么这棵二叉树高度为1 。请问高度为5的完全二叉树有 ( )种不同的形态?
A. 16
B. 15
C. 17
D. 32
因为完全二叉树要求最下面一层的结点都集中在该层的最左侧,所以,无论最后一层有多少个结点,其形态始终只有一个
5层的结点数最多为 pow (2,5-1),即16个节点
所以第5层的结点数最少为1个,最多为16个,共16种情况
选A
更多例题
 CSP 2021 提高级第一轮第8
CSP 2019 入门级第一轮第14

 

6.排序

分类 名称 时间复杂度 空间复杂度 稳定性
平均情况 最好情况 最坏情况 辅助存储
比较类 插入排序 直接插入排序 O(n^2) O(n) O(n^2) O(1) 稳定
希尔排序 O(n^3/2) O(n) O(n^2) O(1) 不稳定
选择排序 直接选择排序 O(n^2) O(n^2) O(n^2) O(1) 不稳定
堆排序 O(nlogn) O(nlogn) O(nlogn) O(1) 不稳定
交换排序 冒泡排序 O(n^2) O(n) O(n^2) O(1) 稳定
快速排序 O(nlogn) O(nlogn) O(n^2) O(logn) 不稳定
归并排序 O(nlogn) O(nlogn) O(nlogn) O(n) 稳定
非比较类 计数排序 O(n+k) O(n+k) O(n+k) O(max(n,k)) 稳定
基数排序 O(n*k) O(n*k) O(n*k) O(n*k) 稳定
桶排序 O(n+k) O(n+k) O(n^2) O(n+k) 稳定

 

7.模拟赛

c++之父是 本贾尼·斯特劳斯特卢普

C++编译器,属于系统软件,所有的编译器都属于系统软件

 

8.数学

  • 🌰 有7个一模一样的苹果,放到3个一样的盘子中,一共有()种方法
  • 🌰 甲、乙、丙三位同学选修课程,从4门课程中,甲选修2门,
posted @   Doria_tt  阅读(118)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示