2026年信息公司笔试题库及答案_第1页
2026年信息公司笔试题库及答案_第2页
2026年信息公司笔试题库及答案_第3页
2026年信息公司笔试题库及答案_第4页
2026年信息公司笔试题库及答案_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

2026年信息公司笔试题库及答案一、选择题1.在分布式系统中,CAP定理指出一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partitiontolerance)这三项中的两项。以下哪种场景的描述,主要牺牲了一致性(C)来保障可用性(A)和分区容错性(P)?A.银行跨行转账交易,要求转账前后两个账户的总金额必须绝对一致,即使系统部分节点故障导致服务暂时不可用。B.一个社交媒体的点赞功能,用户点击点赞后,系统立即返回成功,但点赞数可能不会立刻在所有用户的页面上同步更新,允许短暂的数据不一致。C.一个单机版的关系型数据库,所有读写操作都保证强一致性,但一旦服务器宕机,整个服务将完全不可用。D.一个分布式数据库集群,采用两阶段提交协议(2PC)来保证跨节点事务的强一致性,在网络分区发生时,相关事务会被阻塞直到网络恢复。2.关于TCP与UDP协议的区别,以下说法错误的是?A.TCP提供面向连接的、可靠的数据流传输服务,而UDP提供无连接的、不可靠的数据报传输服务。B.TCP通过序列号、确认应答、重传机制、流量控制和拥塞控制来保证可靠性,UDP没有这些机制。C.TCP首部开销最小为20字节,UDP首部开销固定为8字节。D.TCP不保证数据包的到达顺序,而UDP保证数据包按发送顺序到达接收方。3.在机器学习中,关于过拟合(Overfitting)与欠拟合(Underfitting),以下描述正确的是?A.模型在训练集上表现差,在测试集上表现也差,这通常是过拟合的表现。B.增加模型的复杂度(如增加神经网络的层数或决策树的深度)总是有助于缓解欠拟合,但不会导致过拟合。C.使用Dropout、L1/L2正则化、提前停止(EarlyStopping)或获取更多训练数据,是应对过拟合的常见策略。D.欠拟合意味着模型过于复杂,捕捉了训练数据中的噪声和细节。4.对于一个包含n个元素的无序数组,进行快速排序的平均时间复杂度和最坏时间复杂度分别是?A.O(nlogn),O(n^2)B.O(n^2),O(nlogn)C.O(nlogn),O(nlogn)D.O(n),O(n^2)5.在关系型数据库设计中,第三范式(3NF)要求消除传递依赖。已知关系模式R(A,B,C,D),其函数依赖集F={A→B,B→C,C→D}。以下关于该关系模式的描述,正确的是?A.该模式已满足BCNF。B.该模式的主键是A,且已满足第三范式(3NF)。C.该模式存在传递依赖(A→C是通过B传递的),因此不满足3NF。D.该模式不存在任何部分函数依赖,因此已满足第二范式(2NF)。6.在操作系统中,进程和线程是重要的概念。以下描述错误的是?A.进程是资源分配的基本单位,线程是CPU调度的基本单位。B.同一个进程内的多个线程共享进程的地址空间、代码段、数据段以及打开的文件等资源。C.线程的创建、切换和销毁开销通常远大于进程。D.多线程编程中需要特别注意对共享资源的同步与互斥访问,以避免竞态条件。7.关于HTTP状态码,以下匹配错误的是?A.200OK:请求成功。B.301MovedPermanently:请求的资源已被永久移动到新位置。C.404NotFound:服务器内部错误,无法完成请求。D.503ServiceUnavailable:服务器暂时处于超负载或正在进行停机维护。8.在面向对象编程中,以下关于“组合”(Composition)与“聚合”(Aggregation)关系的描述,正确的是?A.组合是一种弱的“拥有”关系,整体对象和部分对象有各自的生命周期。B.聚合是一种强的“拥有”关系,部分对象的生命周期依赖于整体对象。C.“汽车”和“发动机”之间通常是组合关系,“公司”和“员工”之间通常是聚合关系。D.在UML图中,组合关系用带空心菱形的实线箭头表示,聚合关系用带实心菱形的实线箭头表示。9.在Python中,关于列表(list)和元组(tuple),以下说法正确的是?A.列表和元组都是可变(mutable)的数据类型。B.元组可以用作字典的键,而列表不可以。C.定义只有一个元素的元组时,可以写成`t=(1)`。D.列表推导式(ListComprehension)不能用于生成元组。10.关于二叉搜索树(BinarySearchTree,BST),以下描述错误的是?A.对于BST中的任意节点,其左子树所有节点的值均小于该节点的值,其右子树所有节点的值均大于该节点的值。B.对BST进行中序遍历,可以得到一个有序的节点值序列。C.在最坏情况下(例如树退化成链表),BST的查找、插入、删除操作的时间复杂度为O(logn)。D.平衡二叉搜索树(如AVL树、红黑树)通过旋转等操作保持树的平衡,以保障操作效率。二、填空题1.在计算机网络中,IPv4地址由______位二进制数组成,通常以点分十进制表示。IPv6地址由______位二进制数组成。2.在数据库事务的ACID属性中,A代表______,C代表______,I代表______,D代表______。3.设有一个栈,初始为空。入栈序列为1,2,3,...,n。出栈序列为p1,p2,p3,...,pn。若p1=3,则p2的可能取值有______种。4.在Linux系统中,用于改变文件或目录权限的命令是______,用于查看当前所在目录路径的命令是______。5.在JavaScript中,`setTimeout(function(){console.log(1)},0);console.log(2);`的执行输出顺序是______。三、编程题1.字符串处理:给定一个字符串`s`,请你找出其中不含有重复字符的最长子串的长度。示例1:输入:`s="abcabcbb"`输出:`3`解释:因为无重复字符的最长子串是`"abc"`,所以其长度为3。请用你熟悉的编程语言(如Python、Java、C++等)实现函数`intlengthOfLongestSubstring(strings)`。2.数据结构与算法:实现一个支持`push`,`pop`,`top`操作,并能在常数时间内检索到最小元素的栈。要求:`push(x)`——将元素x推入栈中。`pop()`——删除栈顶的元素。`top()`——获取栈顶元素。`getMin()`——检索栈中的最小元素。所有操作的时间复杂度都必须是O(1)。请设计你的栈类,并实现上述方法。四、系统设计题请设计一个简单的短网址生成系统(TinyURL)。需求:1.给定一个长URL,系统生成一个全局唯一的短URL(例如:`https://short.url/AbC1d2`)。2.用户访问短URL时,系统应将其重定向到原始的长URL。3.系统需要处理高并发请求,假设每天有数亿次的生成和重定向请求。请简要描述:1.核心接口:定义系统需要暴露的主要API。2.算法设计:如何将长URL映射为短字符串?如何保证唯一性?3.数据存储:使用什么数据库?设计核心的数据表结构。4.高并发与性能:如何应对高并发的生成和重定向请求?考虑使用哪些技术或策略?(如缓存、负载均衡等)五、逻辑推理题1.A、B、C、D、E五人参加考试,成绩各不相同。关于他们的成绩,已知:(1)A的成绩不是最好,也不是最差。(2)B的成绩比C好,但比D差。(3)E的成绩比A好。(4)D的成绩不是最好。请问,五人的成绩从高到低排序是什么?2.有一个3升的桶和一个5升的桶,以及无限的水。如何精确地量出4升水?请描述步骤。答案与解析一、选择题1.B。CAP定理中,牺牲一致性(C)意味着系统允许数据出现短暂的不一致,但始终保持可服务状态(A),并能容忍网络分区(P)。B选项中社交媒体点赞功能,立即返回成功(保证A),允许数据短暂不一致(牺牲C),符合描述。A选项强调强一致性,可能牺牲可用性。C选项是单机系统,不涉及分区容错性。D选项采用2PC,在网络分区时可能阻塞(牺牲A)以保证C。2.D。TCP通过序列号和确认机制保证数据包按序到达,而UDP不保证顺序,也不保证可靠性。因此D选项错误。3.C。A描述的是欠拟合。B错误,增加模型复杂度可能缓解欠拟合,但也可能引入过拟合。C正确,这些都是常见的正则化或防止过拟合的技术。D错误,欠拟合是模型过于简单,无法捕捉数据中的基本规律。4.A。快速排序平均时间复杂度为O(nlogn),最坏情况(如已排序数组且选取固定端点为枢轴)会退化为O(n^2)。5.C。函数依赖集为{A→B,B→C,C→D}。主键为A。存在传递依赖A→B→C(A传递决定C)和A→B→C→D(A传递决定D),因此不满足3NF(3NF要求消除非主属性对主键的传递依赖)。该模式满足2NF(因为只有一个主属性A,不存在部分依赖)。不满足BCNF(BCNF要求决定因素都包含候选键)。6.C。线程共享进程资源,其创建、上下文切换和销毁的开销通常远小于进程。C选项说法错误。7.C。404状态码表示“未找到”,即服务器找不到请求的资源。500状态码才表示服务器内部错误。8.C。“汽车”和“发动机”是强关联,发动机是汽车不可分割的部分,生命周期通常一致,是组合关系。“公司”和“员工”是弱关联,员工可以独立于公司存在,是聚合关系。A、B描述正好反了。D选项,UML中组合是实心菱形,聚合是空心菱形。9.B。列表可变,元组不可变。A错误。元组不可变,可哈希,因此可以作为字典的键,列表不可哈希,不能作为键。B正确。C错误,单元素元组应写为`t=(1,)`,否则`(1)`会被认为是整数1。D错误,可以使用生成器表达式转换为元组,如`tuple(xforxinrange(10))`。10.C。在最坏情况下,BST退化成一条链,此时查找、插入、删除操作的时间复杂度为O(n),而不是O(logn)。C选项错误。二、填空题1.32,128。IPv4地址长度为32位,IPv6地址长度为128位。2.原子性(Atomicity),一致性(Consistency),隔离性(Isolation),持久性(Durability)。这是事务的四个核心特性。3.n-1。p1=3,说明1和2必定在3之后出栈,且它们在栈中的顺序是2在1之上。当3出栈后,栈顶元素是2。此时,p2可以是当前栈顶的2,也可以是尚未入栈的4,5,...,n中的任意一个。因此,p2的可能取值是:2,4,5,...,n。共有(n-3+1)+1=n-2+1=n-1种。更直观:除了3(已出栈)和1(在栈底,必须最后出栈之一),剩下的n-1个数(2,4,5,...,n)都有可能作为p2。4.chmod,pwd。`chmod`用于修改权限,`pwd`(PrintWorkingDirectory)用于打印当前目录路径。5.2,1。`setTimeout`的回调函数会被推入任务队列(宏任务队列),即使延迟时间为0,也要等待当前执行栈(即主线程同步代码)执行完毕。因此先输出同步的`2`,然后再从任务队列中取出回调函数执行,输出`1`。三、编程题1.字符串处理(无重复字符的最长子串)```pythondeflengthOfLongestSubstring(s:str)->int:#哈希集合,记录每个字符是否出现过char_set=set()n=len(s)#右指针,初始值为-1,相当于我们在字符串的左边界的左侧,还没有开始移动rk,ans=-1,0foriinrange(n):ifi!=0:#左指针向右移动一格,移除一个字符char_set.remove(s[i-1])whilerk+1<nands[rk+1]notinchar_set:#不断地移动右指针,直到遇到重复字符或到达字符串末尾char_set.add(s[rk+1])rk+=1#第i到rk个字符是一个极长的无重复字符子串ans=max(ans,rk-i+1)returnans```解析:使用滑动窗口(双指针)和哈希集合。维护一个窗口`[i,rk]`,保证窗口内的字符都是不重复的。遍历左指针`i`,每次移动左指针时,从集合中移除左指针指向的字符。然后向右移动右指针`rk`,直到遇到重复字符或字符串末尾。记录每次窗口的长度,取最大值。2.最小栈```pythonclassMinStack:def__init__(self):self.stack=[]#主栈self.min_stack=[]#辅助栈,栈顶始终保存当前主栈中的最小值defpush(self,x:int)->None:self.stack.append(x)#如果辅助栈为空,或者新元素小于等于辅助栈栈顶,则也压入辅助栈ifnotself.min_stackorx<=self.min_stack[-1]:self.min_stack.append(x)defpop(self)->None:ifself.stack:#如果主栈弹出的元素等于辅助栈栈顶元素,则辅助栈也弹出ifself.stack[-1]==self.min_stack[-1]:self.min_stack.pop()self.stack.pop()deftop(self)->int:ifself.stack:returnself.stack[-1]defgetMin(self)->int:ifself.min_stack:returnself.min_stack[-1]```解析:使用一个辅助栈`min_stack`来同步记录主栈每个状态下的最小值。当主栈压入新元素时,如果新元素小于等于`min_stack`栈顶,则也将新元素压入`min_stack`。当主栈弹出元素时,如果弹出的元素等于`min_stack`栈顶,则`min_stack`也弹出。这样,`min_stack`的栈顶始终是当前主栈所有元素中的最小值,`getMin()`操作时间复杂度为O(1)。四、系统设计题1.核心接口:`POST/api/v1/shorten`:请求体包含`{“long_url”:“原始长URL”}`,返回`{“short_url”:“生成的短URL”}`。`GET/:short_key`:根据短码`short_key`(如`AbC1d2`)重定向到对应的长URL。2.算法设计:映射算法:使用分布式唯一ID生成器(如Snowflake算法)为每个长URL生成一个全局唯一的、趋势递增的长整型ID。将此ID转换为62进制(a-zA-Z0-9,共62个字符),得到短字符串(短码)。例如,ID`123456789`转换为`“8M0kR”`。唯一性保证:依赖底层ID生成器的全局唯一性来保证短码唯一。如果发生极小概率的冲突(或使用哈希算法时的碰撞),可以重试生成新的ID/短码。3.数据存储:数据库:使用高性能、高可用的NoSQL数据库,如Redis(缓存热点数据)和Cassandra或DynamoDB(持久化存储)。关系型数据库在写入和扩展性上可能成为瓶颈。核心表结构(以KV存储为例):`short_url_mapping`:Key:`short_key`(String,主键)Value:`long_url`(String),`created_at`(Timestamp),`expire_at`(可选,Timestamp),`access_count`(Long)等。4.高并发与性能:读多写少:重定向请求(读)远多于生成请求(写)。缓存:使用Redis作为读写缓存。生成短URL时,写入数据库和Redis。重定向时,首先查询Redis,若命中则直接返回长URL并重定

温馨提示

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

最新文档

评论

0/150

提交评论