2026计算机岗面试易错题预测试卷含答案易错题集_第1页
2026计算机岗面试易错题预测试卷含答案易错题集_第2页
2026计算机岗面试易错题预测试卷含答案易错题集_第3页
2026计算机岗面试易错题预测试卷含答案易错题集_第4页
2026计算机岗面试易错题预测试卷含答案易错题集_第5页
已阅读5页,还剩11页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2026计算机岗面试易错题预测试卷含答案易错题集考试时间:______分钟总分:______分姓名:______选择题(共20题)1.关于TCP拥塞控制,以下说法正确的是()A.流量控制是通过滑动窗口实现的,拥塞控制是通过超时重传实现的B.拥塞控制是为了防止发送方发送速度超过接收方处理能力C.当网络拥塞时,TCP将cwnd设置为1,进入慢启动阶段D.接收方通过通告窗口(rwnd)告知发送方自己的接收能力2.在请求分页系统中,以下哪种页面置换算法会产生“Belady异常”?()A.最佳置换算法(OPT)B.最近最少使用(LRU)C.先进先出(FIFO)D.时钟置换算法(Clock)3.以下场景会导致数据库索引失效的是()A.对索引列使用函数(如`WHERESUBSTR(name,1,3)='abc'`)B.对索引列使用`OR`连接(非索引列)C.索引列参与算术运算(如`WHEREage+10=20`)D.对索引列使用`LIKE`模糊查询(如`WHEREnameLIKE'abc%'`)4.进程与线程的区别不包括()A.进程是资源分配的基本单位,线程是CPU调度的基本单位B.进程间通信复杂,线程间通信简单C.进程切换开销小,线程切换开销大D.进程拥有独立地址空间,线程共享进程资源5.关于HTTP协议,以下说法正确的是()A.HTTP是无状态协议,因此不能保持用户会话B.HTTPS通过SSL/TLS加密,默认端口为80C.HTTP/1.1支持长连接,通过`Connection:keep-alive`实现D.GET请求参数必须放在URL中,POST请求参数必须放在请求体中6.以下数据结构中,适合实现LRU缓存的是()A.数组+链表B.哈希表+双向链表C.栈+队列D.二叉搜索树7.数据库事务的ACID特性中,“隔离性”指的是()A.事务中的操作要么全部成功,要么全部失败B.事务执行前后,数据库的完整性约束不被破坏C.多个并发事务之间相互隔离,一个事务的执行不应影响其他事务D.事务一旦提交,对数据库的修改是永久性的8.操作系统中,死锁产生的四个必要条件不包括()A.互斥条件B.请求与保持条件C.非剥夺条件D.循环等待条件E.可抢占条件9.关于Redis和Memcached的区别,以下说法错误的是()A.Redis支持多种数据结构,Memcached仅支持StringB.Redis支持持久化,Memcached不支持C.Redis是单线程模型,Memcached是多线程模型D.Redis的读写性能一定高于Memcached10.快速排序算法的最坏时间复杂度是()A.O(n)B.O(nlogn)C.O(n²)D.O(2ⁿ)11.数据库中,以下哪种锁机制可以避免幻读?()A.行锁B.表锁C.间隙锁D.共享锁12.以下关于进程和线程的说法,正确的是()A.线程是进程的执行单元,一个进程可以包含多个线程B.线程切换需要保存进程的上下文,开销大C.进程间可以通过共享内存通信,线程间只能通过消息队列通信D.线程崩溃会导致整个操作系统崩溃13.TCP三次握手的主要目的是()A.确认双方收发能力B.分配网络资源C.防止重复连接D.加密传输数据14.以下哪种算法可以解决哈希冲突?()A.直接寻址法B.链地址法C.二次探测法D.以上都是15.数据库中,以下哪种操作会导致事务隔离级别为“读已提交”时出现不可重复读?()A.事务A读取数据后,事务B修改并提交该数据B.事务A读取数据后,事务B删除该数据C.事务A读取数据后,事务B插入新数据D.事务A读取数据后,事务B回滚操作16.关于二叉树遍历,以下说法正确的是()A.前序遍历的顺序是:根节点→左子树→右子树B.中序遍历的顺序是:左子树→根节点→右子树C.后序遍历的顺序是:左子树→右子树→根节点D.层次遍历的顺序是:从根节点开始,逐层遍历17.以下哪种场景适合使用消息队列?()A.高并发场景下的流量削峰B.数据库事务保证C.实时计算任务D.用户会话管理18.操作系统中,虚拟内存的主要作用是()A.增加物理内存容量B.实现进程隔离C.扩大地址空间,允许进程使用比物理内存更大的空间D.提高CPU利用率19.关于数据库索引,以下说法错误的是()A.索引可以加快查询速度,但会降低写操作速度B.索引越多越好,可以覆盖所有查询场景C.索引是数据库中用于快速查找数据的排序数据结构D.聚簇索引和非聚簇索引的区别在于数据存储方式20.以下哪种算法的时间复杂度是O(nlogn)?()A.冒泡排序B.选择排序C.归并排序D.插入排序编程题(共5题)1.实现反转单向链表的函数,要求空间复杂度O(1)。2.设计一个LRU缓存,支持`get`和`put`操作,要求时间复杂度O(1)。3.实现一个函数,找出字符串中无重复字符的最长子串,输入`s="abcabcbb"`,输出应为3。4.判断二叉树是否对称,要求空间复杂度O(1)。5.实现一个函数,找出数组中两个数的和等于目标值,要求时间复杂度O(n)。简答题(共3题)1.简述进程与线程的区别,从资源、调度、通信、健壮性、开销五个维度对比。2.数据库的ACID特性是什么?常见的事务隔离级别有哪些?不同隔离级别可能存在哪些并发问题?3.什么是数据库事务?请举例说明事务的原子性。项目/场景题(共2题)1.描述一个你参与的高并发项目,遇到的挑战及解决过程。要求按背景→目标→技术栈→难点→解决方案→结果的逻辑展开。2.为什么用Redis做缓存,而不是Memcached?请结合两者的特性对比说明。试卷答案选择题1.D解析:A选项混淆了流量控制(滑动窗口)和拥塞控制(调整cwnd)的机制;B选项描述的是流量控制而非拥塞控制;C选项中,网络拥塞时TCP将ssthresh减半并重置cwnd为1进入慢启动,但“cwnd设置为1”是慢启动的初始值,不是拥塞控制的直接动作;D选项正确,接收方通过通告窗口(rwnd)告知发送方接收能力。2.C解析:Belady异常是指分配物理页帧增加时缺页次数反而增加的现象。FIFO算法可能产生该异常,而LRU、OPT和Clock算法不会。3.A、C解析:A选项中对索引列使用函数破坏有序性,导致索引失效;C选项中索引列参与算术运算同样破坏有序性;B选项中OR连接非索引列会导致失效,但题目未明确条件;D选项中LIKE'abc%'可使用索引(通配符在末尾)。4.C解析:进程切换需保存进程上下文(地址空间、文件句柄等),开销大;线程切换只需保存线程上下文(栈、寄存器),开销小。5.C解析:A选项错误,HTTP可通过Cookie/Session保持会话;B选项错误,HTTPS默认端口443;D选项错误,GET参数可放请求体;C选项正确,HTTP/1.1通过`Connection:keep-alive`支持长连接。6.B解析:LRU需O(1)的get/put操作,哈希表实现O(1)查找,双向链表维护访问顺序(最近访问的头部,最久未访问的尾部)。7.C解析:A是原子性,B是一致性,C是隔离性,D是持久性。8.E解析:死锁四条件:互斥、请求与保持、非剥夺、循环等待。可抢占条件破坏死锁,非必要条件。9.D解析:Redis和Memcached性能取决于场景:Redis单线程但IO多路复用,Memcached多线程,高并发写场景Memcached可能更高。10.C解析:快速排序最坏时间复杂度发生在极不平衡划分(如已有序)时,为O(n²)。11.C解析:间隙锁锁定范围,防止插入数据,避免幻读;行锁无法阻止间隙插入。12.A解析:B错误,线程切换开销小;C错误,线程间可共享内存通信;D错误,线程崩溃仅终止所属进程。13.A解析:三次握手确认双方收发能力(SYN→SYN+ACK→ACK),同步序列号。14.D解析:直接寻址法(无冲突时)、链地址法(拉链法)、二次探测法(开放地址法)均解决哈希冲突。15.A解析:读已提交隔离级别下,事务A读取后,事务B修改并提交,A再次读取会得到新值,导致不可重复读。16.A、B、C、D解析:四个选项分别描述前序(根→左→右)、中序(左→根→右)、后序(左→右→根)、层次遍历(逐层)顺序,均正确。17.A解析:消息队列用于高并发流量削峰(如秒杀),解耦异步处理;数据库事务由DB保证;实时计算用流处理框架;会话管理用Session/Cookie。18.C解析:虚拟内存通过页表和换入换出,允许进程使用比物理内存更大的地址空间。19.B解析:索引占用存储空间,降低写速度(需更新索引),并非越多越好,需根据查询场景创建。20.C解析:归并排序时间复杂度O(nlogn);冒泡、选择、插入排序均为O(n²)。编程题1.反转单向链表(空间复杂度O(1))```javaclassListNode{intval;ListNodenext;ListNode(intval){this.val=val;}}publicListNodereverseList(ListNodehead){ListNodeprev=null;ListNodecurr=head;while(curr!=null){ListNodenext=curr.next;curr.next=prev;prev=curr;curr=next;}returnprev;}```解析:用prev、curr、next三指针遍历链表,将每个节点的next指向前一节点,最后prev指向新头节点。2.LRU缓存(时间复杂度O(1))```javaimportjava.util.HashMap;classLRUCache{classNode{intkey,value;Nodeprev,next;Node(intkey,intvalue){this.key=key;this.value=value;}}privateintcapacity;privateHashMap<Integer,Node>map;privateNodehead,tail;publicLRUCache(intcapacity){this.capacity=capacity;map=newHashMap<>();head=newNode(-1,-1);tail=newNode(-1,-1);head.next=tail;tail.prev=head;}publicintget(intkey){if(!map.containsKey(key))return-1;Nodenode=map.get(key);moveToHead(node);returnnode.value;}publicvoidput(intkey,intvalue){if(map.containsKey(key)){Nodenode=map.get(key);node.value=value;moveToHead(node);return;}if(map.size()==capacity){NodelastNode=tail.prev;removeNode(lastNode);map.remove(lastNode.key);}NodenewNode=newNode(key,value);map.put(key,newNode);addToHead(newNode);}privatevoidmoveToHead(Nodenode){removeNode(node);addToHead(node);}privatevoidremoveNode(Nodenode){node.prev.next=node.next;node.next.prev=node.prev;}privatevoidaddToHead(Nodenode){node.prev=head;node.next=head.next;head.next.prev=node;head.next=node;}}```解析:哈希表存储key→节点映射,双向链表按访问排序(头节点最近,尾节点最久)。get时移到头部,put时更新值或新建节点,满时删除尾节点。3.无重复字符的最长子串```javapublicintlengthOfLongestSubstring(Strings){intleft=0,maxLen=0;HashMap<Character,Integer>charIndexMap=newHashMap<>();for(intright=0;right<s.length();right++){charc=s.charAt(right);if(charIndexMap.containsKey(c)){left=Math.max(left,charIndexMap.get(c)+1);}charIndexMap.put(c,right);maxLen=Math.max(maxLen,right-left+1);}returnmaxLen;}```解析:滑动窗口+哈希表,记录字符最新位置。遇到重复字符时,左指针移动到重复字符的下一个位置,更新最大长度。4.判断二叉树是否对称(空间复杂度O(1))```javaimportjava.util.LinkedList;importjava.util.Queue;classTreeNode{intval;TreeNodeleft;TreeNoderight;TreeNode(intval){this.val=val;}}publicbooleanisSymmetric(TreeNoderoot){if(root==null)returntrue;Queue<TreeNode>queue=newLinkedList<>();queue.offer(root.left);queue.offer(root.right);while(!queue.isEmpty()){TreeNodeleft=queue.poll();TreeNoderight=queue.poll();if(left==null&&right==null)continue;if(left==null||right==null)returnfalse;if(left.val!=right.val)returnfalse;queue.offer(left.left);queue.offer(right.right);queue.offer(left.right);queue.offer(right.left);}returntrue;}```解析:迭代法,双队列存储对称节点。每次取出两个节点比较值,再分别加入左节点的左子树与右节点的右子树、左节点的右子树与右节点的左子树。5.两数之和(时间复杂度O(n))```javapublicint[]twoSum(int[]nums,inttarget){HashMap<Integer,Integer>numIndexMap=newHashMap<>();for(inti=0;i<nums.length;i++){intcomplement=target-nums[i];if(numIndexMap.containsKey(complement)){returnnewint[]{numIndexMap.get(complement),i};}numIndexMap.put(nums[i],i);}returnnewint[]{-1,-1};}```解析:哈希表存储已遍历数字及索引,遍历时判断当前值的差值是否在哈希表中,存在则返回索引。简答题1.进程与线程区别:-资源:进程是资源分配基本单位(独立地址空间),线程是CPU调度基本单位(共享进程资源);-调度:进程切换开销大(保存上下文),线程切换开销小(保存寄存器);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论