学而思编程周赛入门初赛组 | 2026年春第11周

发布时间:2026/6/9 17:24:47

学而思编程周赛入门初赛组 | 2026年春第11周 ​欢迎大家订阅我的专栏算法题解C与Python实现本专栏旨在帮助大家从基础到进阶 逐步提升编程能力助力信息学竞赛备战专栏特色1.经典算法练习根据信息学竞赛大纲精心挑选经典算法题目提供清晰的代码实现与详细指导帮助您夯实算法基础。2.系统化学习路径按照算法类别和难度分级从基础到进阶循序渐进帮助您全面提升编程能力与算法思维。适合人群准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生希望系统学习C/Python编程的初学者想要提升算法与编程能力的编程爱好者附上汇总贴学而思编程周赛入门初赛组 | 汇总单选题第1题字形存储码是指供计算机输出汉字显示或打印用的二进制信息也称字模。通常采用的是数字化点阵字模。现有一个16*16的点阵已知汉字“一”所占的内存为32字节那么汉字“二”所占的内存为 字节。A. 32B. 64C. 128D. 256【答案】A【解析】不通的汉字占用内存是一样的第2题十进制数10.375对应的二进制数为 。A. 1010.001B. 1010.011C. 1010.101D. 1010.010【答案】B【解析】0.375 1/4 1/8 ( 0.011 ) 2 (0.011)_2(0.011)2​故选B第3题对以下图进行拓扑排序的结果是 。A. 0 2 3 4 5 1B. 0 1 3 4 2 5C. 0 2 4 3 1 5D. 0 1 2 3 4 5【答案】C【解析】图排序从入度为0的点开始选择一个点后删除其2条边选择C第4题甲、乙、丙、丁四位学员在考试中获得了前四名没有并列的情况。甲说“我是第2名乙是第3名。” 乙说“丙是第4名我是第2名。” 丙说“丁是第2名我是第3名。” 丁说“我是第1名乙是第3名。” 又知道甲、乙、丙、丁每人都只说对了一半。请问丙是第 名。A. 1B. 2C. 3D. 4【答案】D【解析】这道题目考察的是逻辑推理能力。我们需要根据甲、乙、丙、丁四个人的陈述结合每个人只说对了一半的条件推断出他们的实际排名。选项A丙是第1名。如果丙是第1名那么丙的两句话丁是第2名我是第3名”都是错误的这与题目条件矛盾因此选项A错误。选项B丙是第2名。如果丙是第2名那么丙的两句话丁是第2名我是第3名”中我是第3名”是错误的而“丁是第2名可能是正确的。但我们需要进一步验证其他陈述是否一致。甲说“我是第2名乙是第3名。”如果丙是第2名那么甲的“我是第2名”是错误的因此“乙是第3名”必须是正确的。乙说“丙是第4名我是第2名。”如果乙是第3名那么“我是第2名”是错误的因此“丙是第4名”必须是正确的但这与丙是第2名矛盾因此选项B错误。选项C丙是第3名。如果丙是第3名那么丙的两句话“丁是第2名我是第3名中我是第3名是正确的而丁是第2名是错误的。甲说我是第2名乙是第3名。”如果丙是第3名那么“乙是第3名”是错误的因此我是第2名”必须是正确的。乙说“丙是第4名我是第2名。如果甲是第2名那么我是第2名”是错误的因此丙是第4名”必须是正确的但这与丙是第3名矛盾因此选项C错误。选项D丙是第4名。如果丙是第4名那么丙的两句话“丁是第2名我是第3名中我是第3名是错误的因此丁是第2名必须是正确的。甲说“我是第2名乙是第3名。”如果丁是第2名那么我是第2名是错误的因此乙是第3名必须是正确的。乙说“丙是第4名我是第2名。”如果乙是第3名那么我是第2名是错误的因此“丙是第4名必须是正确的这与丙是第4名一致。丁说“我是第1名乙是第3名。”如果乙是第3名那么乙是第3名”是正确的因此我是第1名”必须是错误的。综合以上分析只有选项D符合所有条件因此丙是第4名。第5题考虑如下递归函数intsolve(intx){if(x2){return1;}returnsolve(x-1)*solve(x-2)x;}则调用 solve(6) 得到的返回结果为 。A. 302B. 37C. 303D. 36【答案】A【解析】将6代入函数计算即可可以使用递推算法加快速度。阅读程序题假设下列代码输入的两个字符串长度相同回答下列问题#includeiostream#includecstring#includecstdiousingnamespacestd;chars1[10];chars2[10];intlen;inlineintfind(charch){for(inti0;ilen;i){if(s1[i]ch)returni;}}voiddfs(intl1,intr1,intl2,intr2){intmfind(s2[r2]);// 已知后序遍历求前序遍历couts2[r2];if(ml1)dfs(l1,m-1,l2,r2-r1m-1);if(mr1)dfs(m1,r1,l2m-l1,r2-1);}intmain(){cins1;// 中序遍历cins2;// 后序遍历lenstrlen(s1);dfs(0,len-1,0,len-1);}第6题输出的字符串长度与字符串s1的长度一定相同 A. 正确B. 错误【答案】A【解析】遍历并不会改变字符串长度第7题在19行和20行的if判断中的小于号或者大于号改为小于等于或大于等于号不会改变程序的运行结果 。A. 正确B. 错误【答案】B【解析】增加等于号会改变运行结果包含了根第8题该程序的时间复杂度为 A.B.C.D.【答案】B【解析】树形遍历每个点都会被访问一次所以时间复杂度为第17行find也会执行n次所以总体时间复杂度为第9题输入BADC BDCA输出为 。A. ABDCB. ABCDC. BACDD. ACBD【答案】B【解析】画出树前序遍历结果为ABCD第10题输入EIFBACGHD IBFEHGDCA输出为 。A. AEFIBDCGHB. AEFIBCDGHC. AEFBICDGHD. AEFIBCDHG【答案】B【解析】画出树前序遍历结果为AEFIBCDGH完善程序题给出若干个整数询问其中是否有一对数的和等于给定的m的数。若存在和为m的数对输出两个整数小的在前大的在后中间用单个空格隔开。若有多个数对满足条件选择数对中较小的数更小的。若找不到符合要求的数对输出一行No。#includecstdio#includealgorithmusingnamespacestd;inta[100010];intn,m;intmain(){cinn;for(inti1;in;i)cina[i];cinm;__1__;intl,rn,mid;for(inti1;in;i){intt__2__;li1;while(lr){// 二分答案模板mid(lr)/2;if(a[mid]t){couta[i] tendl;__3__;}elseif(a[mid]t)__4__;elseif(__5__)rmid-1;}}coutNo;return0;}第11题1处应该填 。A.sort(a,an)B.sort(a1, a1n)C.memset(a,0,sizeof(n));D.memset(a,0,sizeof(a));【答案】B【解析】最后输出较小中的更小应该先按照从小到大进行排序第12题2处应该填 。A.a[i]B.m-a[i]C.0D.m【答案】B【解析】按照第20行的输出这里应该输出两个数两个数之和为m。如果前一个为a[i]那么后一个就应该为m-a[i]第13题3处应该填 。A.breakB.return 0C.continueD.cout endl【答案】B【解析】因为只需要输出最小的结果那么这里直接结束程序第14题4处应该填 。A.rmidB.lmidC.lmid1D.lmid-1【答案】C【解析】二分答案这里l mid1选C第15题5处应该填 。A.a[mid]a[i]B.a[mid]a[i]C.a[mid]tD.a[mid]t【答案】C【解析】前面是t和t那么这里是t选C

相关新闻