面试题整理(完整题目 + 答案)
面试题整理(完整题目 + 答案)
一、Vue / Java 基础
第1题【单选题】
题目:下述关于Vue的响应式原理的说法,哪个是正确的? A. Vue使用数据劫持来实现响应式,通过Object.defineProperty()方法来拦截对数据的访问。 B. Vue使用虚拟DOM来实现响应式,通过Diff算法来更新DOM。 C. Vue使用Proxy来实现响应式,通过拦截对象上的操作来触发更新。 D. Vue使用事件监听机制来实现响应式,通过订阅发布模式来传递数据变化。 答案:C(Vue3使用Proxy;若按Vue2出题则选A,Object.defineProperty数据劫持)。 说明:原卷第7题与此题重复。
第2题【多选题】
题目:下列排序算法的常规实现中,哪些空间复杂度是O(1)? A. 冒泡 B. 选择 C. 归并 D. 快排 E. 堆排序 答案:A、B、E(冒泡、选择、堆排序)。 说明:归并排序常规实现为O(n),快排递归栈为O(log n)。
第3题【多选题】
题目:文件exer1的访问权限为rw-r--r--,现要增加所有用户的执行权限和同组用户的写权限,下列命令正确的是? A. chmod a+x,g+w exer1 B. chmod 775 exer1 C. chmod 754 exer1 D. chmod 745 exer1 答案:A、B(两者都等价于775)。
第4题【多选题】
题目:下面有哪些技术是在HTTPS应用到的? A. 对称加密 B. 非对称加密 C. 密钥交换 D. 哈希算法 答案:A、B、C、D。
第5题【单选题】
题目:在Vue3的Composition API中,使用<script setup>时,如何正确暴露组件方法供父组件调用? A. 使用defineExpose导出方法 B. 使用export default导出方法 C. 在setup函数中返回方法对象 D. 使用expose选项声明方法 答案:A(defineExpose)。
第6题【多选题】
题目:下面说法正确的有( )? A. 字符串是一种对象 B. 字符串是一种基本数据类型 C. 字符串是一种数据类型 D. 字符串是一种引用数据类型 答案:A、C、D(B错误)。
第7题【多选题】
题目:以下哪些属于线性结构? A. 队列 B. 栈 C. 线性表 D. 树 E. 图 答案:A、B、C(队列、栈、线性表;树和图是非线性结构)。
第8题【单选题】
题目:关于 Vue 组件间的参数传递,下列哪项是不正确的? A. 若子组件给父组件传值,可使用 $emit 方法 B. 祖孙组件之间可以使用 provide 和 inject 方式跨层级相互传值 C. 若子组件使用 $emit('say') 派发事件,父组件可使用 @say 监听 D. 若父组件给子组件传值,子组件可通过 props 接受数据 答案:B(provide/inject是单向的,不能“相互传值”)。
第9题【单选题】
题目:以下程序运行的结果是什么?
public class Example extends Thread {
@Override
public void run() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.print("run");
}
public static void main(String[] args) {
Example example = new Example();
example.run();
System.out.print("main");
}}
A. run main B. main run C. main D. run E. 不能确定 答案:A(直接调用run()而不是start(),run在主线程执行,先打印run再打印main)。
第10题【单选题】
题目:以下java程序代码,执行后的结果是?
java.util.HashMap map = new java.util.HashMap(); map.put("name", null); map.put("name", "Jack"); System.out.println(map.size());
A. 0 B. null C. 1 D. 2 答案:C(第二次put覆盖同名key,size为1)。
二、数据结构 / 操作系统(不定项选择题)
第11题【不定项选择题】
题目:关于链表的描述,以下哪些是正确的? A. 链表是一种线性数据结构,每个节点包含数据部分和指向下一个节点的指针。 B. 链表的插入和删除操作只需修改指针,通常比数组更高效。 C. 链表的内存分配是连续的。 D. 链表的访问速度比数组快。 答案:A、B(C、D错误)。
第12题【不定项选择题】
题目:关于图(Graph)数据结构,以下哪些说法是正确的? A. 图由顶点(Vertex)和边(Edge)组成 B. 图的遍历方法包括深度优先搜索(DFS)和广度优先搜索(BFS) C. 无向图的边是双向的,而有向图的边有方向 D. 图的邻接矩阵表示法总是比邻接表表示法更节省空间 答案:A、B、C(D错误)。
第13题【不定项选择题】
题目:关于计算机的存储体系结构,以下哪些说法是正确的? A. CPU 寄存器是计算机中最快的存储设备。 B. 缓存(Cache)的命中率越高,系统的性能越好。 C. 外部存储器(如硬盘)的访问速度比主存储器(如内存)快。 D. 虚拟内存技术可以扩展计算机的可用内存空间。 答案:A、B、D(C错误)。
第14题【不定项选择题】
题目:关于操作系统的进程管理,以下哪些说法是正确的? A. 进程是操作系统进行资源分配和调度的基本单位。 B. 线程是比进程更细粒度的执行单位,一个进程可以包含多个线程。 C. 进程的上下文切换比线程的上下文切换开销大。 D. 每个进程都有自己的独立内存空间,而线程共享所属进程的内存空间。 答案:A、B、C、D。
第15题【不定项选择题】
题目:关于操作系统的内存管理,以下哪些说法是正确的? A. 虚拟内存技术也不允许程序使用比实际物理内存更大的地址空间。 B. 分页内存管理中,页面的大小是可以动态调整的。 C. 分段内存管理中,每个段可以有不同的大小。 D. 内存分配算法包括动态分区分配和固定分区分配。 答案:C、D(A、B错误)。
第16题【不定项选择题】
题目:关于操作系统的并发与同步,以下哪些说法是正确的? A. 临界区是指进程中访问共享资源的代码段。 B. 互斥量(Mutex)是一种用于实现线程间互斥的同步原语。 C. 生产者-消费者问题是一个典型的并发同步问题。 D. 信号量(Semaphore)只能用于线程间的同步,不能用于进程间的同步。 答案:A、B、C(D错误,信号量也可用于进程间同步)。
第17题【不定项选择题】
题目:关于操作系统的调度算法,以下哪些说法是正确的? A. 先来先服务(FCFS)调度算法是一种非抢占式调度算法。 B. 最短作业优先(SJF)调度算法总是选择运行时间最短的进程优先调度。 C. 时间片轮转(RR)调度算法是一种抢占式调度算法。 D. 多级反馈队列调度算法结合了多种调度算法的优点。 答案:A、B、C、D。
第18题【不定项选择题】
题目:关于OSI七层模型,以下哪些说法是正确的? A. 物理层负责在物理媒体上传输原始比特流。 B. 数据链路层负责将数据封装成帧,并提供错误检测和纠正功能。 C. 网络层负责将数据分段,并进行端到端的传输。 D. 应用层负责处理特定的应用程序细节。 答案:A、B、D(C错误,数据分段和端到端传输是传输层职责)。
第19题【不定项选择题】
题目:关于数据库的规范化,以下哪些说法是正确的? A. 数据库规范化的目标是减少数据冗余和提高数据完整性。 B. 第一范式(1NF)要求表中的每一列都是不可再分的基本数据项。 C. 第二范式(2NF)要求表中的非主属性完全依赖于主键。 D. 第三范式(3NF)要求表中的非主属性不依赖于其他非主属性。 答案:A、B、C、D。
三、大模型 / Agent
第20题【单选题】
题目:关于大模型Token向量化(Embedding)的核心作用,下列说法正确的是? A. 将Token转化为任意维度向量,自由适配模型 B. 仅用于辅助模型学习文本语法结构 C. 将文本Token转为固定维度向量,让计算机可识别语义 D. 执行于模型推理阶段,用于优化输出结果 答案:C。
第21题【单选题】
题目:以下不属于 LLM Agent 核心五大模块的是? A. 记忆模块 B. 规划推理模块 C. 模型微调模块 D. 工具调用模块 答案:C。
第22题【多选题】
题目:关于 RAG+Agent 融合架构,说法正确的有? A. 兼顾私有知识准确性与任务自主性 B. 可以解决纯 Agent 专业知识幻觉问题 C. 架构复杂度高于纯 RAG D. 不支持多步骤复杂任务 答案:A、B、C(D错误)。
第23题【单选题】
题目:某互联网公司开发AI运维Agent,需要实现自动查询服务器日志、分析故障原因、调用工单系统创建运维单据的全流程自动化能力。该场景必须依赖的核心技术是? A. 纯RAG检索 B. 工具调用(Function Call) C. 全量模型微调 D. 流式推理输出 答案:B。
第24题【单选题】
题目:作文批改AI工具,需要模型严格按评分标准打分、标注语病、给出标准化修改建议,同时避免主观随意输出。该场景下Top_P参数最优设置是? A. 设置为0.1,限制候选词范围,保证输出规整统一 B. 设置为0.95,最大化丰富输出内容 C. 设置为1.0,完全放开随机度 D. 无需配置Top_P,仅调整Temperature即可 答案:A。
第25题【单选题】
题目:文案创作需要内容丰富、风格多样,智能问答需要答案严谨、无多余输出。关于Temperature、Top_P两大核心参数的配置方案,正确的是? A. 创意文案:高Temperature+高Top_P;严谨问答:低Temperature+低Top_P B. 创意文案:低Temperature+低Top_P;严谨问答:高Temperature+高Top_P C. 两套场景均配置高Temperature、低Top_P,统一参数标准 D. 两套场景均配置低Temperature、高Top_P,保证输出稳定 答案:A。
第26题【多选题】
题目:车企搭建售后技术AI助手,要求回答精准、无编造内容、可溯源。以下哪些优化手段可有效提升该RAG应用效果? A. 对维修手册进行语义切片,保留完整故障逻辑段落 B. 开启检索重排序(Rerank),精准匹配核心故障知识点 C. 提示词中加入溯源要求,强制模型基于检索内容作答 D. 大幅调高Temperature参数,提升回答丰富度 答案:A、B、C(D会增加幻觉)。
第27题【多选题】
题目:企业级 Agent 落地需要解决的核心工程问题有? A. 工具调用容错 B. 任务重规划与纠错 C. 记忆管理与过期清理 D. 无限调用循环拦截 答案:A、B、C、D。
第28题【单选题】
题目:大模型 Agent 相比于传统对话大模型的本质差异是? A. 回答更流畅 B. 具备自主规划能力 C. 参数量更大 D. 支持更长上下文 答案:B。
第29题【单选题】
题目:智能客服回答出已作废的旧制度、偶尔编造不存在的审批流程。该问题的核心成因及最优解决方案为? A. 模型参数过小,需更换更大参数量模型 B. 知识库未更新、无时效性过滤,需迭代RAG知识库+设置文档时间权重 C. 提示词字数不足,需增加通用约束话术 D. 推理速度过慢,需开启流式输出 答案:B。
第30题【单选题】
题目:开发医疗问诊AI助手,为降低大模型幻觉、提升诊断推理准确性,最优的提示词优化策略是? A. 大幅增加提示词字数,堆砌全部背景信息 B. 采用CoT思维链,引导模型分步逻辑推理 C. 将Temperature参数设置为1.0,提升回答多样性 D. 仅使用单样本Few-Shot提示词 答案:B。
四、Python / 数据处理
第31题【单选题】
题目:程序如下,输入的是 1a 结果是?
try:
number = int(input("请输入数字:"))
print("number:", number)
print("=======hello======")except Exception as e:
print("打印异常详情信息: ", e)else:
print("没有异常")
finally:
print("finally")print("end")
A. number: 1 -> 打印异常详情信息 -> finally -> end B. 打印异常详情信息:invalid literal for int() with base 10: -> finally -> end C. ========hello=========== -> 打印异常详情信息 -> finally -> End D. 以上都正确 答案:B。
第32题【单选题】
题目:以下不能创建一个字典的语句是? A. dict1 = {} B. dict2 = { 3 : 5 } C. dict3 = {[1,2,3]: "uestc"} D. dict4 = {(1,2,3): "uestc"} 答案:C(列表不可哈希,不能作为字典key)。
第33题【单选题】
题目:df.min()这个函数用来? A. 找寻元素最小值 B. 找寻每行最小值 C. 找寻每列最小值 D. 找寻元素最小值的索引 答案:C(DataFrame默认按列求最小值)。
第34题【单选题】
题目:re.findall('[abc]+?', 'wwwabcabcabcefundscomcn')返回的第一个元素是? A. a B. abc C. abcabcabc D. wwwa 答案:A(+?是非贪婪匹配,逐个匹配单个字符)。
第35题【单选题】
题目:关于pandas.dataframe类型数据df,df.iloc[2, 3]表示? A. 第2行第3列元素值 B. 第3行第4列元素值 C. 第3行第2列元素值 D. 第4行第3列元素值 答案:B(iloc索引从0开始,第2行第3列即第3行第4列)。
第36题【单选题】
题目:关于Python的全局变量和局部变量,以下选项中描述错误的是? A. 局部变量指在函数内部使用的变量,当函数退出时,变量依然存在,下次函数调用可以继续使用 B. 使用global保留字声明简单数据类型变量后,该变量作为全局变量使用 C. 简单数据类型变量无论是否与全局变量重名,仅在函数内部创建和使用,函数退出后变量被释放 D. 全局变量指在函数之外定义的变量,一般没有缩进,在程序执行全过程有效 答案:A(函数退出后局部变量被销毁)。
第37题【单选题】
题目:关于python类说法错误的是? A. 类的实例方法必须创建对象后才可以调用 B. 类的实例方法必须创建对象前才可以调用 C. 类的类方法可以用对象和类名来调用 D. 类的静态属性可以用类名和对象来调用 答案:B(应是创建对象后)。
第38题【单选题】
题目:调用以下函数返回的值?
def myfun():
passA. 0 B. 报错 C. 空字符 D. None 答案:D。
第39题【单选题】
题目:对于pandas.series数据,pd.Series([1, 2, 3]).map(f)中,f的类型(type)可能是? A. function B. dict C. pandas.Series D. 以上均可 答案:D。
第40题【单选题】
题目:以下用法不正确的是? A. a = () B. b = (10,) C. (1,10)+(2,11) D. d=(1,10); d[2]=2 答案:D(元组不可修改)。
第41题【单选题】
题目:x = [1, 2] 和 y=[3, 4],那么x+y的值是? A. 3 B. 7 C. [1,2,3,4] D. [4,6] 答案:C(列表拼接)。
第42题【单选题】
题目:ls = [3.5, "Python", [10, "LIST"], 3.6],ls[2][-1][1]的运行结果是? A. I B. P C. y D. L 答案:A(ls[2]取"LIST",[-1][1]取"I")。
第43题【单选题】
题目:如果 Python 程序执行时,产生了 "unexpected indent" 的错误,其原因是? A. 代码中使用了错误的关键字 B. 代码中缺少":"符号 C. 代码里的语句嵌套层次太多 D. 代码中出现了缩进不匹配的问题 答案:D。
第44题【单选题】
题目:python3中以下会出现错误的是? A. 'Python考试'.decode('utf8') B. 'Python考试'.decode('gbk').encode('utf8') C. 'Python考试'.decode() D. 以上均会 答案:D(Python3的str没有decode方法,A、B、C都会报错)。
第45题【单选题】
题目:有数组n=np.arange(24).reshape(2,-1,2,2),n.shape的返回结果是什么? A. (2,3,2,2) B. (2,2,2,2) C. (2,4,2,2) D. (2,6,2,2) 答案:A(24 / (222) = 3)。
五、编程题
第46题
题目描述:给定一个未经排序的整数数组,请使用JAVA语言编码实现找到最长且连续的递增序列的长度。 示例1:输入 [1,3,5,4,7],输出 3(最长连续递增序列是 [1,3,5])。 示例2:输入 [2,2,2,2,2],输出 1(最长连续递增序列是 [2])。
参考答案:
public int findLengthOfLCIS(int[] nums) {
if (nums == null || nums.length == 0) {
return 0;
}
int maxLen = 1, cur = 1;
for (int i = 1; i < nums.length; i++) {
if (nums[i] > nums[i - 1]) {
cur++;
} else {
cur = 1;
}
maxLen = Math.max(maxLen, cur);
}
return maxLen;}
第47题
题目描述:将给定的字符串按规格压缩。压缩规格为:相同字符连续,则压缩为"字符+数字个数",如"aaaa"压缩为"a4"。 注:1)仅单个字符连续才压缩,如babababa则不能压缩;2)待压缩字符串中不包含数字和转义符。 要求实现方法:public String compressStr(String srcStr) 示例:输入 SrcStr="aaacccddef",输出 DstStr="a3c3d2ef";输入 "abc",输出 "abc"。
参考答案:
public String compressStr(String srcStr) {
if (srcStr == null || srcStr.isEmpty()) {
return srcStr;
}
StringBuilder sb = new StringBuilder();
int i = 0;
while (i < srcStr.length()) {
int j = i + 1;
while (j < srcStr.length() && srcStr.charAt(j) == srcStr.charAt(i)) {
j++;
}
sb.append(srcStr.charAt(i));
int count = j - i;
if (count > 1) {
sb.append(count);
}
i = j;
}
return sb.toString();}
整理完成
