2026年全国青少年信息素养大赛算法应用主题赛C赛项-复赛模拟卷6文末附答案5道单选5道多选4道编程一、单选题每题2分共5题在C中下列哪个循环结构在条件判断之前至少执行一次循环体A.for循环 B.while循环 C.do-while循环 D.if语句已知int a5, b3执行a b后a 和 b 的值分别是 。A. a8, b4 B. a8, b3 C. a9, b4 D. a9, b3下列哪个是判断一个正整数n是否为质数的最高效代码片段仅针对算法复杂度A.for(inti2;in;i)if(n%i0)returnfalse;B.for(inti2;i*in;i)if(n%i0)returnfalse;C.for(inti2;in;i)if(n%i0)returnfalse;D.for(inti2;in/2;i)if(n%i0)returnfalse;使用二分查找算法在有序数组{2,5,8,12,15,20,25}中查找元素15需要比较的次数是 。A. 1 B. 2 C. 3 D. 4十进制数47转换成二进制数是 。A. 101111 B. 111011 C. 110111 D. 111101二、多选题每题4分共5题错选漏选均不得分以下关于递归算法的说法正确的有 。A. 递归算法必须有一个明确的终止条件递归基B. 递归调用会占用系统的栈空间深度过大可能导致栈溢出C. 所有递归算法都可以用循环栈的方式非递归实现D. 递归算法的时间复杂度一定高于非递归版本关于DFS深度优先搜索和BFS广度优先搜索下列说法正确的有 。A. DFS 通常使用栈显式或递归隐式栈实现B. BFS 通常使用队列实现C. BFS 适合求无权图的最短路径D. 在网格中从左上角到右下角的所有路径数量问题只能向下或向右两种搜索都能求解以下排序算法中平均时间复杂度为O(n log n)的有 。A. 冒泡排序 B. 选择排序 C. 快速排序 D. 归并排序以下排序算法中属于稳定排序的有 。A. 归并排序 B. 快速排序 C. 冒泡排序 D. 选择排序二分查找算法要求待查找的数据结构必须满足 。A. 有序 B. 随机存取如数组 C. 元素均为整数 D. 链式存储三、编程题共70分编程题1丝路里程计算15分题目描述丝绸之路沿线有 N 个城市编号 1 ~ N。已知相邻城市间的距离第 i 个距离表示城市 i 到城市 i1 的距离。商队从城市 L 出发前往城市 RL R请计算需要行进的总路程。输入格式第一行一个整数 N (2 ≤ N ≤ 100)。第二行 N-1 个正整数表示相邻城市的距离单位里。第三行两个整数 L, R (1 ≤ L R ≤ N)。输出格式输出一个整数表示从 L 到 R 的总路程。样例输入5 10 20 30 40 2 5样例输出90样例解释城市2→3(20里) 3→4(30里) 4→5(40里) 90里。编程题2商队最长三日里程15分题目描述商队在丝绸之路上连续记录了 N 天的每日行进里程正整数。请找出连续3天中总里程最大的值并输出该最大值。如果 N 3则输出 0。输入格式第一行一个整数 N (1 ≤ N ≤ 1000)。第二行 N 个正整数表示每天的里程单位里≤ 10000。输出格式输出一个整数表示最大的连续3天里程之和。若不足3天输出 0。样例输入1text5 30 40 20 50 60样例输出1text130解释连续三天组合30402090402050110205060130 → 最大为130。样例输入2text2 10 20样例输出2text0解释不足3天输出0。编程题3货物清单统计20分题目描述商队在丝绸之路上经过多个集市记录下了交易的货物清单。每条记录格式为货物名称:数量。现在需要统计每种货物的总数量并按照货物名称的字典序输出。输入格式第一行一个整数 n (1 ≤ n ≤ 100)表示记录条数。接下来 n 行每行一个字符串格式为name:num其中name为不含空格的小写字母串长度 ≤ 20num为 1~1000 的整数。输出格式若干行每行输出name total按 name 的字典序ASCII从小到大排列。样例输入5 silk:10 tea:5 silk:8 spice:12 tea:3样例输出silk 18 spice 12 tea 8编程题4丝绸之路寻路20分题目描述商队需要从丝绸之路地图的左上角(1,1)走到右下角(n,m)。地图是一个 n 行 m 列的网格每个格子是0可通行或1障碍。商队只能向下或向右移动。请问一共有多少条不同的路径注障碍格子不能经过左上角和右下角保证为可通行输入格式第一行两个整数 n, m (1 ≤ n, m ≤ 8)。接下来 n 行每行 m 个整数0 或 1表示地图。输出格式输出一个整数表示不同路径的总数。若不存在可行路径输出 0。样例输入3 3 0 0 0 0 1 0 0 0 0样例输出2解释两条路径分别为右→右→下→下 和 下→下→右→右中间障碍物 (2,2) 阻挡了其他路线。答案与解析一、单选题Cdo-while循环先执行一次循环体再判断条件故至少执行一次。for和while可能一次都不执行。Ab是先使用 b 的值3再加1。所以a 3→ a 538然后 b 变成 4。B判断质数只需检查 2 到 √n 的因子复杂度 O(√n)。A、C、D 效率更低。B二分查找过程初始区间 [0,6]mid3值121512左区间 [4,6]mid5值201520右区间 [4,4]mid4值15命中。共比较3次下标3、5、4。注意比较次数指元素比较次数通常包括最后一次成功比较所以是3次。但常见题中计数方式略有差异此处严谨答案应为3。若按每次二分算一次比较第一次与12比第二次与20比第三次与15比 → 3次。选 C。A47 二进制328421 101111321547151111所以101111。二、多选题ABCA 正确递归必须终止条件B 正确递归深度过大导致栈溢出C 正确所有递归可转为迭代如手动栈D 错误递归可能因重复计算而更低效如斐波那契但并非绝对。ABCD全部正确。D 项中网格路径数量问题只能下/右可用 DFS 枚举所有路径也可用 BFS 统计方案数但通常 DP 更佳二者均可求解。CD冒泡、选择排序平均 O(n²)快速排序平均 O(n log n)最坏 O(n²)归并排序稳定 O(n log n)。AC归并排序和冒泡排序稳定快速排序和选择排序不稳定。AB二分查找要求序列有序且支持随机存取如数组链表无法高效实现二分。三、编程题参考代码及思路编程题1丝路里程计算思路分析用数组存储距离从L到R-1累加对应下标即可。代码实现#includebits/stdc.husingnamespacestd;intN,L,R,dist[110];// dist[110]: 存储相邻城市间的距离下标从1开始dist[i] 表示城市i到城市i1的距离intmain(){cinN;for(inti1;iN;i){cindist[i];// 依次读入每个路段长度}cinLR;// 计算从 L 到 R 的总路程intans0;// 累计总路程初始化为0// 累加从第 L 段到第 R-1 段的距离因为城市 i 到 i1 对应 dist[i]// 当 L2R5 时需要累加 dist[2] dist[3] dist[4]for(intiL;iR;i){ansdist[i];// 将每一段距离加到 ans 中}coutans;return0;}编程题2商队最长三日里程思路分析枚举所有起始位置计算三个数的和打擂台更新最大值。代码实现#includebits/stdc.husingnamespacestd;intN,a[1010];intmain(){cinN;for(inti1;iN;i){cina[i];}// 处理不足三天的情况if(N3){cout0endl;return0;}intmaxSum0;// 记录最大和// 枚举起始位置 i 1 到 N-2保证 i, i1, i2 都在范围内for(inti1;iN-2;i){// 计算从第 i 天开始连续三天的总里程intcurrentSuma[i]a[i1]a[i2];// 打擂台更新最大值if(currentSummaxSum){maxSumcurrentSum;}}coutmaxSum;return0;}编程题3货物清单统计思路分析使用mapstring, int自动按字典序排序并累加数量。代码实现#includebits/stdc.husingnamespacestd;intmain(){intn;// 记录条数cinn;// 读取 nmapstring,intm;// 使用 map 存储每种货物的名称及其累计数量自动按名称字典序排序string s;// 临时存储每行输入while(n--){// 循环 n 次读取 n 条记录cins;// 读取一行格式如 silk:10// 查找冒号的位置intposs.find(:);// 提取货物名称冒号前的子串string names.substr(0,pos);// 提取数量冒号后的子串并转换为整数intnumstoi(s.substr(pos1));// 累加数量如果 name 不存在map 会自动创建键并初始化为 0然后加上 numm[name]num;}// 遍历 map此时已按 name 的字典序ASCII 顺序自动排序for(autop:m){// 输出货物名称和累计总数量中间用空格分隔coutp.first p.secondendl;}return0;}编程题4丝绸之路寻路思路分析n和m均小于等于8可使用深度优先搜索DFS递归遍历所有向下/向右移动的路径遇到障碍或越界回溯。 备注当n和m较大时可以使用DP代码实现#includebits/stdc.husingnamespacestd;intn,m;// n地图行数m地图列数intans0;// 记录从(1,1)到(n,m)的不同路径总数inta[10][10];// 地图数组a[i][j]0表示可通行1表示障碍物// 深搜函数voiddfs(intx,inty){// 递归终止条件如果已经到达右下角 (n, m)if(xnym){ans;// 找到一条合法路径路径数加1return;// 返回上一层继续探索其他路径}// 尝试向下移动如果下方格子存在x1 n且不是障碍a[x1][y] 0if(x1na[x1][y]0){dfs(x1,y);// 递归调用进入下方格子}// 尝试向右移动如果右方格子存在y1 m且不是障碍a[x][y1] 0if(y1ma[x][y1]0){dfs(x,y1);// 递归调用进入右方格子}}intmain(){cinnm;for(inti1;in;i){for(intj1;jm;j){cina[i][j];// a[i][j] 为 0 或 1}}dfs(1,1);// 从左上角 (1,1) 出发开始DFS搜索coutans;// 输出结果return0;}完整复赛备赛资料助力你冲刺一等奖2026年全国青少年信息素养大赛算法应用主题赛C样题及答案解析https://noicsp.blog.csdn.net/article/details/159561154?spm1011.2415.3001.53312026年全国青少年信息素养大赛算法应用主题赛C赛项复赛模拟卷1文末附答案https://noicsp.blog.csdn.net/article/details/159650568?spm1011.2415.3001.53312026年全国青少年信息素养大赛算法应用主题赛C赛项复赛模拟卷2文末附答案https://noicsp.blog.csdn.net/article/details/159650622?spm1011.2415.3001.53312026年全国青少年信息素养大赛算法应用主题赛C赛项复赛模拟卷3文末附答案https://noicsp.blog.csdn.net/article/details/159822116?spm1011.2415.3001.53312026年全国青少年信息素养大赛算法应用主题赛C赛项复赛模拟卷4文末附答案https://noicsp.blog.csdn.net/article/details/159823816?spm1011.2415.3001.53312026年全国青少年信息素养大赛算法应用主题赛C赛项复赛模拟卷5文末附答案https://noicsp.blog.csdn.net/article/details/160130468?spm1011.2415.3001.53312025年全国青少年信息素养大赛复赛真题算法创意实践挑战赛C小学组试卷1带解析7月6日试卷https://noicsp.blog.csdn.net/article/details/154933920?spm1011.2415.3001.53312025年全国青少年信息素养大赛复赛真题算法创意实践挑战赛C初中组试卷1带解析7月6日试卷https://noicsp.blog.csdn.net/article/details/155087249?spm1011.2415.3001.53312025年全国青少年信息素养大赛复赛真题算法创意实践挑战赛C小学组试卷2带解析7月13日试卷https://noicsp.blog.csdn.net/article/details/155130012?spm1011.2415.3001.53312025年全国青少年信息素养大赛复赛真题算法创意实践挑战赛C初中组试卷2带解析7月13日试卷https://noicsp.blog.csdn.net/article/details/155130092?spm1011.2415.3001.53312024年全国青少年信息素养大赛复赛真题算法创意实践挑战赛C小学组带解析https://noicsp.blog.csdn.net/article/details/1478146142023年全国青少年信息素养大赛复赛真题C智能算法复赛真题带解析https://blog.csdn.net/weixin_66461496/article/details/147968677关注老师的专栏查看完整版全国青少年信息素养大赛C备赛资料初赛复赛https://blog.csdn.net/weixin_66461496/category_12969975.html相关课程《全国青少年信息素养大赛C复赛真题试卷及答案解析》视频课https://www.bilibili.com/cheese/play/ep2532538各种学习资料助力大家一站式学习和提升#includebits/stdc.husingnamespacestd;intmain(){cout########## 一站式掌握信奥赛知识! ##########;cout############# 冲刺信奥赛拿奖! #############;cout###### 课程购买后永久学习不受限制! ######;return0;}【秘籍汇总】完整csp信奥赛C学习资料1、csp/信奥赛C完整信奥赛系列课程永久学习https://edu.csdn.net/lecturer/7901 点击跳转2、CSP信奥赛C竞赛拿奖视频课https://edu.csdn.net/course/detail/40437 点击跳转3、csp信奥赛高频考点知识详解及案例实践CSP信奥赛C动态规划https://blog.csdn.net/weixin_66461496/category_13096895.html点击跳转CSP信奥赛C标准模板库STLhttps://blog.csdn.net/weixin_66461496/category_13108077.html 点击跳转信奥赛C提高组csp-s知识详解及案例实践https://blog.csdn.net/weixin_66461496/category_13113932.html 点击跳转4、csp信奥赛冲刺一等奖有效刷题题解信奥赛C普及组CSP-J一等奖通关刷题题单及题解https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转信奥赛C普及组csp-j初赛复赛真题题解持续更新https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转信奥赛C提高组csp-s初赛复赛真题题解持续更新https://blog.csdn.net/weixin_66461496/category_13125089.html 点击跳转5、GESP C考级真题题解GESP(C 一级二级三级)真题题解持续更新https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转GESP(C 四级五级六级)真题题解持续更新https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转GESP(C 七级八级)真题题解持续更新https://blog.csdn.net/weixin_66461496/category_13117178.html 点击跳转· 文末祝福 ·#includebits/stdc.husingnamespacestd;intmain(){cout跟着王老师一起学习信奥赛C;cout 成就更好的自己 ;cout csp信奥赛一等奖属于你! ;return0;}