• 计算机基础理论笔试题


    C++基础

    C++提供静态成员,用以解决同一个类的不同对象之间数据成员和函数的共享问题。

    1. 静态成员函数里面不能使用该类的this指针;
    2. 静态成员函数受private控制符影响;
    3. 静态成员函数的参数不能带有该类的this指针;
    4. 静态成员函数不能被声明为virtual函数;

    vector
    5. size是当前vector容器真实占用的大小,capacity是指预分配的内存空间;
    6. 使用reserve()可以修改capacity的值
    7. 容器的size一旦超过capacity的大小,vector会重新配置内部的存储器

    c++以下哪些情况会调用拷贝构造函数:
    1.当类的一个对象去初始化该类的另一个对象;
    2.函数的形参是类的对象;
    3.函数的返回值是类对象;

    内存管理

    1. 编译后,每个目标模块都从0单元开始编址,称为该模块的逻辑地址

    2. 物理地址空间是指内存中物理单元的集合,他是地址转换的最终地址,进程在运行时执行指令和访问数据最后都要通过物理地址来存取主存。

    3. 分页:把主存空间划分为大小相等且固定的块,块相对较小,作为主存的基本单位,每个进程也以块为基本单位划分,进程在执行时,以块为单位逐个申请主存中的块空间。

    4. 段式管理方式按照用户进程中的自然段划分逻辑空间 。

    5. 分页存储管理将进程的逻辑地址空间分成若干个页,并为各页加以编号,从0开始,若某一计算机主存按字节编址,逻辑地址和物理地址都是32位,页表项大小为4字节,若使用一级页表的分页存储管理方式,逻辑地址结构为页号(20位),页内偏移量(12位),则页的大小是( )字节?页表最大占用( )字节?
      页大小:页内偏移量占12位,2^12B=4KB,因此页的大小4kb
      页表的计算:总的页数*页表项大小
      总的页数=页号20位,能表示2^20个页=4MB个页
      页表的大小=1MB×4字节=4MB

    进程内存空间:
    1.函数参数,局部变量自动分配到栈上;
    2.在堆上分配的内存需要程序主动释放;
    3.程序结束,操作系统会释放该进程的所有资源;

    进程&线程

    进程是出于执行期的程序以及相关资源的总称;
    内核调度的对象是线程,而不是进程;
    线程被视为一个与其他进程共享某些资源的线程;
    当进程处于TASK_UNINTERRUPTIBLE状态不可中断的睡眠;

    1. 若每个线程对全局变量,只有读操作,而无写操作,那么这个全局变量是线程安全的
    2. 使用局部变量是线程安全的
    3. 函数里静态变量多线程读写是不安全的

    某个进程创建若干线程,这些线程能够共享:
    1.进程打开的文件
    2.全局变量
    3.进程的堆空间
    不能共享:
    1.程序计数器
    2.某线程的栈指针

    计算机网络

    1. http是超文本传输协议,信息是明文传输。https则是具有安全性的ssl加密传输协议。
    2. http和https使用的是完全不同的连接方式,用的端口也不一样。
    3. http的连接很简单,是无状态的。HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
    4. http默认使用80端口,https默认使用443端口。

    HTTP2

    1. 新增了多路复用
    2. 采用Header压缩

    设计模式

    抽象工厂

    1. 抽象工厂模式隔离了具体类的生成,使得客户不需要知道什么被创建。
    2. 增加新的具体工厂和产品族很方便,无须修改已有系统,符合开闭原则。
    3. 添加新的产品类时,难于扩展抽象工厂来生产新种类的产品。

    一个请求需要一系列的处理工作,责任链模式比较适合
    (观察者模式,桥接模式,工厂模式,责任链模式)
    浏览器的事件模型,使用了发布者/订阅者模式;

    第一范式( 1NF ):属性不可分;
    第二范式(2NF):符合1NF,并且,非主属性完全依赖于主键,而不是依赖于部分主键属性;
    第三范式(3NF):符合2NF,并且,消除传递依赖;
    BC范式(BCNF):符合3NF,并且,主属性不依赖于主属性(若一个关系达到了第三范式,并且它只有一个候选码,或者它的每个候选码都是单属性,则该关系自然达到BC范式);
    第四范式:要求把同一表内的多对多关系删除;
    第五范式:从最终结构重新建立原始结构。

    数据结构

    1. 线性表可以是空表,树可以是空树,但图不能是空图。
    2. 有向图边数:n(n-1);无向图变数:n(n-1)/2;n是顶点数。
    3. 极小联通子图要求子图的边数最小。
    4. 强连通分量仅针对有向图而言,对于有向图仅讨论图的连通性。
    5. 若该图具有1024个顶点,且该图是一个环,则该图有1023棵生成树;

    对称矩阵
    将其下三角部分按照行优先存放在一维数组B[0,…n(n+1)/2-1]中,对于下三角部分中的任一元素ai,j(i大于等于j,i和j从1开始取值),在一维数组B中的下标K的值是:i(i-1)/2+j-1

    排序算法时间复杂度

    排序方法平均时间复杂度最好时间复杂度最坏时间复杂度空间复杂度稳定性
    冒泡排序O(n^2)O(n)O(n^2)O(1)稳定
    选择排序O(n^2)O(n^2)O(n^2)O(1)有争议
    插入排序O(n^2)O(n)O(n^2)O(1)稳定
    快速排序O(nlogn)O(nlogn)O(n^2)O(nlogn)不稳定
    希尔排序O(n^1.5)O(nlogn)O(n^2)O(1)不稳定
    归并排序O(nlogn)O(nlogn)O(nlogn)O(n)稳定
    堆排序O(nlogn)O(nlogn)O(nlogn)O(1)不稳定
    基数排序O(n*k)O(n*k)O(n*k)O(n+k)稳定

    稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。

    不稳定:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。

    堆排序
    性质:每个结点的值都大于其左孩子和右孩子结点的值,称之为大根堆;每个结点的值都小于其左孩子和右孩子结点的值,称之为小根堆。

    关键路径
    关键路径是指在带权有向图中从源点到汇点的所有路径中具有最长路径长度的路径;
    关键路径上的所有活动都是关键活动,可通过加快关键活动来缩短整个工程的工期;
    AOE网中,关键路径上活动的时间延长多少,整个工程的时间就延长多少;
    加快某一条关键路径中的关键活动速度不一定能够缩短整个工期;(只能导致本条关键路径变成非关键路径,而无法缩短整个工期)

    linux指令

    linux下可以查看网卡流量情况的是:nload

    可能导致linux进程阻塞:
    进程申请临界资源;
    进程 从磁盘读数据;

  • 相关阅读:
    购买密封件时应注意哪些要点?
    P5 直升 P7!“阿里”最新出品年薪 30W~120WJava 架构师学习路线
    【长难句分析精讲】同位语从句
    TCP优化一:TCP 三次握手的优化
    聊聊如何让办公网络直连Kubernetes集群PodIP/ClusterIP/Service DNS等
    机器人软硬件系统集成
    妙手ERP功能更新:Shopee认领配置中的主货号支持按后缀自动递增、Ozon采集箱支持批量编辑【颜色样本图】、TikTok Shop......
    Backtrader guid 参数调优代码错误
    Fritzing软件绘制Arduino面包板接线图传感器模块库文件287
    HLS入门实践
  • 原文地址:https://blog.csdn.net/sazass/article/details/126796464