计算机岗2026面试自测卷习题汇编含答案配套答题思路_第1页
计算机岗2026面试自测卷习题汇编含答案配套答题思路_第2页
计算机岗2026面试自测卷习题汇编含答案配套答题思路_第3页
计算机岗2026面试自测卷习题汇编含答案配套答题思路_第4页
计算机岗2026面试自测卷习题汇编含答案配套答题思路_第5页
已阅读5页,还剩11页未读, 继续免费阅读

下载本文档

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

文档简介

计算机岗2026面试自测卷习题汇编含答案配套答题思路考试时间:______分钟总分:______分姓名:______一、单项选择题1.在单链表中,已知指针p指向链表中的一个结点,若要在p指向的结点后插入一个由指针s指向的新结点,则需要执行的语句序列是A.p->next=s;s->next=p->next;B.s->next=p->next;p->next=s;C.s->next=p;p->next=s;D.p->next=s;s->next=p;2.对于一个具有n个顶点的无向图,若采用邻接表存储结构,则所有顶点的邻接表中的结点总数最多为A.nB.n-1C.n(n-1)D.2n3.在TCP协议中,滑动窗口机制主要用于实现A.流量控制B.拥塞控制C.差错控制D.连接管理4.下列关于HTTP/1.1和HTTP/2的描述中,错误的是A.HTTP/2使用二进制分帧,而不是文本B.HTTP/2支持多路复用,在一个连接上可以发送多个请求和响应C.HTTP/2完全向下兼容HTTP/1.1D.HTTP/2必须使用HTTPS协议才能工作5.在操作系统中,死锁产生的必要条件不包括A.互斥条件B.请求与保持条件C.不剥夺条件D.同步条件6.在关系数据库中,索引的作用不包括A.提高数据查询速度B.减少数据插入、修改和删除时的锁开销C.保证数据的实体完整性D.加快表连接的操作速度7.以下关于Java虚拟机(JVM)垃圾回收(GC)的描述中,正确的是A.程序计数器是GC管理的内存区域B.使用“可达性分析算法”来判断对象是否存活C.对象一旦被GC标记为可回收,下一次GC时一定会被回收D.Finalize()方法是对象逃脱死亡的最后机会,且可以被多次调用8.在分布式系统中,为了解决分布式事务一致性问题,以下哪项技术通常不被使用A.两阶段提交协议B.三阶段提交协议C.TCC模式D.单机数据库事务9.若一个无向图有n个顶点和e条边,则其邻接矩阵是一个n×n的方阵,矩阵中非零元素的总数为A.nB.2eC.eD.n+e10.以下关于Redis缓存穿透的解决方案,描述错误的是A.布隆过滤器可以预先判断key是否存在B.对查询结果为空的情况也进行缓存,并设置较短的过期时间C.使用互斥锁,当缓存未命中时,只允许一个线程去查询数据库D.对查询参数进行校验,过滤掉不合理的参数11.在Linux操作系统中,查看当前进程状态的命令是A.psB.topC.netstatD.ifconfig12.以下哪种设计模式属于“创建型”模式?A.观察者模式B.工厂模式C.策略模式D.责任链模式13.Rust语言相比C++语言,在内存管理上的主要优势是A.提供了自动内存回收机制B.通过所有权系统在编译期保证内存安全,无需垃圾回收器C.支持动态类型D.库函数比C++更丰富14.在Kubernetes(K8s)中,Deployment控制器的主要作用是A.管理存储卷B.管理无状态应用,保证Pod副本数和版本一致性C.管理网络策略D.调度Pod到特定节点15.2026年前后,AI辅助编程工具(如Copilot)在开发流程中的核心价值主要体现在A.完全替代程序员编写所有代码B.通过自动补全和代码生成提高开发效率,降低重复劳动C.自动修复所有已知的BugD.完全接管后端服务器维护工作二、多项选择题1.以下关于TCP协议三次握手的描述,正确的有A.第一次握手主要是发送SYN包,同步序号B.第二次握手主要是发送SYN+ACK包,确认序号C.第三次握手主要是发送ACK包,确认序号D.三次握手完成后,双方才能开始传输数据2.下列属于HTTP状态码4xx客户端错误的有A.400BadRequestB.401UnauthorizedC.403ForbiddenD.404NotFound3.在数据库设计中,范式的作用包括A.消除数据冗余B.避免数据更新异常C.提高查询效率D.简化数据表结构4.以下哪些是面向对象编程(OOP)的四大特征?A.封装B.继承C.多态D.面向过程5.关于Java并发编程,以下描述正确的有A.synchronized关键字可以保证原子性和可见性B.volatile关键字可以保证可见性,但不保证原子性C.CountDownLatch和CyclicBarrier都可以用于多线程同步D.线程池的核心参数包括核心线程数、最大线程数、非核心线程空闲存活时间等6.在分布式缓存场景下,以下哪些是常见的缓存更新策略?A.CacheAsidePatternB.Read/WriteThroughPatternC.WriteBehindCachingPatternD.直接覆盖缓存7.以下关于微服务的描述,正确的有A.微服务架构将单一应用拆分为一组小服务B.每个小服务可独立部署、独立扩展C.服务之间通过轻量级通信机制(如HTTPAPI)交互D.微服务架构能显著降低系统开发的复杂度8.在Kubernetes中,Pod是最小的部署单元,以下关于Pod的描述正确的有A.一个Pod可以包含一个或多个容器B.Pod中的容器共享同一个网络命名空间C.Pod中的容器共享同一个存储卷D.Pod生命周期结束后,其IP地址会立即被回收9.以下哪些是常见的分布式ID生成方案?A.数据库自增IDB.UUIDC.Snowflake(雪花算法)D.MongoDBObjectId10.在Linux中,以下哪些命令可以用于查看文件内容?A.catB.lessC.moreD.grep11.关于设计模式中的单例模式,以下描述正确的有A.确保一个类只有一个实例B.提供一个访问该实例的全局访问点C.饿汉式在类加载时就创建实例D.懒汉式在第一次调用时创建实例12.在关系型数据库中,以下哪些情况会导致索引失效?A.在索引列上进行函数操作B.对索引列进行模糊查询,且前面有通配符(如"%abc")C.对索引列进行隐式类型转换D.使用OR连接两个索引列13.以下哪些是CAP理论的内容?A.Consistency(一致性)B.Availability(可用性)C.PartitionTolerance(分区容错性)D.Scalability(可扩展性)14.在高并发系统中,限流策略通常包括哪些方式?A.漏桶算法B.令牌桶算法C.固定窗口计数器D.令牌桶算法15.关于Rust语言的所有权机制,以下描述正确的有A.Rust中的每个值都有一个被称为其所有者的变量B.值在任一时刻有且只有一个所有者C.当所有者(变量)离开作用域,这个值将被丢弃D.所有权可以转移,但不会发生拷贝三、简答题与代码题1.请简述TCP协议三次握手的过程,并说明为什么需要三次握手?2.什么是数据库事务的ACID特性?请分别解释原子性、一致性、隔离性和持久性。3.请写出在Java中实现单例模式(双重检查锁Double-CheckedLocking版本)的代码,并解释其中的volatile关键字的作用。4.什么是Redis的缓存穿透、缓存击穿和缓存雪崩?请分别给出一种解决方案。5.请简述Kafka消息队列在系统中的常见应用场景。6.请写出二叉树前序遍历的递归算法代码。7.在分布式系统中,如何保证分布式ID的唯一性和趋势递增?请描述Snowflake(雪花算法)的基本原理。8.什么是微服务架构?相比于单体架构,微服务架构有哪些优缺点?9.请解释HTTP协议中GET和POST请求的主要区别。10.在Linux操作系统中,如何查看一个正在运行的Java进程的线程堆栈信息?试卷答案一、单项选择题1.答案:B解析:在单链表中插入节点s到节点p之后,需要先将s的next指向p的下一个节点,再将p的next指向s,顺序不能颠倒。选项B符合此逻辑。2.答案:C解析:对于具有n个顶点的无向图,最多有n*(n-1)/2条边。邻接表存储时,每条边在邻接表中出现两次(双向连接),所以非零元素的总数为2*边数=n*(n-1)。3.答案:A解析:TCP滑动窗口机制主要用于流量控制(接收方通告窗口大小)和拥塞控制(发送方通告拥塞窗口)。4.答案:D解析:HTTP/2使用二进制分帧(A正确)、支持多路复用(B正确)、向下兼容HTTP/1.1(C正确)。虽然HTTP/2通常在HTTPS上运行以保证头部压缩的安全,但理论上并非强制要求(浏览器通常会强制要求),相比之下D选项的描述最为绝对且不准确。5.答案:D解析:死锁产生的四个必要条件是:互斥条件、请求与保持条件、不剥夺条件、循环等待条件。同步条件是进程同步机制的概念,不是死锁的必要条件。6.答案:B解析:索引的主要作用是提高查询速度(A正确)、加快表连接(D正确)。索引会占用存储空间,并且会增加插入、修改、删除时的开销(B错误,索引会增加开销)。索引不能保证实体完整性,那是主键/外键约束的职责(C错误)。7.答案:B解析:JVM垃圾回收主要管理堆内存。程序计数器不是GC管理的内存区域。对象被标记为可回收后,需要经过一次GC回收周期才会真正释放内存(C错误)。Finalize()方法只能被调用一次(D错误)。8.答案:D解析:两阶段提交(2PC)、三阶段提交(3PC)和TCC模式都是分布式事务解决方案。单机数据库事务(D)不是分布式场景下的解决方案。9.答案:B解析:无向图的邻接矩阵是对称的,非零元素的总数即为边的条数的两倍。10.答案:C解析:C描述的是“缓存击穿”(热点Key过期,大量请求直接打到数据库)。缓存穿透是指查询不存在的数据,解决方案包括缓存空值(B)和布隆过滤器(A)。C是错误的描述。11.答案:A解析:`ps`命令用于报告当前进程的快照。`top`是动态显示,`netstat`用于网络状态,`ifconfig`用于网络配置。12.答案:B解析:工厂模式、建造者模式、单例模式属于创建型模式。观察者、策略、责任链属于行为型或结构型模式。13.答案:B解析:Rust的核心优势在于“所有权”机制,在编译期通过编译器的严格检查来保证内存安全,从而无需像C++那样依赖复杂的运行时垃圾回收或手动管理。14.答案:B解析:Deployment控制器用于管理无状态应用,保证Pod的副本数量、版本一致性及滚动更新。StatefulSet用于有状态应用,DaemonSet用于守护进程,Deployment管理不了存储卷。15.答案:B解析:AI辅助编程工具(如Copilot)主要用于代码补全、生成代码片段和重构建议,以提高开发效率(B正确),但无法完全替代程序员(A错误)进行复杂的架构决策和业务逻辑设计,也无法自动修复所有Bug(C错误)。二、多项选择题1.答案:ABCD解析:TCP三次握手是建立可靠连接的过程:发送SYN同步序号、返回SYN+ACK确认并同步序号、发送ACK确认序号。完成后双方才能传输数据。2.答案:ABCD解析:4xx系列均为客户端错误:400请求错误、401未授权、403禁止访问、404未找到。3.答案:ABC解析:范式的主要目的是消除数据冗余(A)和避免数据更新异常(B),从而保证数据的一致性。规范化虽然能简化结构,但有时为了性能会反范式化(D),且规范化本身并不直接等同于提高查询效率(C是副作用,非主要目的)。4.答案:ABC解析:面向对象编程的四大特征是封装、继承、多态。面向过程是另一种编程范式。5.答案:ABCD解析:synchronized保证原子性和可见性,volatile保证可见性但不保证原子性;CountDownLatch和CyclicBarrier都是多线程同步工具;线程池包含核心线程数、最大线程数、存活时间等参数。6.答案:ABC解析:Read-Through(穿透)、Write-Through(直写)、Write-Behind(回写)是三种标准的缓存更新策略。直接覆盖缓存是具体的实现方式,通常归类于Write-Through的一种简化形式,但作为策略名称不如前三个严谨。7.答案:ABC解析:微服务架构将单体应用拆分为一组小服务,服务间独立部署、独立扩展、使用轻量级通信(HTTPAPI)。微服务虽然灵活性高,但显著增加了系统运维和开发的复杂度(D错误)。8.答案:ABC解析:Pod是最小单元,包含一个或多个容器,共享网络和存储。Pod生命周期结束后,其IP地址会被回收(D错误)。9.答案:ABCD解析:数据库自增ID、UUID、Snowflake算法、MongoDBObjectId都是常见的分布式ID生成方案。10.答案:ABC解析:`cat`、`less`、`more`都可以用于查看文件内容。`grep`用于搜索过滤文本。11.答案:ABCD解析:单例模式确保唯一实例、提供全局访问点。饿汉式在类加载时实例化,懒汉式在第一次调用时实例化。12.答案:ABCD解析:索引失效的情况包括:对索引列进行函数运算(A)、模糊查询以%开头(B)、类型隐式转换(C)、使用OR连接非索引列(D)。13.答案:ABC解析:CAP理论包含一致性、可用性、分区容错性。可扩展性不是CAP理论的核心内容。14.答案:ABC解析:限流策略包括漏桶算法、令牌桶算法、固定窗口计数器等。D选项重复了令牌桶算法。15.答案:ABCD解析:Rust的所有权机制包括:每个值有且只有一个所有者(A、B)、离开作用域值被丢弃(C)、所有权可以转移但不会发生深拷贝(D)。三、简答题与代码题1.答案:解析:TCP三次握手过程如下:1.客户端发送一个SYN包,序列号seq=x,请求建立连接。2.服务端收到SYN包后,回复SYN+ACK包,确认序号ack=x+1,同时自己的序列号seq=y。3.客户端收到SYN+ACK包后,发送ACK包,确认序号ack=y+1,序列号seq=x+1。原因:三次握手是为了确认双方的发送和接收能力是否正常,并同步初始序列号。防止失效的连接请求突然又传到服务端,造成服务端误开启连接,浪费资源。2.答案:解析:-原子性:事务中的操作要么全部成功,要么全部失败,不会出现只执行一半的情况。-一致性:事务执行前后,数据库的完整性约束没有被破坏。-隔离性:多个事务并发执行时,互不干扰。-持久性:事务提交后,对数据的修改是永久性的,即使系统故障也不会丢失。3.答案:```javapublicclassSingleton{privatevolatilestaticSingletoninstance;privateSingleton(){}publicstaticSingletongetInstance(){if(instance==null){synchronized(Singleton.class){if(instance==null){instance=newSingleton();}}}returninstance;}}```解析:-双重检查锁:第一次检查`instance==null`是为了避免不必要的同步开销;进入同步块后再检查一次是为了保证线程安全。-volatile关键字:防止指令重排序。如果没有volatile,`newSingleton()`的步骤(分配内存->初始化对象->将引用指向内存)可能会被重排序为(分配内存->将引用指向内存->初始化对象)。此时另一个线程可能拿到未初始化完的对象,导致程序出错。4.答案:解析:-缓存穿透:查询一个不存在的数据。解决方案:布隆过滤器预判key是否存在;缓存空值并设置短过期时间。-缓存击穿:热点key过期,大量请求同时击穿缓存打到数据库。解决方案:互斥锁,只让一个线程去查数据库并回写缓存。-缓存雪崩:大量key同时过期或Redis宕机。解决方案:设置随机过期时间,避免集体过期。5.答案:解析:-异步解耦:生产者发送消息,消费者异步处理,降低系统耦合度。-流量削峰:通过消息队列缓冲流量,保护后端数据库不被瞬间高并发冲垮。-日志收集与流处理:收集分布式系统的日志数据进行实时分析。6.答案:```javapublicvoidpreOrder(TreeNoderoot){if(root==null){return;}//1.访问根节点System.out.print(root.val+"");//2.遍历左子树preOrder(ro

温馨提示

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

评论

0/150

提交评论