初赛典籍
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.一些名人
- 艾伦·麦席森·图灵,英国人,计算机科学/人工智能之父,首次提出了计算机科学理论
- 冯·诺依曼,美国人,现代计算机之父,首次提出了存储程序控制原理
- 克劳德·香农,美国人,提出了某种信息从一处传送到另一处所需的全部设备所构成的系统, 创造了信息论
- 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门,
本文来自博客园,作者:Doria_tt,转载请注明原文链接:https://www.cnblogs.com/pangtuan666/p/16588512.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现