先放一个草稿,慢慢补充

计算机基础面试百问

C/C++语言程序设计

语言整体认识

  • C和C++的区别
  • C++多态是什么,有什么优点
  • 继承和组合
  • C语言选择题,判断哪个是注释符
  • 分析一下UML和C++的区别
  • c语言中编译(控制可能是别的词)是用来干什么的
  • 编译的含义
  • C语言基本单元是什么
  • 问了c/cpp的一些关键字 好像有extern inline 还有几个我没听清楚- -然后动态链接和静态链接对了还有个dll文件是干嘛的
  • 字典的操作什么(python?)
  • C语言里面main函数有什么参数?分别有什么作用?
  • C语言怎么统计一个函数被调用次数?

变量与运算

  • 解释下局部变量和全局变量,与作用域的关系

    • C语言中局部变量以及其存储位置
    • 局部变量属于什么区
  • 位运算符的优先级

  • &&、&、||、|四个运算符哪个优先级最低?

  • 不用额外空间实现两个变量值互换

  • a=3,a+=a-=a*a =-12

  • int x = 2; x » 2 / x » 1 = ?

  • int b=2; 求(b»2)/(b»1)

  • int a = 511, *b = &a; printf("%d", *b);

    a 不确定 b a的地址 c 512 d 511

  • 流程控制

    • for(i=2;i==0) 循环几遍
    • if-else怎么匹配的

数组、指针、函数

  • 判断数组定义那个错误

  • 二维数组查第二行第三列

  • char str[10]=“China”,数组有几个元素

  • 传值和引用的区别

    • C++中的值传递和引用传递的区别,在汇编语言上是相同的吗?
  • 函数调用过程,传地址为什么实参会发生改变;还有哪些变量是可变的,哪些不可变,这些对编程有什么作用

  • 讲一讲指针和引用的区别

    • 之后又问那在作为函数形参的时候,两者有什么区别呢?
  • a=520;

    *p=&a;

    问print("%d",*p)输出什么

  • char s[]= ‘China’;问在内存中占几个字节

    int n,*p=&n,**q=(这里不记得了);问给n初始化应该怎么办。

C与内存分配

  • 同学,你对C语言的内存分配有了解吗?C语言的内存分配划分为哪些区间?
    • 答:嗯,好。那个C语言的内存划分为堆区、栈区、全局区、常量区、代码区。他们的区别是:。。。
    • 问:嗯,那假设有一个这样的函数调用……..,请问这样的话会涉及到那些区块的使用呢?
    • 答:自信的回答……..(直到复试结束,才琢磨出来,答对了一半,老师在这道题里挖了个坑给我跳)
  • 内存分配结构有哪几个区,static变量在什么区
    • 我写的十行代码只有1k,为啥编译之后目标文件有几百k
    • 静态区和栈区是怎么交流的
  • c语言内存管理(堆区栈区什么的)
  • c语言的内存相关操作处理,尤其是缓冲区异常操作处理

结构体(union、enum)、C++面向对象

  • struct 和class区别联系
  • c的union和struct的区别
  • C++中的代码复用机制?
    • 我回答了多态(重写和重载),
    • 老师说还有吗,我想了想说还有继承,子类继承父类就是复用父类中的成员。
    • 老师说还有一种,在一个类中引用其他类做成员变量。
  • 面向对象角度,java和c的区别 (看了简历或本科成绩单特别提问的)
    • java中string是否可继承?
    • JAVA是怎么分配内存的,跟c/c++有什么不同
    • JAVA的垃圾回收机制
  • 面向对象的5大特性?
    • 继承什么的
    • 封装指的是什么?
    • 动态多态的三个条件是什么?

文件、异常

  • c语言异常的关键字
  • 编程实现文件的读写过程
  • (牛客上可以找到原题):a+打开文件

数据结构与算法

整体认识

  • n*n的时间复杂度
  • 点类型的数据结构?
  • 滑动窗口是什么样的?用数据结构怎么描述或者实现
  • 数据结构的逻辑结构有哪些
  • 两个N比特数相乘时间复杂度,我答的O(n²),让我优化,大概10s左右没答出来,就下一个问题了

