版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026计算机岗面试高频题题库全真练习易错题集考试时间:______分钟总分:______分姓名:______一、单项选择题1.在单链表中,已知指针s所指结点是*p所指结点的直接前驱,若在*s与*p之间插入结点*q,则执行操作:A.s->next=q;q->next=p;B.p->next=q;s->next=q;C.q->next=p;p->next=q;D.s->next=q;q->next=p->next;2.关于TCP协议的三次握手过程,下列说法正确的是:A.第一次握手可以发送数据B.第二次握手可以发送数据C.第三次握手可以发送数据D.三次握手过程中都不会发送数据3.在关系数据库中,下列关于索引的描述错误的是:A.索引可以加快数据的检索速度B.索引会占用存储空间C.索引可以提高更新表数据的速度D.索引对数据库系统没有负面影响4.Java语言中,String类为什么被设计为不可变的(Immutable)?A.为了提高字符串拼接的效率B.为了线程安全C.为了节省内存空间D.为了方便垃圾回收5.在操作系统内存管理中,虚拟内存的目的是:A.扩大物理内存容量B.提高内存利用率C.简化内存分配算法D.减少页面错误的发生6.关于二叉树的遍历,若先序遍历序列为:A,B,D,E,C,F,中序遍历序列为:D,B,E,A,C,F,则其后序遍历序列为:A.D,E,B,F,C,AB.D,E,B,F,A,CC.D,B,E,F,C,AD.D,B,E,F,A,C7.在Linux系统中,一个进程被创建后,下列关于进程状态的描述正确的是:A.进程一旦创建就永久处于运行状态B.进程只能从就绪态转换为运行态C.进程在等待资源时处于阻塞态D.进程状态之间不能相互转换8.关于HTTP和HTTPS协议,下列说法正确的是:A.HTTPS协议基于TCP协议,HTTP协议基于UDP协议B.HTTPS协议在传输层对数据进行加密,HTTP协议不加密C.HTTPS协议默认端口是80,HTTP协议默认端口是443D.HTTPS协议比HTTP协议速度更快9.数据库事务的隔离级别中,下列哪一种级别允许“脏读”?A.READUNCOMMITTEDB.READCOMMITTEDC.REPEATABLEREADD.SERIALIZABLE10.在分布式系统中,CAP定理指出分布式系统不可能同时满足:A.一致性、可用性、分区容错性B.一致性、可用性、可扩展性C.一致性、可靠性、分区容错性D.一致性、可靠性、可用性11.算法的时间复杂度是指:A.执行算法所需要的时间B.算法程序中的语句条数C.算法执行过程中所需要的基本运算次数D.算法程序中的指令条数12.关于堆排序,下列说法正确的是:A.堆排序是一种不稳定排序B.堆排序是一种稳定排序C.堆排序适合大规模数据的排序D.堆排序的时间复杂度在最坏情况下是O(n)13.在Java并发编程中,ReentrantLock(可重入锁)与synchronized关键字的主要区别不包括:A.ReentrantLock需要手动释放锁,synchronized自动释放B.ReentrantLock可以实现公平锁,synchronized不能C.ReentrantLock性能一定比synchronized高D.ReentrantLock支持条件变量14.Redis中,如果数据量非常大,下列哪种数据结构最节省内存?A.HashB.StringC.SetD.ZSet15.面向对象设计原则中,单一职责原则(SRP)是指:A.一个类应该有且只有一个改变的理由B.一个类应该只依赖于一个抽象类或接口C.子类可以扩展父类的功能,但不能覆盖父类的实现D.实体之间应该通过抽象接口进行交互,而不依赖具体实现二、多项选择题1.下列哪些是TCP协议的特性?()A.面向连接B.面向无连接C.可靠传输D.不可靠传输E.面向字节流F.面向报文2.在MySQL数据库中,下列哪些情况会导致索引失效?()A.在WHERE子句中对字段进行函数操作B.对字段进行LIKE查询,且以通配符%开头C.对字段进行OR操作,且OR左右两侧字段有索引D.对字段进行隐式类型转换E.对字段进行ORDERBY操作,且顺序与索引顺序一致3.操作系统中,进程和线程的区别包括:()A.进程是资源分配的基本单位,线程是CPU调度的基本单位B.一个进程包含多个线程C.线程之间可以共享进程的资源,也可以共享内存D.进程之间的通信比线程之间的通信更复杂E.线程切换比进程切换更快4.关于算法的稳定性,下列说法正确的是:()A.快速排序是不稳定的排序算法B.归并排序是稳定的排序算法C.冒泡排序是稳定的排序算法D.堆排序是稳定的排序算法E.插入排序是稳定的排序算法5.在系统设计面试中,设计一个高并发短网址服务(如bit.ly),需要考虑哪些关键技术点?()A.ID生成策略(保证唯一性)B.URL存储方案(数据库还是Redis)C.短码生成算法(Base62编码)D.如何处理缓存穿透E.必须使用微服务架构6.Java垃圾回收(GC)机制中,下列哪些是常见的垃圾回收算法?()A.标记-清除算法B.复制算法C.标记-整理算法D.分代收集算法E.栈式分配算法7.下列哪些是TCP协议中滑动窗口的作用?()A.流量控制B.拥塞控制C.减少网络延迟D.确认接收到的数据E.提高传输速度8.关于数据库范式,下列说法正确的是:()A.第一范式(1NF)要求属性值是原子性的B.第二范式(2NF)要求非主属性完全依赖于码C.第三范式(3NF)要求非主属性不传递依赖于码D.范式越高,数据冗余度越低,查询效率越高E.实际应用中,通常不需要达到第三范式9.在分布式系统中,常见的分布式锁实现方式有:()A.基于数据库实现B.基于Redis实现C.基于ZooKeeper实现D.基于本地内存实现E.基于消息队列实现10.关于二叉树,下列说法正确的是:()A.二叉树的第i层上最多有2^(i-1)个结点(i>=1)B.深度为k的二叉树最多有2^k-1个结点C.在完全二叉树中,若结点数为n,则其叶子结点数为n/2D.二叉树可以是空树E.二叉树中每个结点最多有两棵子树三、填空题1.在链表操作中,要删除链表中的某个节点,关键在于找到该节点的前驱节点,而无需知道该节点的地址,这体现了链表数据结构的________特性。2.快速排序算法中,确定枢轴元素(Pivot)的方法有多种,常见的有________法、中间值法(三数取中法)等。3.在TCP三次握手过程中,第一次握手发送的标志位是________,第二次握手发送的标志位是SYN和ACK,第三次握手发送的标志位是________。4.在MySQL中,InnoDB存储引擎的行锁是通过记录在________上的索引来实现的。5.算法的时间复杂度通常用大O表示法表示,例如冒泡排序的时间复杂度在最坏情况下是O(n²),在最好情况下是________。6.在Java中,HashMap的底层实现是数组+________,它的put操作的时间复杂度平均情况下是O(1)。7.在分布式系统中,为了解决单点故障问题,通常采用________机制,即系统中存在多个相同的服务节点。8.在数据库事务ACID特性中,________是指事务执行的结果必须是使数据库从一个一致性状态变换到另一个一致性状态。9.在Linux中,查看当前进程的树状结构的命令是________。10.在HTTP/1.1协议中,为了保持连接的复用性,引入了________机制。四、简答题1.请简述TCP协议三次握手的过程,并解释为什么需要三次握手,而不是两次或四次?2.请解释数据库索引失效的常见原因,并结合具体SQL语句说明。3.什么是死锁?产生死锁的四个必要条件是什么?如何避免和预防死锁?4.请简述Redis中String类型数据的使用场景及其底层编码实现。5.在设计高并发秒杀系统时,如何利用Redis缓存来防止超卖现象?请描述其大致流程。6.请解释什么是“缓存穿透”、“缓存击穿”和“缓存雪崩”,并分别给出解决方案。五、编程/算法题1.给定一个链表的头节点head,反转链表,并返回反转后的链表头节点。2.设计一个LRU(最近最少使用)缓存机制。它应该支持以下操作:获取数据get和写入数据put。获取数据get(key)-如果关键字(key)存在于缓存中,则返回关键字的值,否则返回-1。写入数据put(key,value)-如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组数据。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值。3.给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。试卷答案一、单项选择题1.A解析:在单链表中,要插入一个新节点*q*,并使*q*成为*p*的前驱,*s*的前驱。首先需要将*q*的next指向*p*,然后将*s*的next指向*q*,从而形成*s*->*q*->*p*的链表结构。2.D解析:TCP的三次握手过程中,第一次握手发送SYN,第二次发送SYN+ACK,第三次发送ACK。这三次握手中的数据包通常不携带应用层数据,只有第三次握手时应用层数据才会开始传输。3.C解析:索引虽然能提高查询速度,但索引本身需要占用存储空间,并且在插入、删除、更新数据时,数据库需要维护索引结构,这会增加额外的开销,降低写入速度。4.B解析:String类被设计为不可变的主要原因是线程安全和安全性。String对象一旦创建,其内容不可变,因此可以在多线程环境下安全共享,且避免了字符串被意外修改带来的安全隐患。5.A解析:虚拟内存通过将内存和硬盘空间结合起来使用,为每个进程提供一个独立的、连续的地址空间,从而让程序感觉拥有比实际物理内存大得多的内存空间,但其本质不能凭空增加物理内存的硬件容量。6.A解析:根据先序和中序遍历序列可以唯一确定二叉树。先序序列确定根节点,中序序列确定左右子树。推导过程:根A,左子树BDE,右子树CF。在左子树中,先序BDE,中序DBE,确定B为根,D,E为右子树。右子树同理。最终后序为DEBFCA。7.C解析:进程状态包括运行态、就绪态和阻塞态。当进程等待资源(如IO)时,会从运行态转变为阻塞态,等待资源就绪后变为就绪态。8.B解析:HTTPS在传输层使用SSL/TLS协议对数据进行加密,保证了数据传输的安全性;HTTP明文传输不安全。HTTPS默认端口是443,HTTP默认是80。9.A解析:READUNCOMMITTED(读未提交)是隔离级别最低的,允许读取其他事务未提交的数据,即“脏读”。10.A解析:CAP定理指出分布式系统在一致性、可用性和分区容错性三者之间只能同时满足两项,无法三者兼顾。11.C解析:时间复杂度衡量的是算法执行过程中基本运算次数随输入规模增长的趋势,而非具体的执行时间。12.A解析:堆排序是一种不稳定的排序算法(因为存在交换操作可能改变相同元素的相对顺序),其时间复杂度在最好、平均和最坏情况下都是O(nlogn)。13.C解析:ReentrantLock与synchronized的主要区别在于:ReentrantLock需要手动释放锁、支持公平锁、支持条件变量;但在JDK1.6及之后,synchronized经过优化,性能已经非常高,且通常优于手动锁。14.A解析:Redis的Hash类型在元素数量较少时,使用ziplist编码,比String类型存储大量相同前缀的键值对更节省内存。15.A解析:单一职责原则(SRP)要求一个类或者模块应该有且只有一个改变的理由,即只负责一项职责。二、多项选择题1.A,C,E解析:TCP是面向连接的、可靠的、面向字节流的传输协议。2.A,B,D解析:索引失效情况包括:对字段进行函数操作、前导通配符查询(%abc)、隐式类型转换、OR查询中有一侧未命中索引等。3.A,B,C,D,E解析:进程是资源分配单位,线程是CPU调度单位;一个进程包含多个线程;线程共享进程资源(包括内存);进程间通信复杂,线程间通信简单;线程切换开销远小于进程。4.A,B,C,E解析:归并排序、冒泡排序、插入排序是稳定的;快速排序、堆排序是不稳定的。5.A,B,C,D解析:高并发短网址服务需要考虑ID生成(雪花算法)、存储方案、短码编码、防缓存穿透(布隆过滤器或空值缓存)。微服务架构是可选的,单体应用配合合理设计同样可以应对。6.A,B,C,D解析:垃圾回收算法包括标记-清除、复制、标记-整理和分代收集。栈式分配是编译器优化手段,不属于GC算法。7.A,B,C,E解析:滑动窗口用于流量控制和拥塞控制,以及提高传输效率。8.A,B,C,E解析:范式越高,数据冗余越低,但查询效率越低,通常在3NF和反范式之间权衡。9.A,B,C解析:分布式锁实现方式包括数据库(悲观锁/乐观锁)、Redis(SETNX)、ZooKeeper(临时顺序节点)。10.A,B,D,E解析:二叉树第i层最多2^(i-1)个节点;深度为k的满二叉树最多2^k-1个节点;二叉树可以是空树;每个结点最多两棵子树(0、1或2)。三、填空题1.隐式指针2.取第一个元素/取最后一个元素3.SYN;ACK4.索引5.O(n)6.链表(或红黑树)7.冗余(或副本)8.一致性9.pstree10.Keep-Alive(或持久连接)四、简答题1.TCP三次握手解析:*过程:第一次,客户端发送SYN包(seq=x)给服务器,进入SYN_SENT状态;第二次,服务器收到SYN包,回复SYN+ACK包(seq=y,ack=x+1),进入SYN_RCVD状态;第三次,客户端收到SYN+ACK包,回复ACK包(ack=y+1),客户端和服务器进入ESTABLISHED状态。*为什么是三次:主要是为了防止已失效的连接请求报文段突然又传送到了服务端,造成错误连接。如果只有两次,服务端发出确认后无法判断客户端是否收到确认,可能导致服务端资源浪费或死锁。2.索引失效解析:*函数操作:如`WHEREYEAR(create_time)=2023`,索引无法用于函数参数。*前导通配符:如`WHEREnameLIKE'%abc'`,索引失效。*隐式类型转换:如`WHEREid=123`(id是字符串,123是数字),导致索引失效。*OR条件:OR两边的条件列如果不是同一个索引,往往会导致索引失效。*负向查询:如`NOTIN`,`!=`,`<>`有时会导致索引失效。3.死锁解析:*定义:两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象。*四个必要条件:互斥条件、请求与保持条件、不剥夺条件、循环等待条件。*解决方法:1.预防:破坏上述四个条件之一(如破坏循环等待,给资源排序);2.避免:使用银行家算法;3.检测与恢复:运行时检测死锁并恢复。4.RedisString解析:*场景:缓存对象、计数器(如点赞数)、分布式ID生成、简单的KV存储。*底层编码:int(整数)、embstr(短字符串,<=44字节)、raw(长字符串)。5.秒杀系统防超卖解析:*流程:1.用户发起请求;2.先在Redis中扣减库存(使用Redis的decr或Lua脚本保证原子性);3.如果库存扣减成功,再将订单信息写入数据库;4.如果扣减失败,直接返回失败。*关键:利用Redis的高性能和原子性操作,先于数据库进行库存判断。6.缓存问题解析:*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 风机液压系统检修技师试题及答案
- 轨道巡检维护技师试题及答案
- 2026年护士执业资格试题(基础护理学)自测(附答案)
- 2026年急危重症护士急危重症护理考核模拟题答案及解析
- 2026年检测站综合模拟试题及参考答案
- 2026年临床执业医师技能操作模拟
- 2026年煤矿培训考核考试题库150道及答案
- 2026年普法综合提升测试卷及参考答案(培优A卷)
- 2026年人工智能专业考试试题与答案解析
- 2026年校招:振石集团笔试题及答案
- 2026年招聘教研员面试题及答案
- 2026版:中国结直肠癌早诊早治专家共识
- 儿童支气管哮喘标准化门诊建设标准
- 促销服务费合同
- 2025年忻州市检察系统考试真题(附答案)
- 学生意外伤害事故过程调查表2026年
- 客运驾驶员安全课件
- GB/T 4772.1-2025旋转电机尺寸和输出功率等级第1部分:机座号56~400和凸缘号55~1 080
- 《先进制造技术》课件(共七章)
- 电工基础课程说课课件
- 危险作业告知卡
评论
0/150
提交评论