版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026年编程入门基础与算法训练题目一、选择题(共10题,每题2分,合计20分)注:以下题目针对国内互联网行业及高校编程竞赛常见考点设计。1.(2分)下列哪个语句在Python中是合法的变量名?A.2numB.-countC.intD._score2.(2分)C语言中,`printf("a=%d,b=%f",5,3.14);`输出的结果是?A.a=5,b=3.14B.a=5,b=3140C.a=5,b=0.0314D.编译错误3.(2分)下列哪个数据结构最适合实现先进先出(FIFO)操作?A.栈(Stack)B.队列(Queue)C.链表(LinkedList)D.堆(Heap)4.(2分)Java中,`Strings="abc";s=s+"def";`执行后,`s`的值是?A."abcdef"B."abc"C."def"D.null5.(2分)在HTML中,哪个标签用于定义网页标题?A.`<p>`B.`<div>`C.`<head>`D.`<title>`6.(2分)SQL中,`SELECTFROMusersWHEREage>30;`查询会返回?A.所有年龄大于30的用户B.年龄等于30的用户C.年龄小于30的用户D.无数据7.(2分)下列哪个算法的时间复杂度为O(n²)?A.快速排序(QuickSort)B.二分查找(BinarySearch)C.冒泡排序(BubbleSort)D.哈希表查找(HashLookup)8.(2分)JavaScript中,`leta=5;console.log(a+++++a);`输出结果是?A.11B.12C.10D.139.(2分)Git中,`gitcommit-m"Fixbug"`命令的作用是?A.撤销最近一次提交B.创建新分支C.提交代码变更D.查看提交历史10.(2分)下列哪个是递归算法的例子?A.循环计数B.快速排序C.队列操作D.堆排序二、填空题(共10题,每题2分,合计20分)注:题目结合国内软件开发实际应用场景。1.(2分)在Java中,用于声明全局常量的关键字是________。答案:final2.(2分)CSS中,`margin:10px20px;`表示左和右的边距为10px,上和下的边距为________。答案:20px3.(2分)Python中,用于删除字典中指定键值对的函数是________。答案:pop()4.(2分)在C++中,`#include<iostream>`头文件用于包含________库。答案:标准输入输出流5.(2分)HTML中,`<ahref="">`标签的`href`属性表示________。答案:超链接地址6.(2分)SQL中,`UPDATEtableSETcolumn=valueWHEREcondition;`语句用于________数据。答案:修改7.(2分)JavaScript中,`==`和`===`的区别在于________。答案:严格比较(是否同时比较值和类型)8.(2分)Git中,`gitbranch-dfeature`命令用于删除名为________的分支。答案:feature9.(2分)算法中,时间复杂度为O(1)表示________。答案:常数时间复杂度10.(2分)在Python中,`[]`用于创建________。答案:列表(List)三、简答题(共5题,每题4分,合计20分)注:题目结合国内互联网企业面试常见问题。1.(4分)简述栈和队列的区别,并举例说明各自的典型应用场景。答案:-栈(Stack):后进先出(LIFO),操作受限(只有栈顶可访问)。-应用:函数调用栈、括号匹配、深度优先搜索(DFS)。-队列(Queue):先进先出(FIFO),操作受限(只有队首和队尾可访问)。-应用:任务调度、广度优先搜索(BFS)、消息队列。2.(4分)解释HTTP中的GET和POST请求的区别,并说明分别在什么场景下使用。答案:-GET:无状态,参数在URL中传递,适用于数据查询(如搜索、分页)。-POST:有状态,参数在请求体中传递,适用于数据提交(如登录、表单提交)。3.(4分)什么是递归算法?请举例说明其优缺点。答案:-递归:函数调用自身解决问题。-例子:阶乘计算`factorial(n)=nfactorial(n-1)`。-优点:代码简洁,适合树形结构问题(如DFS)。-缺点:栈溢出风险,重复计算可能效率低。4.(4分)什么是SQL注入?如何防范?答案:-SQL注入:通过输入恶意SQL代码篡改数据库操作。-防范:使用参数化查询、输入验证、最小权限原则。5.(4分)解释前端开发中“同源策略”的含义及其作用。答案:-同源策略:限制从一个源加载的文档或脚本与另一个源的资源进行交互。-作用:防止XSS攻击,保护用户数据安全。四、编程题(共3题,每题10分,合计30分)注:题目结合国内软件开发实践。1.(10分)编写Python代码,实现一个简单的LRU(最近最少使用)缓存,支持以下操作:-`put(key,value)`:添加或更新键值对。-`get(key)`:返回键对应的值,若无则返回-1。要求:使用哈希表和双向链表实现,时间复杂度为O(1)。答案:pythonclassNode:def__init__(self,key,value):self.key=keyself.value=valueself.prev=Noneself.next=NoneclassLRUCache:def__init__(self,capacity:int):self.capacity=capacityself.cache={}self.head,self.tail=Node(0,0),Node(0,0)self.head.next=self.tailself.tail.prev=self.headdef_add_node(self,node):node.prev=self.headnode.next=self.head.nextself.head.next.prev=nodeself.head.next=nodedef_remove_node(self,node):prev_node=node.prevnext_node=node.nextprev_node.next=next_nodenext_node.prev=prev_nodedef_move_to_head(self,node):self._remove_node(node)self._add_node(node)def_pop_tail(self):res=self.tail.prevself._remove_node(res)returnresdefget(self,key:int)->int:node=self.cache.get(key,None)ifnotnode:return-1self._move_to_head(node)returnnode.valuedefput(self,key:int,value:int)->None:node=self.cache.get(key)ifnotnode:newNode=Node(key,value)self.cache[key]=newNodeself._add_node(newNode)iflen(self.cache)>self.capacity:tail=self._pop_tail()delself.cache[tail.key]else:node.value=valueself._move_to_head(node)2.(10分)编写C++代码,实现快速排序(QuickSort)算法,要求使用递归方式,并给出测试用例。答案:cppinclude<iostream>include<vector>voidquickSort(std::vector<int>&arr,intleft,intright){if(left>=right)return;intpivot=arr[left+(right-left)/2];inti=left,j=right;while(i<=j){while(arr[i]<pivot)i++;while(arr[j]>pivot)j--;if(i<=j){std::swap(arr[i],arr[j]);i++,j--;}}quickSort(arr,left,j);quickSort(arr,i,right);}intmain(){std::vector<int>arr={3,6,8,10,1,2,1};quickSort(arr,0,arr.size()-1);for(intnum:arr)std::cout<<num<<"";return0;}3.(10分)编写JavaScript代码,实现一个函数`isValid`,判断一个括号字符串是否有效。例如:-`isValid("()")`返回`true`-`isValid("()[]{}")`返回`true`-`isValid("(]")`返回`false`要求:使用栈结构实现。答案:javascriptfunctionisValid(s){conststack=[];constmap={')':'(',']':'[','}':'{'};for(letcharofs){if(map[char]){consttop=stack.pop();if(map[char]!==top)returnfalse;}else{stack.push(char);}}returnstack.length===0;}console.log(isValid("()"));//trueconsole.log(isValid("()[]{}"));//trueconsole.log(isValid("(]"));//false答案与解析一、选择题答案与解析1.D-解析:变量名不能以数字开头,`-count`以负号开头也非法,`int`是关键字。2.A-解析:`printf`按格式输出,`%d`对应整数,`%f`对应浮点数。3.B-解析:队列是FIFO结构,栈是LIFO,链表和堆不保证顺序性。4.A-解析:字符串拼接操作,"abc"+"def"="abcdef"。5.D-解析:`<title>`标签定义网页标题,`<head>`包含标题等元数据。6.A-解析:`WHERE`子句过滤年龄大于30的记录。7.C-解析:冒泡排序和选择排序为O(n²),快速排序平均O(nlogn)。8.A-解析:`a++`先赋值后自增,`++a`先自增后赋值,`a+++++a=5+7=12`。9.C-解析:`gitcommit`提交当前分支的变更。10.B-解析:快速排序通过递归分区排序。二、填空题答案与解析1.final-解析:Java中用`final`修饰变量表示不可修改。2.20px-解析:CSS边距语法,第一个值是左右,第二个是上下。3.pop()-解析:Python字典`pop(key)`删除键值对并返回值。4.标准输入输出流-解析:`iostream`头文件包含C++标准I/O库。5.超链接地址-解析:`href`指定链接目标URL。6.修改-解析:`UPDATE`语句用于更新表中数据。7.严格比较(是否同时比较值和类型)-解析:`==`比较值,`===`比较值和类型。8.feature-解析:`gitbranch-d`删除指定分支。9.常数时间复杂度-解析:O(1)表示操作时间与输入规模无关。10.列表(List)-解析:`[]`在Python中创建列表。三、简答题答案与解析1.栈和队列的区别及应用-答案:-栈(LIFO):操作受限(栈顶),用于函数调用、括号匹配。-队列(FIFO):操作受限(队首尾),用于任务调度、BFS。2.GET和POST请求的区别及场景-答案:-GET:无状态,URL带参数,用于查询。-POST:有状态,请求体带参数,用于提交。3.递归算法的优缺点-答案:-优点:代码简洁,适合树形问题。-缺点:栈溢出风险,重复计算可能低效。4.SQL注入及防范-答案:-定义:恶意SQL代码篡改数据库。-防范:参数化查询、输入验证。5.同源策
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年牙刷头行业分析报告及未来发展趋势报告
- 2026年多库脂钠行业分析报告及未来发展趋势报告
- 休克患者的急救护理
- 中暑患者的营养支持与饮食调理
- PICC置管后的敷料管理规范
- 2026年铝镁合金烤漆带行业分析报告及未来发展趋势报告
- 2026年在线购物行业分析报告及未来发展趋势报告
- 2026年涂覆隔膜行业分析报告及未来发展趋势报告
- VTE患者护理评估流程
- 产科应急预案与处理流程
- 2026年全国助理社会工作师《社会工作实务》考试题库及1套完整答案
- 2025年食品工业报告4
- 2026年中考语文专项冲刺训练:诗歌鉴赏(江苏)含答案
- 人工智能训练师-技师技能鉴定考场原题复刻200题(答案版)
- 古代经典《三官经》全文及注释讲解
- 火灾自动报警系统材料、设备、配件进场检查和安装过程质量检查记录
- 认知负荷理论对教学课件
- DBJT15-259-2023 深厚软土地层建筑基坑工程监测技术标准
- 2025年河北高考化学试卷真题及答案详解(精校打印版)
- T/CGAS 026.1-2023瓶装液化石油气管理规范第1部分:安全管理
- 造价咨询劳务合同协议
评论
0/150
提交评论