线性结构

  • 线性表的顺序结构是什么存储方式–顺序存储
  • 说2种对线性表进行操作,其时间复杂度为O(1)的情况
  • 链表和顺序表
  • 如何删除链表节点p的后一个元素 p->next = p->next->next;
  • 如何快速找到一个单链表的三分之一处?
  • 说说双向链表是怎么删除结点的(可以用纸张对着草稿和老师说)
    • 递归函数的优缺点
  • 串,模式匹配
    • KMP算法相关,为何相比常规会有优化

树型结构

  • 树的性质相关
    • 设计一种数据结构以及相关的操作来找出树叶子结点的个数
    • k层的满二叉树的最后一层有多少叶子结点
    • 知道二叉树吗?二叉树里面有多少个空指针?有什么方法可以加快二叉树的查询(稍微提示了一下线索二叉树)?
    • 怎么统计二叉树有几个结点
  • 遍历
    • 树的后序遍历相当于二叉树的__序遍历
    • 树的深度优先遍历和广度优先遍历分别用了什么数据结构(栈,队列)
      • 然后问我为什么要用栈跟队列
  • 树的应用
    • 哈夫曼树、哈夫曼编码的原理及其应用
    • 什么树是哈夫曼树
    • 为什么哈夫曼树权值最小,属于什么算法

图型结构

  • 整体认识

    • 怎么判断有向图有没有回路
  • 图的存储结构是什么

    • 图的存储方式有哪些?邻接矩阵和邻接表分别用于什么样的图?

    • 说一下图的两种存储方式以及增删结点的过程

    • 无向图、有向图的组织结构是怎样的?(即是怎么存储的)

      能分别解释一下具体的存储方式的内容吗?

  • 有向图的拓扑结构选择

  • 如何判断一个图有没有环

  • 一个有向图入度为s,则度数为多少?

  • 无向连通图最多几条边,最少几条?

  • 无向图:十八条边最少多少顶点

  • 给定一个无向图,边的数量为E,问这个图的度为多少? 答:2E

  • 讲讲强连通分量和强连通分量结点

    • 讲讲计算强连通分量用的算法
    • 讲讲算法的具体一点的流程
    • 讲讲这个算法的时间复杂度
  • 遍历

    • DFS路径唯一吗?

    • 完全图用深度和广度优先遍历所得到的生成树的度分别是多少

      • 权值都为1的图怎样得到两个顶点的距离

      • 循环链表队列只设置一个指针,应该放在头还是尾

        我开始说头,他问我两种情况下入队出队的时间复杂度分别是多少,其实就是在提示我了

    • 广度优先遍历和深度优先遍历算法下它的树高是多少?

    • 深度优先遍历的序列确定,如果确定好了存储方式,假如选定好具体的邻接矩阵和邻接表,遍历的序列还唯一吗

    • 完全图用dfs和bfs生成的生成树的高度差

  • 图的应用

    • 最小生成树的定义,算法有哪些(普里姆算法和克鲁斯卡尔算法)
      • 对这两个算法做比较
      • 这两个算法采用的数据结构是哪些
    • 谈谈最小生成树和最短路径的区别
    • 主考:给你一个所有路径权值相等的图,你要怎么来求它的单源最短路径?
      • 我:老师,我第一想法是迪杰斯特拉
      • 主考:迪杰斯特拉当然可以,但我想让你说一个更好的
      • 我想了一会:老师,可以用广度优先搜索来
      • 主考:对,巴拉巴拉巴拉
    • 找无向无权图的两点之间最短路径有哪些方式

