复试题Day Nine
文章目录
数据结构
栈和队列的异同点?:
栈与队列的相同点:
1.都是线性结构。
2.插入操作都是限定在表尾进行。
3.都可以通过顺序结构和链式结构实现。、
4.插入与删除的时间复杂度都是O(1),在空间复杂度上两者也一样。
5.多链栈和多链队列的管理模式可以相同。
栈与队列的不同点:
1.删除数据元素的位置不同,栈的删除操作在表尾进行,队列的删除操作在表头进行。
2.应用场景不同;常见栈的应用场景包括括号问题的求解,表达式的转换和求值,函数调用和递归实现,深度优先搜索遍历等;常见的队列的应用场景包括计算机系统中各种资源的管理,消息缓冲器的管理和广度优先搜索遍历等。
3.顺序栈能够实现多栈空间共享,而顺序队列不能。
4.栈先进后出,队列先进先出
计算机组成原理
与组合逻辑控制方式相比,微程序控制器有何优点?
组合逻辑控制器与微程序控制器,除了操作控制信号的形成方法和原理有差别外,其余没有本质上差别。但是不同控制器之间具体实现的方法差别很大,这不仅是由于采用组合逻辑控制或微程序控制引起的,因为实现一条指令功能的办法不唯一一 的,因此就有多种逻辑设计方案出现。
两种控制器之同的最显著差别可归结为两点。
1.实现方法的差别
微程序控制器的控制功能是在存放微程序的控制存储器和存放当前正在执行的微指令的寄存器直接控制下实现的,而组合逻辑控制则由逻辑门组合实现。前者的电路比较规整,各条指令控制信号的差别反映在控制存储器的内容上,因此无论是增加或修改指令只要增加或修改控存内容即可。在设计阶段可以先用RAM或EPROM实现,验证正确后或成批生产时,再用ROM替代。组合逻辑控制器的控制信号先用逻辑式列出,经化简后用电路实现,因而显得零乱且复杂。当需修改指令或增加指令时是很麻烦的,因此微程序控制得到广泛应用,尤其是指令系统复杂的计算机,一 般都采用微程序来实现控制功能。
2.工作性能的差别
在同样的半导体工艺条件下,微程序控制的速度比组合逻辑控制的速度低,那是因为执行每条微指令都要从控存中读取一一次, 影响了速度。而组合逻辑设计主要取决于电路延迟,因而在超高速计算机中,往往采用组合逻辑设计。近年来在一些新型计算机结构中, 例如,在RISC中,一般选用组合逻辑设计。
操作系统
在解决死锁问题的几个方法中,哪种方法最易于实现?哪种方法资源利用率高?:
解决死锁问题使用预防、避免、检测和解除死锁四种方法。预防死锁最容易实现,但是由于这种方法施加的限制条件太严格,可能会导致系统资源利用率和系统吞吐率降低。避免死锁只需事先加以较弱的限制条件,便可获得较高的资源利用率和系统吞吐率,但在实现上有一定的难度,目前较完善的系统中常用此方法来避免发生死锁。
计算机网络
什么是域名解析,域名解析中采取了什么措施提高效率?:
DNS 是一个联机分布式数据库系统,负责主机名和 IP 地址之间的转换,需要进行域名查询的机器主动发起域名解析请求,域名服务器则随时准备做出响应。域名服务器的数据库中存放着它所管辖范围的主机名和 IP 地址之间的映射表,域名服务器之间又可以相互联络和协作,以便分布在 Internet 各个域名服务器数据库中的域名都能被有效地搜索,从而实现主机名与 IP 地址的映射。
为了提高解析效率,使用了域名缓存技术。在服务器、主机中设置一个专用的内存缓冲区。服务器用来存放近期解析过的域名及其对应的 IP 地址的映射。如果域名解析过程中在数据库中搜索不到相关记录,使用域名缓存进行解析,如果域名缓存也解析不到,再访问非本地的其他域名服务器。主机系统启动时解析器软件从本地域名服务器获取一个完整的域名-IP 地址映射数据库的副本,并维护一个近期使用的域名-IP 地址映射的缓冲区。对同一个域名向 DNS 服务器发出多次的 DNS 请求报文后,得到 IP 地址都不一样是可能的。例如对某被访
数据库
范式有那些,具体讲讲?:
**第一范式定义:**数据库表中的所有字段都是单一属性,不可再分的;这个单一属性是由基本的数据类型所构成的;如整数、浮点数、字符串等;换句话说:第一范式要求数据库中的表都是二维表;数据库中的表都是符合第一范式要求的。
**第二范式定义:**数据库的表中不存在非关键字段对任一候选关键字段的部分函数依赖。部分函数依赖是指存在着组合关键字中的某一关键字决定非关键字的情况。换句话说: 所有单关键字段的表都符合第二范式。
**第三范式:**第三范式是在第二范式的基础之上定义的。如果数据表中不存在非关键字段对任意候选关键字的传递函数依赖则符合第三范式
BC范式(Boyce.Codd)定义:在第三范式的基础之上,数据库表中如果不存在任何字段对任一候选关键字段的传递函数依赖则符合BC范式。也就是说如果是复合关键字,则复合关键字之间也不能存在函数依赖关系。
专业面试
你的毕业论文做的什么内容??
各位老师同学们大家好。因为我的培养模式是机械工程+软件工程双专业,所以在毕业设计方面我做的是通过MATLAB和Python在学习使用PythononOCC的基础上,通过设计不同的运动环境,在动态的运动环境下设计出基于砂轮和棒料还有运动情况的不同的约束下的圆柱铣刀和锥度铣刀的槽型优化设计算法。最后通过使用参数化界面输入不同的数据模型,更具算法情况实时显示出所需要的铣刀槽型建模整体结果。总体来讲是一个多约束下的优化算法问题,其问题的重要性在于处理多个约束条件以及不同运动状态所需要的加工轨迹以及槽型的位置关系。因为之前在做数学建模国赛的时候就有学有关多约束的优化算法的内容,所以我前期针对不同的刀具的槽型的设计算法有着一定的了解,通过构建槽型的优化函数来最后确定运动轨迹是否与实际符合,然后再针对算法的灵敏度进行分析并调整算法,最后画出模拟刀具。在做毕设的过程中,我对编程软件以及优化算法有了更深的理解,为我打开了算法学习的大门,也让我认识到我学到的东西只是沧海一粟,我会找到自己的定位,对于合适的方向脚踏实地,积少成多的学习,尽力做到最好。
英语面试
Describe one of the books you have read recently?
Thank you teacher for the question you just asked. Recently I was reading about applied cryptography, and I taught myself the book “Applied Cryptography: Protocols Algorithm and source code in C” by Bruce Schneier over the holidays.
In this book I learned about the three fundamental goals of information security, confidentiality, integrity, and availability. I also learned a lot of detailed analysis and answers to key management techniques in cryptography through this book. I learned a lot about algorithms in cryptography, and I realized that the more I read, the more I learned.
In terms of what I am interested in, I will study and research more seriously.
感谢老师刚刚提出的问题提问。最近我在读有关应用密码学方面的书,我在假期自学了Bruce Schneier所著的《Applied Cryptography: Protocols Algorithm and source code in C》一书。
在本书中我了解到信息安全的三个基本目标,保密性,完整性和可用性。通过本书我还了解到很多对密码技术中秘钥管理技术的详细分析与解答。我了解到很多有关密码学的算法,也认识到读的越多,收获的也越多。
在自己感兴趣的方面,我会更加认真的去努力学习研究。