C++ 初赛 - Class 1

Class 1

  • CSP-J/S\texttt{CSP-J/S} 的初步了解

   CSP-J/S\texttt{CSP-J/S} 由 2019 年开始举办,前身是 NOIp\texttt{NOIp}。该比赛总分为 100100 分,考试时间 22 小时。

   其题型主要为以下三种:

    1. 单项选择题

    2. 阅读代码题

    3. 完善代码题

  • 计算机的时代划分

    计算机主要分为以下几个时代:

     1. 第一代:电子管时代

     2. 第二代:晶体管时代

     3. 第三代:集成电路计算机时代

     4. 第四代:大规模集成电路计算机时代

     5. 第五代:智能计算机时代(暂未达到)

  • 冯 · 诺依曼 结构的定义 & 计算机的硬件、CPU 的组成

    如图。
        fnymjg

  • 常见文件大小单位的换算规则

    1 Byte = 8 bit\texttt{1 Byte = 8 bit}

    1 KB = 1024 Byte = 210 Byte\texttt{1 KB = 1024 Byte = } 2^{10} \texttt{ Byte}

    1 MB = 1024 KB = 210 KB\texttt{1 MB = 1024 KB = } 2^{10} \texttt{ KB}

    1 GB = 1024 MB = 210 MB\texttt{1 GB = 1024 MB = } 2^{10} \texttt{ MB}

    1 TB = 1024 GB = 210 GB\texttt{1 TB = 1024 GB = } 2^{10} \texttt{ GB}

  • 常见的 Linux 发行版

    Linux 发行版有许多,如 Linux, Ubuntu, Debian, CentOS 等。

  • 32 位系统和 64 位系统的区别

    3232 位 和 6464 位,表示的是 CPU 一次性可以处理的二进制位数。例如 3232CPU 一次性可以处理 32 bits = 4 Bytes\texttt{32 bits = 4 Bytes},而 64 位系统一次性可以处理 64 bits = 8 Bytes\texttt{64 bits = 8 Bytes}

   对于 3232 位系统,最多有 2322^{32} 种不同的地址,所以 3232 位系统的内存上限为:

232121012101210=4 GB2^{32} \cdot \dfrac{1}{2^{10}} \cdot \dfrac{1}{2^{10}} \cdot \dfrac{1}{2^{10}} = 4 \ GB

   经过思考,如果按照对 3232 位系统的内存上限的计算,那么对于 6464 位系统,最多有 2642^{64} 种不同的地址,所以 理论上 6464 位系统的内存上限为:

264121012101210=232 GB2^{64} \cdot \dfrac{1}{2^{10}} \cdot \dfrac{1}{2^{10}} \cdot \dfrac{1}{2^{10}} = 2^{32} \ GB

    众所周知,在 C++C++ 中的 int\texttt{int} 类型的最大值为 21612.1×1092^{16} - 1 ≈ 2.1 \times 10^9,所以 6464 位系统的内存上限有 4242 亿 GB\texttt{GB} ?!

    经过 bdfs,得到了解释:3232 位操作系统可访问 232 GB2^{32} \ GB的空间,不过这里的 232 GB2^{32} \ GB 是指寻址空间,而并不能简单的对应到内存上去,我们之所以经常把这个空间当成内存大小,是因为内存是 CPU 寻址的主要对象。事实上,操作系统的寻址包括了在内存条,显卡内存,声卡网卡以及其他硬件中断里的寻址,因此 232 GB2^{32} \ GB 是操作系统能处理的所有的设备地址加在一起的总和,即内存空间只是寻址空间的一部分,所以 6464 位系统的内存根本没有那么大,实际上电脑最高只支持 192 GB192 \ GB

  • TCP / IP 五层协议结构

    如图:

tcp/ip 协议
  • IP 地址 的结构、子网掩码的定义

    IP 地址 是一个 3232 位的二进制数,通常被分割为 44 个“ 88 位二进制数”(也就是 44 个字节)。

    所有 IP 地址 都可以写成类似 a.b.c.da.b.c.d 的形式(其中 a,b,c,dK,K={x0x255}a,b,c,d \in \mathbb{K}, \mathbb{K} = \begin{Bmatrix} x | 0 \leqslant x \leqslant 255 \end{Bmatrix})。

  • 常见的应用层协议 & 类别

    TCP 协议:属于传输层协议,面向连接。

    UDP 协议:属于传输层协议,面向报文。

    FTPSFTP 协议:属于应用层协议,用于传输文件。

    POP3SMTPIMAP 协议:属于应用层协议,用于发送邮件。

    HTTPHTTPS 协议:属于应用层协议,用于网页传输。

  • 数学中的逻辑运算符与 C++C++ 的逻辑运算符的对应关系

    逻辑运算符指的是 \wedge) 、 \vee) 、 ¬\neg)。

    它与 C++C++ 逻辑运算符之间的转化如下:

&&\wedge \to \texttt{\&\&}

||\vee \to \texttt{||}

¬!\neg \to \texttt{!}