查找算法

  • 整体认识

    • 给你一堆无序的数据,如何才能高效的找到其中间值

      • 从结构上思考,不限制你的数据结构
      • 用二叉树?
    • 你认为哪种查找比较快,一般怎么比较快

      哈希查找时间复杂度,折半查找有什么要求

      有序的数组。

      • 数组做增减不方便,还有其他数据结构吗?

        二叉查找树

      • 查找时间?

        刚开始说logN,然后老师说不对,说会退化,并问我最差查找时间?

        O(n),然后我就明白了,二叉查找树时间应该是O(树高),回答后老师说对。

      • 如果太差怎么办?

        二叉平衡树。

    • 给你两个变量,要求在不使用第三个变量的情况下交换这两个变量的值?

    • 海量数据处理

    • 有序的数字想要进行查找,应该采用什么数据结构(2叉搜索树)

      • 那删除一个节点应该怎么做,用伪代码描述
    • 最快的查找算法?我答哈希不对,当时脑子一片空白,可能是平衡二叉树没想起来。

  • 折半查找过程+复杂度

    • 二分查找的时间复杂度和适用范围
  • 什么是归并查找,复杂度

  • 树型查找

    • 二叉查找树
      • 追问:改进的AVL平衡树,怎么进行修改?
      • 答 左旋 右旋,
      • 追问:什么情况下用左旋?
    • 二叉查找的条件,链式结构要如何二叉查找
    • 二叉排序树是什么,删除一个节点怎么操作、二叉树结点的删除
    • 二叉排序树查找的时间复杂度,如果是平衡树又是多少
    • 平衡二叉树结点的删除操作,详细回答
    • 知道红黑树吗
    • 堆排序过程+如何调整堆
    • B树在实际应用中为什么会设置很大的阶数,如1000阶?
  • 散列查找

    • Hash表的功能
    • Hash表存在的问题
    • Hash冲突的解决办法
    • Hash删除一个元素的处理方法
    • 哈希表如何处理冲突?开放地址法如何删除关键字?(应该不是直接物理删除,做个标记虚拟删除),那之后再插入新的关键字遇到之前虚拟删除的那个空间如何处理?
    • 说了开放定址法和链表法
      • 然后老师又问开放定址法是怎么查找的?我回答之后又问开放定址法删除一个元素要怎么处理呢?我一开始忘记了就说把后面的元素往前面移动,然后老师表示不对,我突然就想起来是做一个标记,查找到标记就跳过查找下一个。

排序算法

  • 整体认识

    • 稳定性排序算法和不稳定排序算法各举一例

    • 基于比较的排序算法的下界(跟决策树有关,我没学过)

    • 时间复杂度只和问题规模的大小有关系,你说一说这个描述对不对

      • 那你说说看哪里不太对,以快排为例说说

      • 时间复杂度还和什么有关

        初始状态

      • 接着问:“那你说一说有没有什么排序平均比快排要快的

        我说,“基数排序吧。”

      • “时间复杂度多少?”

        “大概是n的复杂度,而快排平均是nlogn。”

      • “这么说,基数排序是线性的时间复杂度,而快排是nlogn,应该是基数排序要更好吧,为什么我们平时使用的时候基本是用快排而不是基数排序呢?”

      • 老爷爷笑了,说:“现在发展很快,内存基本是够用的。你想一想基数排序的条件是什么。”

        一般是整数,而且要位数比较少,然后对各个位进行排序。

      • “对,所以这个适用范围就不一样了。基数排序使用有限制,所以还是快排用的多。”

    • 时间复杂度只和问题规模有关,这个说法是否准确。

      • 基排比快排快,为什么常用的是快排?
      • 如何评价快排和基数排序,时间复杂度和空间复杂度,既然基数排序是线性的,为什么很多数据的时候不选择基数排序
    • 有两个长度为n的数组,不使用额外空间互换并完成排序; 一开始傻了,一直说需要1的空间,后来想其实先双异或互换数组,数组内再冒泡排序两者都是不要额外空间。

  • 讲一下冒泡和快排

    • 冒泡排序的最好和最坏情况复杂度,平均情况复杂度,以及平均情况复杂度怎么来的
  • 1.滑动窗口2.希尔排序

  • 常用的排序有哪些?时间复杂度为O(nlogn)且与初始排列无关的排序有哪些?为什么快排平均性能最好?

    • 堆排序,归并排序 中轴值可以存放在寄存器中(误)
  • 说一下堆排序复杂度

  • 快速排序的时间复杂度是多少?

    • 回答出来后,然后老师问你说的情况是选哪个位置作为枢轴?
    • 接着改变枢轴位置。
    • 平均时间复杂度的系数,答案是1.39
    • 最坏情况时间复杂度,什么情况是最坏的,那在这种最坏的情况怎么样做可以提高效率?
  • 同学,你对数据结构中的排序和查找算法熟悉吗?哪个掌握得比较好?

    • 答:都还可以,那个快排算法比较熟悉
    • 问:那你讲讲快排算法
      • 答:快排算法是排序算法中综合性能最快的算法。它的过程是,每次选择一个值作为数轴,以其将原序列划分成大小两个系序列。接着再重复的在左右子序列中再找出新的数轴,再进行划分。重复操作至序列有序为止,时间性能为O(nlongn)
    • 问:那快排算法什么情况下会导致O(N²)的复杂度?
      • 答:若是基于默认首元素为数轴的情况下进行快排,当序列基本有序时,会导致O(N²)
    • 问:那还有补充的吗?(暗示)
      • 答:实际上快排的性能与数轴的选择策略直接相关。如果能够选择一个合适的策略,使得每次选择的数轴都恰好能把序列等分为两个子序列,就能在logN躺内完成快排,实现O(NlogN)。一般采取的措施的是使得数轴的选择尽可能的随机化。如选择首、中、末三个元素中大小mid的那一个;或者使用random函数随机抽取序列中的某个原始作为数轴。当数轴的选择足够随机化时,哪怕是基本有序的序列也能以O(NlogN)实现
  • 快排在最差情况下,如何降低时间复杂度?

    • 快排为什么快,比如说与堆排序相比
    • 系数多少?常数系数1.39?

