2025中鐵城建集團有限公司招聘全棧開發(fā)工程師筆試歷年參考題庫及答案_第1頁
2025中鐵城建集團有限公司招聘全棧開發(fā)工程師筆試歷年參考題庫及答案_第2頁
2025中鐵城建集團有限公司招聘全棧開發(fā)工程師筆試歷年參考題庫及答案_第3頁
2025中鐵城建集團有限公司招聘全棧開發(fā)工程師筆試歷年參考題庫及答案_第4頁
2025中鐵城建集團有限公司招聘全棧開發(fā)工程師筆試歷年參考題庫及答案_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

2025中鐵城建集團有限公司招聘全棧開發(fā)工程師筆試歷年參考題庫及答案一、單項選擇題(每題1分,共30分)1.在Node.js中,下列哪個模塊最常用于解析multipart/form-data類型的上傳文件?A.querystring?B.url?C.multer?D.formidable答案:C2.若React組件在props未變化時卻頻繁重新渲染,優(yōu)先采用哪種優(yōu)化手段?A.shouldComponentUpdate?B.useLayoutEffect?C.React.lazy?D.React.memo答案:D3.在MySQL8.0中,將非分區(qū)表在線改造成分區(qū)表且保持業(yè)務連續(xù)可用,官方推薦工具是:A.pt-online-schema-change?B.gh-ost?C.ALTERTABLE…ALGORITHM=INPLACE?D.mysqldump+source答案:B4.關于CSS布局,下列描述錯誤的是:A.grid-auto-flow:dense可自動填充網格空洞B.flex:110的簡寫等同于flex-grow:1;flex-shrink:1;flex-basis:0C.position:sticky元素在視口內時相對于最近滾動祖先定位D.writing-mode僅影響行內元素的書寫方向,不影響塊級元素答案:D5.在Docker構建鏡像時,為顯著降低最終體積,最佳實踐是:A.使用alpine作為基礎鏡像并在單RUN指令中合并命令B.采用ubuntu:latest并執(zhí)行aptcleanC.采用scratch并直接拷貝ELF可執(zhí)行文件D.采用多階段構建僅保留最終可執(zhí)行文件及運行時依賴答案:D6.下列關于HTTP/2ServerPush的說法正確的是:A.客戶端可以拒絕推送流B.推送資源必須和父流同源C.推送流由客戶端發(fā)送PUSH_PROMISE幀觸發(fā)D.瀏覽器緩存策略對推送資源不生效答案:A7.在Kubernetes中,用于實現灰度發(fā)布的原生對象最恰當的是:A.Deployment+Recreate策略?B.StatefulSet?C.DaemonSet?D.Deployment+Canary分析工具Flagger答案:D8.在TypeScript中,關鍵字infer最常見的應用場景是:A.條件類型中提取函數返回值?B.裝飾器元數據反射?C.枚舉反向映射?D.命名空間合并答案:A9.關于Webpack5的ModuleFederation,以下說法正確的是:A.遠程模塊必須提前打包進主應用B.共享依賴版本沖突時以host優(yōu)先C.可實現微前端運行時動態(tài)加載D.僅支持JavaScript語言答案:C10.在Linux系統(tǒng)排查句柄泄漏時,最快捷定位進程打開文件數的是:A.lsof-p$PID|wc-l?B.ls/proc/$PID/fd|wc-l?C.strace-etrace=open?D.top-H-p$PID答案:B11.在Vue3的CompositionAPI中,要使響應式數據在模板中自動解包,應使用:A.ref?B.reactive?C.shallowRef?D.toRef答案:A12.下列算法中,最適合解決“最短路徑”且允許負權邊的是:A.Dijkstra?B.Bellman-Ford?C.Floyd-Warshall?D.A答案:B13.在Git工作流中,將當前分支的最后一次提交移到另一分支且不產生mergecommit,應使用:A.gitcherry-pick?B.gitrebase?C.gitmerge--squash?D.gitformat-patch答案:B14.關于Redis過期策略,下列說法正確的是:A.定時任務每秒隨機抽樣20個key刪除過期鍵B.惰性刪除在訪問key時才檢查過期C.內存達到maxmemory時優(yōu)先清理未過期keyD.采用LRU時Redis維護全局雙向鏈表答案:B15.在Nginx中,實現WebSocket反向代理需額外添加的頭是:A.Upgrade和Connection?B.X-Real-IP?C.Host?D.X-Forwarded-Proto答案:A16.在ECMAScript2023中,Atotype新增的查找最后匹配元素的方法是:A.findLastIndex?B.lastIndexOf?C.includes?D.at答案:A17.關于OAuth2.0授權碼模式,下列順序正確的是:A.用戶授權→客戶端拿授權碼→客戶端換token→資源服務器驗tokenB.客戶端換token→用戶授權→客戶端拿授權碼→資源服務器驗tokenC.用戶授權→資源服務器驗token→客戶端拿授權碼→客戶端換tokenD.客戶端拿授權碼→用戶授權→客戶端換token→資源服務器驗token答案:A18.在SQL優(yōu)化中,最不可能引起索引失效的是:A.對索引列使用函數YEAR(create_time)B.使用OR連接不同列C.使用覆蓋索引查詢D.隱式類型轉換答案:C19.在Jest單元測試中,模擬定時器最推薦的方式是:A.使用lolex手動調時間?B.jest.useFakeTimers()+jest.runAllTimers()?C.真實setTimeout并done回調?D.使用sinon答案:B20.在CI/CD中,為檢測依賴許可證風險,常采用的工具是:A.OWASPDependency-Check?B.license-checker?C.SonarQube?D.Trivy答案:B21.在MongoDB聚合框架中,用于展開數組字段的管道操作符是:A.$group?B.$unwind?C.$project?D.$lookup答案:B22.關于瀏覽器事件循環(huán),下列宏任務優(yōu)先級最高的是:A.setTimeout0ms?B.setImmediate?C.MessageChannel?D.用戶交互回調答案:D23.在Rust中,所有權機制里實現“可讀寫但不可同時讀寫”的核心特征是:A.BorrowChecker?B.GC?C.RC?D.ARC答案:A24.在微服務架構中,實現跨服務分布式事務的SAGA模式核心思想是:A.2PC阻塞提交?B.補償事務按序回滾?C.TCC嘗試確認取消?D.最終一致性+本地消息表答案:B25.在Linux服務器上,查看進程實時CPU緩存命中率應使用:A.perfstat-ecache-misses,cache-references-p$PID?B.top?C.vmstat?D.sar答案:A26.在Web安全中,下列哪項不能有效防范CSRF?A.SameSiteCookie?B.驗證碼?C.JWT放入LocalStorage?D.雙重Cookie驗證答案:C27.在GraphQL中,解決N+1查詢問題的常用中間件是:A.DataLoader?B.ApolloGateway?C.graphql-upload?D.graphql-shield答案:A28.在Next.js中,使頁面在構建時預渲染并導出靜態(tài)HTML,應使用的函數是:A.getServerSideProps?B.getStaticProps?C.getInitialProps?D.useEffect答案:B29.在CI中,為提高npm安裝速度,可開啟的本地緩存策略是:A.npmconfigsetcache-min9999999?B.使用npmci并掛載~/.npm?C.使用pnpm全局store?D.使用yarn--frozen-lockfile答案:C30.在敏捷開發(fā)中,故事點估算主要衡量:A.工時?B.復雜度+工作量+風險?C.代碼行數?D.功能重要性答案:B二、不定項選擇題(每題2分,共20分,多選少選均不得分)31.以下哪些方法可以有效降低前端首屏加載時間?A.采用HTTP/2多路復用?B.使用resourcehints如preload?C.服務端渲染SSR?D.圖片懶加載?E.將第三方庫全部打包進vendor不做拆分答案:ABCD32.關于Kubernetes的ConfigMap與Secret,正確的有:A.Secret默認base64編碼?B.ConfigMap大小上限1MiB?C.均支持熱更新到環(huán)境變量?D.均支持以Volume掛載文件?E.Secret可加密存儲在etcd答案:ABDE33.下列屬于CSS層疊上下文觸發(fā)條件的是:A.z-index不為auto的flex子項?B.opacity小于1?C.filter不為none?D.will-change:transform?E.overflow:hidden答案:ABCD34.在ReactHooks中,可導致閉包陷阱的有:A.useState的setState異步更新?B.useEffect空依賴數組?C.useRef保存最新值?D.useCallback未正確填寫依賴?E.useMemo依賴頻繁變化答案:ABD35.以下關于Linux文件描述符的說法正確的有:A.0代表標準輸入?B.ulimit-n可查看單進程最大句柄數?C.關閉描述符用close系統(tǒng)調用?D.epoll支持邊緣觸發(fā)和水平觸發(fā)?E.套接字描述符可設置O_NONBLOCK答案:ABCDE36.在PostgreSQL中,可實現讀寫分離的組件或方案有:A.pgpool-II?B.Patroni?C.logicalreplication?D.built-instreamingreplication?E.pgBouncer的pool_mode=statement答案:ACD37.關于WebAssembly描述正確的有:A.二進制格式可壓縮?B.運行在沙箱環(huán)境?C.可直接操作DOM?D.支持線性內存?E.與JS可通過import/export交互答案:ABDE38.在CI流水線中,屬于靜態(tài)代碼質量檢查工具的有:A.ESLint?B.Checkstyle?C.SpotBugs?D.SonarQube?E.JProfiler答案:ABCD39.以下哪些做法有助于降低微服務鏈路延遲?A.使用gRPC替代HTTP/1.1?B.批量聚合接口?C.使用服務網格sidecar緩存?D.減少日志埋點?E.使用JSON序列化替代Protobuf答案:ABC40.在瀏覽器存儲方案中,容量可達百兆級別的有:A.localStorage?B.sessionStorage?C.IndexedDB?D.CacheStorage?E.Cookie答案:CD三、填空題(每空2分,共20分)41.在Java并發(fā)包中,提供非阻塞CAS無鎖隊列的實現類是__________。答案:ConcurrentLinkedQueue42.在React中,若想讓函數組件捕獲渲染錯誤并顯示回退UI,需使用生命周期__________。答案:componentDidCatch(類組件)或ErrorBoundary(高階組件)43.Linux系統(tǒng)調用__________可用來修改已經打開文件的標志,如追加、非阻塞等。答案:fcntl44.在CSS中,函數__________可計算顏色亮度,實現WCAG對比度自動適配。答案:color-contrast()(CSSColorModuleLevel5)45.在MySQL中,查看InnoDB行鎖等待超時的全局變量是__________秒。答案:innodb_lock_wait_timeout46.在Kubernetes中,Pod的__________字段可設置節(jié)點親和性規(guī)則。答案:nodeAffinity47.在Git中,命令gitreflog默認保留__________天。答案:9048.在Webpack中,將運行時代碼單獨拆包需配置optimization.runtimeChunk值為__________。答案:single49.在Redis中,實現分布式鎖同時保證原子性的命令組合是__________。答案:SETkeyvalueNXPXmilliseconds50.在Next-GenerationJavaScript中,實現頂層await的規(guī)范版本是ES__________。答案:2022四、判斷題(每題1分,共10分,正確打“√”,錯誤打“×”)51.HTTP/3基于QUIC協(xié)議,默認端口443且內置TLS1.3。?√52.Vue3的Proxy可以攔截對數組索引的直接賦值。?√53.在PostgreSQL里,事務隔離級別REPEATABLEREAD不會出現幻讀。?×54.使用Docker的--network=host模式時,容器與宿主機共享網絡命名空間。?√55.在Java中,volatile關鍵字可保證復合操作原子性。?×56.在CSS中,gap屬性只能用于Grid布局,不能用于Flex布局。?×57.在Linux中,/proc文件系統(tǒng)完全駐留在內存,不占用磁盤空間。?√58.在React中,調用setState后立刻讀取this.state一定能拿到最新值。?×59.在MongoDB中,分片鍵一旦指定便無法修改。?√60.在Rust中,String與&str都存儲在堆上。?×五、簡答題(每題6分,共18分)61.描述從瀏覽器輸入URL到頁面首次繪制(FP)之間,與前端性能優(yōu)化相關的關鍵路徑及可優(yōu)化手段。答案:1.DNS解析:使用DNS預取、HTTPDNS、Keep-Alive減少重復解析。2.TCP/QUIC握手:開啟0-RTT、TCPFastOpen。3.TLS協(xié)商:采用TLS1.3壓縮握手往返。4.請求排隊:利用資源提示preload/prefetch,合并關鍵請求。5.服務器響應:啟用CDN、邊緣緩存、Brotli壓縮、SSR直出首屏HTML。6.解析HTML:流式解析,預掃描異步腳本,減少阻塞。7.構建DOM/CSSOM:刪除無用CSS,關鍵路徑內聯(lián),利用媒體查詢拆分。8.渲染樹、布局、繪制:避免強制同步布局,使用will-change提升層,GPU加速。9.FP指標:通過PerformanceObserver采集,以Lighthouse閾值1.8s為目標。62.說明Kubernetes中Deployment滾動更新過程,并給出零中斷實踐要點。答案:過程:1.用戶更新Deployment的PodTemplate觸發(fā)新版本ReplicaSet。2.新ReplicaSet按strategy.rollingUpdate.maxSurge擴容,舊ReplicaSet按maxUnavailable縮容。3.readinessProbe通過才視為可用,流量通過Service自動切換。4.全部舊Pod終止完成即滾動結束。零中斷要點:?設置合理probe初始延遲與周期,保證Pod真正就緒。?使用preStop鉤子sleep5–10s,等待剩余請求處理。?配置PodDisruptionBudget限制同時不可用副本數。?啟用gracefulshutdown,應用監(jiān)聽SIGTERM后關閉監(jiān)聽并排空連接。?對于長連接服務,采用滾動+藍綠混合,或引入Istio做連接遷移。63.解釋數據庫“索引下推”與“覆蓋索引”概念,并給出聯(lián)合索引設計示例。答案:索引下推(ICP):MySQL5.6+特性,把WHERE條件下推到存儲引擎層,用索引列先過濾,減少回表。覆蓋索引:查詢列全部包含在索引中,無需回表,Extra顯示Usingindex。示例:表project(idPK,org_id,status,create_time,title)高頻查詢:SELECTid,titleFROMprojectWHEREorg_id=?ANDstatus=?ANDcreate_timeBETWEEN?AND?;聯(lián)合索引:(org_id,status,create_time,title)為覆蓋索引,同時滿足最左前綴;ICP在范圍查詢create_time時進一步過濾status。六、編程題(共22分)64.算法題(10分)題目:給定一個日志文件,每行包含“時間戳用戶ID項目ID”,統(tǒng)計最近10分鐘內每個項目活躍用戶數(滑動窗口)。要求:時間復雜度O(n),空間復雜度O(U+P)。輸入:日志按時間升序,時間戳為Unix秒。輸出:每行輸出“項目ID活躍用戶數”。參考實現(Python3):```pythonimportsysfromcollectionsimportdefaultdict,dequedefsolve():logs=[]forlineinsys.stdin:ts,uid,pid=line.strip().split()logs.append((int(ts),uid,pid))left=0window=deque()proj_users=defaultdict(set)pid->set(uid)res=defaultdict(int)forts,uid,pidinlogs:window.append((ts,uid,pid))proj_users[pid].add(uid)whilewindowandwindow[0][0]<=ts-600:old_ts,old_uid,old_pid=window.popleft()proj_users[old_pid].discard(old_uid)ifnotproj_users[old_pid]:delproj_users[old_pid]res[ts]={p:len(u)forp,uinproj_users.items()}按題目要求輸出最后一窗口forpidinsorted(proj_users.keys()):print(pid,len(proj_users[pid]))if__name__=="__main__":solve()```65.全棧實戰(zhàn)題(12分)需求:用Node.js+Express提供RESTful接口,實現“項目-任務”一對多CRUD,要求:1.使用TypeScript,類型完整。2.數據庫PostgreSQL,采用PrismaORM。3.支持分頁查詢任務,可按創(chuàng)建時間倒序、狀態(tài)過濾。4.寫入接口需事務,保證項目與任務數據一致性。5.單元測試覆蓋80%以上,使用Jest+Supertest。6.提供Dockerfile與docker-compose.yml,一鍵啟動。關鍵代碼片段:prisma/schema.prisma```prismamodelProject{idInt@id@default(autoincrement())nameStringcreatedAtDateTime@default(now())tasksTask[]}modelTask{idInt@id@default(autoincrement())titleStringstatusString@default("TODO")projectIdIntprojectProject@relation(fields:[projectId],references:[id],onDelete:Cascade)createdAtDateTime@default(now())}```src/services/taskService.ts```typescriptexportasyncfunctioncreateTaskWithProject(data:{projectName:string,tasks:{title:string}[]}){returnawaitprisma.$transaction(asynctx=>{constproject=awaitject.create({data:{name:jectName}});consttaskData=data.tasks.map(t=>({...t,projectId:project.id}));awaittx.task.createMany({data:taskData});returnproject;});}```測試示例:```typescriptit('shouldcreateprojectandtasksintransactio

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論