CSP 初赛
1. 计算机常识
| 代别 | 年代 | 逻辑(电子)原件 |
|---|---|---|
| 第一代 | 1946 - 1958 | 电子管 |
| 第二代 | 1959-1964 | 晶体管 |
| 第三代 | 1965-1970 | 集成电路 |
| 第四代 | 1971至今 | (超)大规模集成电路 |
\(ENIAC\) ,第一台电子计算机, 1946 年 2 月,美国宾夕法尼亚大学,占地 \(170 m^2\) ,质量 \(30 t\) , \(18000+\) 电子管,每秒 \(5000\) 次加法运算。
计算机硬件设备由 存储器、运算器、控制器、输入设备和输出设备 组成。
图灵是英国人。
第一位程序员: \(\texttt{Augusta Ada Lovlace}\) ,英。
\(EDVAC\),离散变量自动电子计算机。
摩尔定律:当价格不变时,集成电路上可容纳的晶体管数目,约每隔 \(18\) 个月便会增加一倍,性能也提升一倍。
光三原色:红,蓝,绿。
2. 系统的基本结构
\(CPU\) ,由运算器、控制器和一些寄存器储存,性能指标:主频,字长。
运算器:进行各种算术运算和逻辑运算;控制器:计算机指挥系统。
存储器,用于保存各类程序数据信息,分两类
- 主存储器,主机的一部分,分为 \(RAM\) , \(ROM\) ,和 \(Cache\) 三种。
- 辅助存储器,外部设备,存放站村不用的数据&程序,永久存储器,于 \(CPU\) 的关系:
\(CPU \leftrightarrows 内存储器 \leftrightarrows 外存储器\) 。
- \(RAM\) ,读写存储器,断电数据丢失;
- \(ROM\) ,只读不写和修改的存储器,断电不丢失数据,检查系统配置情况,提供最基本 \(IO\) 控制程序;
- \(Cache\) ,在 \(CPU\) 与内存间设置的一级或二级高速小容量存储器,称为高数缓冲存储器。
把数据从外读入 \(RAM\) ,在从 \(RAM\) 读入 \(Cache\) 中,\(CPU\) 直接从 \(Cache\) 中取数据操作。
\(CPU \leftrightarrows Cache \leftrightarrows 内存储器 \leftrightarrows 外存储器\)
常用外存储器:软盘、硬盘、闪存(优盘)和光盘。
软盘存储器由软盘、软盘驱动器、软盘适配器三部分组成。
硬盘存储器由电机和硬盘组成的,一般置于主机箱内。
光盘分为三类:只读,一次性写入型,可擦写。
总线结构:数据总线(\(DB\)) 、地址总线(\(AB\))、控制总线(\(CB\))。
性能标准:
- 字长:指计算机能处理的二进制代码的位数,字长越多,表示数值范围越大没计算结果有效数位更多,表示信息越多,功能越强。
- 运算速度:指每秒能执行的命令条数,单位: \(MIPS\) ,每秒百万条指令。
- 主频: \(CPU\) 的时钟频率,决定运算速度,越高,速度越快,单位: \(MHz\)兆赫或 \(GHz\) 吉赫。
- 内存:内存储器中能存储信息的字节总数,单位: \(GB\) ,目前有 \(2GB\) 、 \(4GB\) 、\(8GB\) 等。
3. 计算机语言
计算语言:二进制语言。
汇编语言属于低级语言。
编译性语言: \(C\) , \(C++\),\((Object)Pascal\) 等。解释性语言: \(PHP\) ,\(Ruby\),\(Java\) 等。
面向对象语言分为两种:
- 纯面向对象编程: \(Smalltalk\),\(EIFFEL\) 等;
- 混合型面向对象语言: \(C++\),\(Objective-C\) 等。
4. 数学类
基数于权:拿十进制举例,基数为 \(10\) ,百位的位权为 \(10^2\) ,十分位的位权为 \(10^{-1}\) 。
进制转换:
十进制转其他进制:倒除法;
其他进制转十进制:按位乘上位权;
十进制小数转二进制小数:乘二取余,顺序输出(到一停止)。
八进制转二进制:把每一位数转为二进制数:例: \((12.6)_8 = 001|010|110 = (1010.110)_2\) 。
二进制转八进制:分为小数位和整数位,分别三位一段转为数字(整数从后往前,小数从前往后):
例: \((1010.1101)_2 = (001|010)(110|100) = (12.64)_8\)
十六进制与二进制互转:与八进制二进制互转类似,改为四位一段。
设共 \(n\) 为二进制位:
原码: 符号位(正数为0,负数为1)+真值,表示范围为 \(0\) ~ \(2^n-1\)(无符号)或 \(-2^{n-1}\) ~ \(2^{n-1}-1\)(有符号)。
例: \(1010\) 的原码为 \(01010\) , \(-1010\) 的原码为 \(11010\) 。
反码:正数为符号位+真值,负数为除符号位外按位取反,表示范围为\(-2^{n-1}-1\) ~ \(2^{n-1}-1\).
例: \(1010\) 的反码为 \(01010\) , \(-1010\) 的反码为 \(10101\) 。
补码:正数为符号位+真值,负数为除符号位外按位取反,最低位加一,表示范围为\(-2^{n-1}\) ~ \(2^{n-1}-1\)
例: \(1010\) 的补码为 \(01010\) , \(-1010\) 的补码为 \(10110\) , \(-1\) 的补码为 \(11111111\) (以 \(8\) 位为例)。
浮点表示法:把一个二进制数通过移动小数点位置表示成阶码和尾数两部分。
逻辑运算
概念: 非:! 、与:& 、或:| 、异或: ^;
\(\wedge\) 相当于 && , \(\vee\) 相当于 || , \(\lnot\) 相当于 !
集合运算:
符号: 并运算: \(\cup\) , 交运算: \(\cap\) , 非运算: ~
概念:
- 并:两个集合内所有元素组成一个新组合;
- 交:同时在两个集合内的元素组成的一个新集合;
- 非:全集删去一个集合的元素,剩下的元素组成的一个新集合(要声明全集)。
信息编码
数据编码中的最小单位 \(Bit\) ,指 \(1\) 位二进制的数码。
字节:由八个 \(Bit\) 组成,是存储器系统的最小存取单位。
\(ASCII\) 编码:美国国家标准委员会制定的字符编码集,是一种 \(7\) 位二进制编码,能表示 \(128\) 种西文字符。
常用符号:
- 阿拉伯数字\(0\) ~ \(9\) : \(48\) ~ \(57\)
- 大写字母\(A\) ~ \(Z\) : \(65\) ~ \(90\)
- 小写字母\(a\) ~ \(z\) : \(97\) ~ \(122\)
汉字交换码
\(GB2312-80\) 标准包括了 \(6763\) 个汉字,按使用频度分为一级汉字 \(3755\) 个(按拼音排序)和二级汉字 \(3008\) 个(按部首排序),还包括标点、数种西文字母、图形、数码 \(682\) 个。
在相同点阵种,不论汉字笔画繁简,所占字节数相等。
网络知识
世界上最大的网络是因特网,其采用的网络协议为 \(TCP/IP\) 协议,是一种 \(4\) 层的协议方式。
\(IP\) 地址分为 \(IPv4\) 和 \(IPv6\) 两大类。
域名结构: 开头.主机名.主机类别(.国家名)
缩写:
- \(LAN\) 局域网
- \(MAN\) 城域网
- \(WAN\) 广域网
- \(ISO\) 国际标准化组织
(\(WAN\) 和 \(WAN\) 一般由多个 \(LAN\) 构成)
网络拓扑结构:星形、总线形、环形、树形、网状形。
时间复杂度
递归程序&主定理
定义:将一个规模为 \(n\) 的问题,分治成 \(a\) 个 \(\dfrac{n}{b}\) 的子问题,每次带来的额外计算为 \(\mathcal{O}(n^d)\)
,可得到以下关系式:
\(T(n)=aT(\dfrac{n}{b})+\mathcal{O}(n^d)\)
\(T(n) = \begin{cases} \mathcal{O(n^{\operatorname{log}_ba})} & a>b^d\\ \mathcal{O(n^d\operatorname{log}n)} & a=b^d\\ \mathcal{O(n^d)} & a<b^d\\ \end{cases}\)
计算机的主存储器容量达到 \(1GB\) 时,其地址的表示至少需要使用 \(30\) 个 \(2\) 进位;
完全二叉树&满二叉树: 满二叉树:三角形的样子(感性理解),完全二叉树:满二叉树的最下面一层从右开始扣掉一段(;
树的遍历:前序,中序,后序
- 前序:根->左->右
- 中序:左->根->右
- 后序:左->右->根
以下图为例:

前遍历访问顺序是序abdgcefh,中序遍历顺序是dgbaechf,则后序遍历的访问顺序gdbehfca。
插入排序和冒泡排序都是稳定的排序算法。
选择排序的平均时间复杂度为 \(O(n^2)\)。
选择排序、快速排序、希尔排序、堆排序都是不稳定的排序算法。
堆排序的平均时间复杂度是 \(O(n\log n)\)。
希尔排序复杂度下界为 \(O(n\log^2n)\)。
快速排序最坏复杂度为 \(O(n\log^2n)\),平均为 \(O(n\log n)\)。
\(n\) 个人写完了 \(n\) 张贺卡,互相交换,自己不拿回自己写的贺卡,共有多少种方法?
错排公式: \(d_n=(n-1)\times(d_{n-1}+d_{n-2})\) 特别:\(n=1\) 为 \(0\),\(n=2\) 为 \(1\)。
二叉树,节点数为 \(n\) 有多少 \(H_n = \dfrac{(2n)!}{n!(n+1)!} = \dfrac{C^n_{2n}}{n+1}\) 种形态(卡特兰数)。
平面上有三条平行直线,每条直线上分别有 \(a\) ,\(b\),\(c\) 个点,且不同直线上三个点都不在同一条直线上。用这些点为顶点,能组成 \(C_a^2 \times (b+c) + C_b^2 \times (a+c) + C_c^2 \times (a+b) + a \times b \times c\) 个不同三角形。
x&=x-1 的作用为把 \(x\) 二进制下最右边的 \(1\) 变为 \(0\)

浙公网安备 33010602011771号