计算机组成与系统

整体认识

  • 计算机组成计算机结构计算机技术谈谈你对这三者的理解

  • 嵌入式的CPU

  • 人工智能里面的cpugpu有什么不同

  • linux内核如何裁剪如何在arm开发版上进行开发

    • 如何用linux实现实时系统
  • 微内核、微服务

  • 什么是大内核和微内核?linux用的是哪种内核?

  • bootloader如何启动内核

  • 操作系统有什么功能,为什么操作系统会很难?

    • 并发有哪些
    • 实时系统和Windows的分时系统有什么区别,在硬件上呢
  • 系统调用和函数调用谁的开销大

  • 虚函数有什么用

    系统调用和函数调用那个速度快

  • linux系统中如果有root权限是否可以直接(具体的不记得了)

  • 编译原理是怎么进行编译的

  • 说一下编译的过程、说一下编译的五大过程

    我:词法分析、语法分析、语义分析及中间代码生成、代码优化、目标代码生成

    • 编译原理中语义分析的输入和输出是什么
  • 如果让你设计一个操作系统你有什么思路、你怎么搭建一个操作系统

    (我就把操作系统的目录答了一遍,大意是每个都要做好)

数据和指令

  • 数字电路学了啥

    • 模电数电(A/D转换如何实现)
  • 学过编译原理吗

  • 指令执行的步骤有哪些?

  • 指令系统

  • 说说CISC和RISC的区别(由浅入深的引导)

    • Intel的X86是CISC还是RISC?

    • CISC和RISC是什么?两个的具体应用举个例子?8086是哪个?说说指令流水线?计算机最高几级流水线

    • 嵌入式的那个单片机(arm系列)有几种工作模式?

      用的什么指令集?(RISC/CISC)

      说一下RISC是什么?以及RISC/CISC的区别

  • 高级语言与机器级代码之间的对应

    • 堆栈的区别

    • 我看你学了编译原理,能跟我讲讲你们编译原理上了什么内容吗?

      对比C/Java中的程序起点是main()函数,汇编程序的起点标志是什么?

      汇编程序中,call指令有什么作用

    • 在PC机上写好程序,再到嵌入式系统运行是属于什么编译

存储器层次系统

  • 整体认识

    • 快表、页表和路由表结构上的区别

    • 计算机存储有哪些层次

    • 我的是问了 TLB,Cache的作用

    • 局部性是什么

      • 我说时间和空间,之后就问我什么时候存在时间局部性什么时候存在空间局部性,举例一下。

        这里看看黑书的存储器山,很nb

    • 内存管理方法?linux用的是哪种?

    • 说一说操作系统内存管理

    • LRU算法是什么(最近最久未使用),有什么缺点

  • 虚拟存储和高速缓存的结构和各自的作用?

  • 所谓的命中率是什么?

  • 问:cache的机制,谁往cache中调数据,用户可以操作吗,举一个编程中cache的例子

    • 原理 xxx,例子的是循环遍历数组的话,数组是行存储的,这样cache中命中率比较高,是空间局部性。
  • 设计计算机的指令集硬件什么的方面如何使用局部性,

    • 我一开始没有反应过来,然后老师换了种说法,我反应过来是cache,

    • 然后老师就问cache的映射算法有什么?

      • cache的读取写入策略有什么?cache命中率和什么有关?cache命中率和cache的容量有什么关系?和cache块的大小有什么关系?

        问题还是挺简单的,就是会一直往深了挖

  • 内存溢出是怎么回事

    • 内存泄漏和内存溢出是什么
    • 程序内存泄露怎么解决
  • 操作系统内存管理虚拟内存分页、虚拟地址到物理地址翻译全过程

  • 分页系统怎么将逻辑地址转化为物理地址

  • 内存碎片

    • 如果给进程分配分区的过程中,产生很多细小的外部碎片,怎么解决(紧凑技术)
      • 之后问,紧凑技术的具体原理是什么,为什么不能用链表的方式存储外部碎片,移动后进程的起始位置又该如何查找
  • 说一下缺页中断

  • cache里LRU怎么实现、内存里的LRU怎么实现

  • 简单介绍CLOCK置换算法

  • 知道页表吗?问了页表,多级页表,段表和页表区别,TLB,以及反表(不会)

  • 文件系统

    • 目录与文件的区别

    • 目录文件的内容

    • FAT,Ext2名词解释,磁盘分区

    • new:文件重命名时OS做了什么

      当用户在操作系统中重命名文件时,操作系统需要执行以下主要步骤:

      1. 解析路径 操作系统首先需要解析用户提供的文件路径和新文件名。它需要检查文件路径和文件名是否有效,以及用户是否有权对该文件进行重命名操作。
      2. 打开父目录 操作系统打开包含要重命名文件的父目录的磁盘索引节点(inode或目录项)。
      3. 删除原名称 在父目录中,操作系统删除原有的文件名称条目,这只是删除了名称到inode的映射关系,文件的实际数据保持不变。
      4. 添加新名称 操作系统在同一个父目录中添加一个新的名称条目,将新文件名映射到原有的inode上。
      5. 更新元数据 如果需要的话,操作系统会更新文件的元数据信息,比如最后修改时间等。
      6. 同步到磁盘 最后,操作系统会将对目录和元数据的更改同步到磁盘上,从而使重命名操作持久化。

      总的来说,文件重命名主要涉及更新目录中的名称映射,而不会改变实际的文件数据。这是通过添加新名称并删除旧名称的目录项来实现的。整个过程由操作系统的文件系统组件负责处理和协调。

  • 磁盘调度

CPU和进程

  • 数据通路&指令流水线

    • 分支指令的CPU处理全过程,用到了CPU里哪些部件(变PC,ALU算地址,扩充地址什么的),怎么解决分支指令在流水线里的控制相关(特意提到分支延迟槽)
  • 数据通路&指令流水线

    • 提到了流水线:你说到了流水线,那你和我说一下流水线是怎么构造的
    • 流水线不是一直都可以顺利运行的,会发生什么问题?
    • 我把三种相关和解决方法说了一遍
    • 数据相关不是每次都能用数据旁路解决的,什么时候不可以?
  • 流水线时候,什么时候可以中断

    • 指令周期的阶段,每个阶段什么时候可以有中断
    • CPI是什么
    • 页表会加速进程运行吗
  • 微程序控制器的原理

  • 多发技术

    • 超长指令字
    • 说一下超流水线技术
  • 什么是支持向量机?支持向量机是如何将不可分的样本点变得可分的?

  • 进程和线程

    • 进程和线程是什么
    • 操作系统里线程的类别,底层怎么实现的
    • Linux还问了我线程怎么并发
    • 异步和同步
    • 信号量的作用
    • PV操作
      • 同一进程内的两线程对一个初值为0的共享变量分别进行10次加1操作,在不采取同步互斥措施的情况下,共享变量的最终值是多少?(老师说:2~20)
      • 生产者消费者问题
  • Q:你项目用了多线程那么你肯定知道线程和进程区别了,那我问你进程间如何通信?

    A:基于内存共享的存储区、将消息挂到对方的消息队列(信箱通信方式)、写入pipe管道文件

  • 死锁

    • 定义
    • win10里设置有死锁解决办法吗
    • 4个条件以及死锁解决办法
    • 银行家算法

总线和IO

  • IO有几种方式(回答了差不多十分钟)
  • I/O阻塞和I/O非阻塞的区别
  • 详细描述中断到底发生了什么(最好比王道上写得更详细,因为这个问题回答了将近10分钟,老师后面问不了几个问题了)
    • 说说中断?中断上下文内容保存在哪里?中断优先级如何处理?中断屏蔽字存放到哪里?
    • 中断整体认识,关键地方,特别是中断结束怎么回来的
  • 中断保护机制,进程死循环时怎么办
  • 什么是串口
  • DMA控制器需要初始化什么内容
    • DMA和中断
    • DMA和中断的区别是什么,DMA的应用有什么
  • 通道

计算机网络

整体认识

  • 计算机网络分为哪两个部分(边缘,核心),云服务属于边缘还是核心
  • new:协议三要素
  • 解释一下交换方式,(报文、电路、数据报)
    • 这几种方式的区别
  • 网络层和传输层是干什么的
  • TCP/IP协议讲一下(模型角度、协议角度、提供服务)、TCP/IP体系结构
  • 哪些地方用到了滑动窗口
  • 路由器主要用在OSI模型中的哪一层中?
  • 说一下TCP/IP模型、OSI模型
    • TCP的网际接口层对应理论模型哪两层?

物理层与通信基础

  • 什么是信息熵,谁提出来的
  • 信息论与编码中熵是什么
  • 同步传输和异步传输,
    • 问了我串行并行传输优缺点
    • 再问我pcie总线为什么选择串行传输
  • 通信传输时为什么要编码
  • 有哪些编码方式、编码的三种类型
    • new:差分曼彻斯特分析 有什么优点,说下QAM-16怎么用 格雷码
  • 说一下统计复用
    • 龙书第五版p27的概念:许多网络设计根据主机的短期需求变化动态共享网络带宽,而不是给每个主机分配可能用也可能不会用的固定比例带宽。这种设计称为统计复用(statistical multiplexing)

数据链路层

  • 集线器和交换机有什么区别

  • 海明码的原理,海明码为什么能检错,纠错

  • 什么叫码距

  • new:说一下循环冗余校验

  • 数据链路层的可靠性,new:分析以太网和802.11通常分别采用哪种传输类型,为什么

  • 介绍一下滑动窗口协议

    • 滑动窗口原理、发送端怎么触发
    • 滑动窗口的作用,停等协议的主要作用,发送窗口大小如何设置,发送窗口大小确定后发送方一次能够发送的数据量受什么限制(我回答了时延和网络带宽,老师继续问我还有吗,我想不出来了,回答不知道了);
  • CSMA/CA CSMA/CD协议

    • 区别
    • new:共享总线以太网,某个站点从发送帧开始,最长要经过多长时间,才能检测出自己发送的帧与其他站点发送的帧产生了碰撞?
  • 介绍两个使用了广播技术的协议

  • new:生成树协议STP、有向无环图

  • 连接交换机的关键是什么

  • 网络中的集线器和网桥的区别

    • new:计算机网络,具有唯一MAC物理地址的网卡以什么样的形式组织起来的过程,集线器——>透明网桥——>交换机
  • new:VLAN实现,IEEE 802.1Q帧

  • new:千兆以太网,半双工,载波延伸(Carrier Extension)的办法

网络层

  • 整体认识
    • 组播与广播,哪些协议采用广播
    • IPX是什么:一种旧的网络协议,后来被TCP/IP协议所取代
    • 广播和多播的区别,广播的实际应用 ?区别我答了广播是没有目的地址,多播有目的地址。然后广播的应用有DHCP协议和ARP协议
  • IPv4地址相关
    • new:划分子网怎么借用的,路由聚合,路由转发查找时怎么匹配
    • 用完解决方法
      • 计网NAT
    • 什么是CIDR,有什么功能
    • new:因特网为什么要使用IP地址和MAC地址这两种类型的地址来共同完成寻址工作,仅使用MAC地址进行通信不可以吗?
  • 路由器外部协议和内部协议有哪些
  • 路由算法 距离向量算法 和 迪杰斯特拉算法
  • 路由器的作用
  • ICMP协议的作用
  • ping,pathping,traceroute等命令的作用
  • ip数据报的最大长度
    • 实际中ip数据报可以达到这么大的长度吗
    • 说一下IP数据包最小多少
      • 最大多少
  • icmp是从哪里发送给哪里的,需不需要发送给主机
  • PC机是通过什么去上网的
  • 交换机和路由器的区别
    • ARP协议及其应用
    • ARP是哪个层次的协议
    • ftp端口号
  • new:OpenFlow交换机和流表

运输层

  • 整体认识

    • 有网络协议里面连接和无连接的最本质区别是什么
  • hdlc帧结构

    • 问了我tcp/ip几层,有哪些
  • 问TCP三次握手

  • TCP和UDP中,为什么TCP是可靠的?

  • 延迟差叫什么;

    拥塞控制和流量控制的区别;

  • 说一下拥塞控制

应用层

  • C/S架构 B/S架构

    • 自己如何设计C/S架构
  • socket有什么类型

  • http和https区别

  • 说一下dns的过程。dns除了将域名转换成ip还有什么功能?

    • 说一下发电子邮件的协议和过程
  • resful api

网络安全&区块链

  • 网络安全学了啥
  • 信息安全的定义,对称加密和非对称加密的优势
  • 区块链如何防篡改
  • 公钥加密,私钥解密,对称秘钥
  • 问了三个没听过的信息安全算法
  • 网络安全的散列算法 SHA MD5
  • RSA的原理

离散数学

  • 有没有学过数论
  • 为啥要叫离散数学
  • 主析取范式和主合取范式
  • 群、域、环

数据库

整体认识

  • 假如有上百个个人密码,数据库如何储存个人密码,不会泄露

  • 数据模型有哪些,同一应用采用哪种模型更快

  • 数据库的发展阶段

    • 说说数据库最早的模型 网次模型
  • 数据库的种类(类型)

    • 对于目前的复试面试系统如何设计数据库
  • 用过什么数据库,MySQL

  • 数据库体系结构

    • 数据库范式,还有划分
  • Oracle是什么型数据库

    Oracle数据库的特点

  • 请说一下怎么设计一个数据库

关系数据模型、关系数据库模式设计、数据库设计

  • 什么是关系
  • 数据库最开始的模型是什么,关系模型图灵奖获得者是谁,数据库里面有几种模型,大数据使用的是什么数据模型,事务的四大特性,并发控制的作用,锁,一致性是什么,解释一下,数据库的索引
    • 数据库逻辑模型有哪些,我答了层次,网状,关系。然后他问我最早的模型是哪个,没答出来。
  • ER模型和范式
  • 关系数据库有多少范式
  • 数据库关系是什么,主键是什么
  • 就着项目问了我 数据库查询、搜索引擎
  • 你数据库学的怎么样,内外连接和存储过程
  • 数据库的三级模式还有两级映射
    • 数据库外模式可以有几种?一对一还是一对多?
  • 数据库的范式越来越高会产生什么影响?

SQL、过程化SQL

  • 数据sql语句底层执行
    • 我答了sql执行过程,语法检测,语义检测,查询优化,执行查询这4步。
    • 他说不是这个,执行查询这一步更底层的东西,有没有调用操作系统的什么东西,我说调用操作系统的文件接口

完整性、安全性、事务与恢复、并发控制

  • 数据库并发控制

更多主题

软件工程

  • 软件工程测试的白盒测试和黑盒测试在做什么
  • 软件测试方法有哪些
  • 什么是快速原型
  • 软件设计与体系结构中的各模式
  • 软工的开发模型(瀑布、快速原型、增量模型、喷泉、螺旋)
    • 螺旋模型和增量模型的区别
  • 说一下软件工程常用模型
  • 软件工程类图和时序图
  • 开发模型
  • 软件工程流程
    • 软件设计的步骤 or 软件开发流程是什么
    • 在每个流程里面涉及到什么图
    • UML的英文全称
  • 一个项目如何发现90%的bug
    • 利用软件工程的知识解决如果用户需要一个方形桌子,后又改变成圆形桌子的需求该怎么办
    • 详细设计用到的辅助工具
  • 做过项目测试吗,怎么测试的

大数据、并行、数据挖掘、数据分析、人工智能

这部分内容根据考生特定展开的,挺感兴趣

  • 整体认识

    • 阿尔法go是怎么实现他的人工智能的?
  • 本科学过Hadoop,解释一下

  • 解释一下Map reduce

    • map-reduce
  • Hadoop是指大数据中的“大”,“数”还是“据”

  • spark

    Apache Spark(简称Spark)是一个开源的、基于内存的大数据计算框架,旨在提供高效、通用、分布式和容错的数据处理解决方案。Spark最初由加州大学伯克利分校的AMPLab(Algorithms, Machines, and People Lab)开发,并于2010年开源。

  • 人工智能和大数据的关系

  • 什么是中值滤波

  • 什么是数据挖掘,怎么对数据进行预处理,数据的完整性是应用规定的还是自己规定的,数据挖掘跟人工智能应用有什么关系(本科学过数据挖掘和人工智能,报的方向也是大数据,所以老师会问)

  • 过拟合概念

  • 云计算是什么

  • α-β剪枝

  • dsp解释下

  • 数字图像说一个模型我问你

  • 学过这门课的人

    • 决策树和数据挖掘课程中涉及到的id3 c4.5和svm
    • 老师问我id3和c4.5的区别,c4.5解决了id3的什么问题(我茫然)
  • 数据挖掘学了什么

    我:聚类,然后大概说了一下。

    老师:怎么算距离的。

    我:就是算两点距离(忘记叫欧式距离了)

    老师:你懂得密度聚类吗?

    我:这个不懂

    老师:聚类是监督还是非监督

    我:非监督

  • 神经网络反向传播

信号与系统、自控、现控

  • 自动控制
    • 1.PID是什么
    • 2.传递函数干嘛的?

本科课程计算机相关

  • 成绩单问了一个名字和计算机相关的课、本科专业课

    • 主要是两个方面:1.这门课程是说什么的2.你从这门课中学到了什么
  • 毕设做了什么、毕设用了什么算法

  • 看到课程表上有信息安全这门课,老师开始抓住问

专业应用

用算法解决现实问题,改进过程与分析

综合问答(基于项目或特定场景)

  • 策略分析问题的思维框架方面的准备

  • 项目和工作经历,工作中学到了什么

  • 感兴趣的科目和老师、研究方向

  • 得过奖学金没有,参加竞赛没有,四六级多少分

  • 迪杰斯特拉除了迪杰斯特拉算法还有啥

  • 有参加过什么比赛吗

  • 本科经历、说一下你的项目经历和校园经历、你在项目或者比赛中用过哪些数据结构

    • 介绍自己项目,然后问有没有使用数据结构优化的情形
  • 不用额外空间实现两个变量值互换

  • 某个人的项目

    • springboot网站,他问用了什么服务有什么原理,用的是http长地址还是短地址
    • 前端框架用过哪些(vue,react),然后问MVVM和MVC的区别。
  • 怎么画直线(计算机图形学)

  • 本科课程中的机器学习,数据挖掘,大数据分析的区别

  • 你什么项目最满意?服务器发生异常怎么办,我说了一些

  • 为什么有这门课啊,录取了想上什么方向 为什么

  • 项目代码量,大学多少代码量,xxx项目多少行代码

  • PID算法的PID三个字母是什么意思呢

  • 现有9个相同的东西和1个不同的东西,如何找出不同的?

  • 为什么要考研?是第一次考研吗?

  • 说说可以如何将你的大学专业课用在软件设计上?

  • 你设计一个软件,会和其他人设计的有啥不同?

  • 生物序列比对用的是什么算法?

  • 围棋棋盘可以用什么数据结构来实现

  • 对研究生所选方向的理解

  • 现在有一个实际问题,你有一个项目,项目包含多个模块,模块间耦合度比较高,依赖性比较复杂,我现在想要算出每个模块的编码顺序,应该用什么数据结构,具体算法是什么样的?

    拓扑排序+队列

  • 做过的项目展开描述

    • 首先对项目分类,工业级、竞赛级、课设+自学级,靠近前面的注重全局整体稳定,靠近后面注重细节局部实现、思考
    • 工业级:语音合成,从问题调研、项目路线设计、项目开发、项目部署、项目测试、小范围测试跑通,联系云端商家等等,数量:1
    • 竞赛级:校内各类科技竞赛(图像去雾、人脸识别、树莓派魔镜、智能衣服匹配推荐)、kaggle数据竞赛(房价预测等),数量:5+
    • 课设自学级:数据库设计、爬虫获取课件、统计学图表处理、d2l深度学习、C/C++/python等课程学习、stm32智能家居暑期培训,数量:6+

数学相关

  • 数论学过吗

  • 微积分

    • 极限 上极限下极限 上连续和下连续 柯西列
    • 中值定理
  • 概率论

    • 独立和相关
    • 标准差方差
    • 什么是正定矩阵
    • 矩阵的迹和秩,矩阵的负定
    • 什么是线性相关
  • 组合数学

    • 费马小定理