news 2026/7/20 11:33:02

2026年全国青少年信息素养大赛复赛真题(算法应用主题赛C++初中组:带解析)(7月4日试卷三)【文末附答案和解析】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2026年全国青少年信息素养大赛复赛真题(算法应用主题赛C++初中组:带解析)(7月4日试卷三)【文末附答案和解析】

2026年全国青少年信息素养大赛复赛真题(算法应用主题赛C++初中组:带解析)(7月4日试卷三)【文末附答案和解析】

单选题
第1题

藏族唐卡是藏传佛教的重要艺术形式,调色师需要比较两种颜料的色差。色差用绝对值表示,小明编写程序计算两个颜色值 a 和 b 的色差(绝对值)?

  • A. abs (a - b)
  • B. |a - b|
  • C. a - b
  • D. (a - b) * (a - b)

第2题

纳西族的东巴文是世界上唯一活着的象形文字。博物馆为每件东巴文展品编制了编码,格式固定为 4 个字符,例如 “DB08”。小明用循环提取编码中的某一部分,程序输出结果是?

string code="DB08";string num="";for(inti=0;i<code.length();i++){if(code[i]>='0'&&code[i]<='9'){num+=code[i];}}cout<<num;
  • A. 08
  • B. DB
  • C. DB08
  • D. 0

第3题

侗族鼓楼是侗寨的标志性建筑,层数通常为奇数。文化馆用自定义函数计算鼓楼装饰材料费用,程序输出的装饰费用的总和是?

intcost(intlayer,intprice){returnlayer*price;}intmain(){inttotal=0;for(inti=1;i<=5;i+=2){total+=cost(i,100);}cout<<total;return0;}
  • A. 500
  • B. 900
  • C. 1500
  • D. 600

第4题

哈尼族的梯田灌溉需要监测各级梯田的水量。管理员用数组记录 5 块梯田的水量,并统计特殊水量的梯田数量,程序输出的特殊水量的梯田数量是?

inta[5]={30,50,40,60,20};intsum=0;for(inti=0;i<5;i++)sum+=a[i];intavg=sum/5;intcount=0;for(inti=0;i<5;i++){if(a[i]>avg)count++;}cout<<count;
  • A. 1
  • B. 2
  • C. 3
  • D. 4

第5题

壮族织锦图案存储在二维数组中,需要统计图案中特定花纹的数量,程序输出结果是?

charp[3][4]={{'*','*','*','*'},{'*','*','*','*'},{'*','*','*','*'}};intcount=0;for(inti=0;i<3;i++){for(intj=0;j<4;j++){if(p[i][j]=='*')count++;}}cout<<count;
  • A. 4
  • B. 6
  • C. 8
  • D. 12

多选题
第1题

彝族毕摩是彝族文化的传承者,毕摩经文用特定符号记录。小明编写程序处理彝文编码字符串,以下关于 C++ 字符串操作的说法,哪些是正确的?

  • A.length()可以获取字符串 s 的字符个数
  • B.s[0]可以访问字符串 s 的第一个字符
  • C. 字符串的下标从 1 开始计数
  • D.s += "abc"会在字符串 s 的开头添加 “abc”

第2题

羌族羌绣是国家级非物质文化遗产。文化馆需要计算不同尺寸羌绣作品的价格,编写了一个自定义函数,以下关于这个函数的说法,哪些是正确的?

intgetPrice(intwidth,intheight){returnwidth*height*10;}
  • A. 调用getPrice(30, 40)的返回值是 12000
  • B. 调用getPrice(40, 30)的返回值与getPrice(30, 40)相同
  • C. 函数调用时,实参的顺序可以任意调换
  • D. 函数的两个参数可以是常量、变量或表达式

第3题

傣族泼水节期间,组织者需要根据参与者的年龄进行分组安排。以下程序根据年龄 age 输出对应的活动区域,若要使输出为“青少年互动区”,以下哪些输入是正确的?

intage;cin>>age;if(age<12){cout<<"儿童戏水区";}elseif(age<18){cout<<"青少年互动区";}elseif(age<60){cout<<"成人狂欢区";}else{cout<<"长者休息区";}
  • A. 12
  • B. 15
  • C. 17
  • D. 18

第4题

水族的水书是一种古老的文字系统,符号可分为“象形”(X)、“会意”(H)、“指事”(Z)三类。研究员编写程序统计一段水书文本中各类符号的数量,输入"XHXZHXZ"后,以下说法正确的是?

string text;cin>>text;for(inti=0;i<text.length();i++){if(text[i]=='X')x++;elseif(text[i]=='H')h++;elseif(text[i]=='Z')z++;}cout<<x<<" "<<h<<" "<<z;
  • A. 变量 x 的值为 3
  • B. 变量 h 的值为 3
  • C. 变量 z 的值为 2
  • D. 输出结果为 “2 2 3”

第5题

景颇族目瑙纵歌是大型集体舞蹈,舞者排成一列。编导需要检查队列中相邻舞者的服装颜色是否协调,用程序来完成,输入"RRGBBRR"后,以下说法正确的是?

string colors;cin>>colors;intcount=0;for(inti=0;i<colors.length()-1;i++){if(colors[i]==colors[i+1])count++;}cout<<count;
  • A. 程序检查了 6 对相邻舞者
  • B. count 的最终值为 3
  • C. 若输入改为 “RGBRGB”,count 的值为 1
  • D. 若输入改为 “AAAA”,count 的值为 3

编程题
第1题:酥油茶成分

题目描述
藏族酥油茶是藏区最具代表性的饮品,制作时需要将酥油、茶水和盐按一定比例混合。

给定酥油茶的总量 n 毫升,已知酥油占总量的20%,茶水占78%,盐占2%。请计算并输出各成分的用量(取整数部分)。

输入
一个正整数 n(100 ≤ n ≤ 10000),表示酥油茶总量。

输出
一行,三个整数,分别表示酥油、茶水、盐的用量(毫升),用空格分隔。

数据范围
100 ≤ n ≤ 10000

输入样例1

500

输出样例1

100 390 10

输入样例2

100

输出样例2

20 78 2

输入样例3

1000

输出样例3

200 780 20

第2题:奶酪质量分级

题目描述
蒙古族牧民制作的奶酪需要按照质量进行分级,以便在那达慕大会上展销。

给定 n 块奶酪的质量分数(0-100 分),按照以下规则分级:
特级:90 分及以上
一级:80-89 分
二级:70-79 分
三级:70 分以下

请统计各等级的奶酪数量。

输入
第一行一个正整数 n(1 ≤ n ≤ 100),表示奶酪数量。
第二行 n 个整数,表示每块奶酪的质量分数(0 ≤ 分数 ≤ 100)。

输出
一行四个整数,分别表示特级、一级、二级、三级的数量,用空格分隔。

数据范围
1 ≤ n ≤ 100
0 ≤ 分数 ≤ 100

输入样例1

1 90

输出样例1

1 0 0 0

输入样例2

8 92 85 78 95 65 88 72 90

输出样例2

3 2 2 1

输入样例3

5 100 100 100 100 100

输出样例3

5 0 0 0

第3题:土家族西兰卡普编码回文检测

题目描述
土家族西兰卡普是一种精美的织锦,其纹样编码往往具有"回文"特征——正读和反读都相同,象征着和谐对称之美。

给定一个西兰卡普纹样的编码字符串(只包含大写字母),判断该编码是否为"回文"。回文是指正读和反读完全相同的字符串。

输入
一行字符串 s(长度不超过 100,只包含大写字母 A-Z)。

输出
如果是回文,输出 YES 和字符串长度(用空格分隔);否则只输出 NO。

数据范围
字符串长度:1 ≤ |s| ≤ 100
图案只包含大写字母 A-Z

输入样例1

ABCDA

输出样例1

YES 5

输入样例2

ABCDE

输出样例2

NO

输入样例3

ABBA

输出样例3

YES 4

第4题:维吾尔族坎儿井水量调度

题目描述
维吾尔族的坎儿井是一种独特的地下水灌溉系统,需要将水量合理分配给各个农田。

坎儿井的水源总量为 W 升,需要分配给 n 块农田。每块农田有一个需水量和优先级(1-5 级,1 级最高)。
分配规则:

  1. 按优先级从高到低依次分配(优先级数字越小越高);
  2. 若优先级相同,按输入顺序先后分配;
  3. 每块农田最多分配其需水量;
  4. 如果剩余水量不足以满足当前农田的需水量,则分配全部剩余水量。

请计算每块农田实际获得的水量。

输入
第一行两个正整数 n 和 W(1 ≤ n ≤ 20,1 ≤ W ≤ 10000),表示农田数量和总水量。
接下来 n 行,每行两个整数 d 和 p,表示需水量(1 ≤ d ≤ 500)和优先级(1 ≤ p ≤ 5)。

输出
n 行,每行一个整数,按输入顺序输出每块农田实际获得的水量。

数据范围
1 ≤ n ≤ 20
1 ≤ W ≤ 10000
1 ≤ d ≤ 500
1 ≤ p ≤ 5

输入样例1

4 100 30 2 50 1 20 3 40 2

输出样例1

30 50 0 20

输入样例2

1 100 50 1

输出样例2

50

输入样例3

3 100 40 1 40 1 40 1

输出样例3

40 40 20


参考答案与解析
单选题

第1题:A
C++中计算绝对值用abs()函数。B是数学符号非法;C未取绝对值;D是平方。

第2题:A
遍历 “DB08”,只提取数字字符 ‘0’ 和 ‘8’,拼接得 “08”。

第3题:B
i = 1, 3, 5 时累加:100 + 300 + 500 = 900。

第4题:B
总和200,平均40,大于40的有50和60,共2个。

第5题:D
3行×4列=12个元素,全部为 ‘*’,count=12。


多选题

第1题:A、B
C错(下标从0开始),D错(+=是在末尾追加)。

第2题:A、B、D
C错(实参顺序必须与形参一一对应,不可任意调换)。

第3题:B、C
输出"青少年互动区"需满足 age ≥ 12 且 age < 18,12、15、17中只有15和17正确(12虽在范围内但C++代码中age < 12为false,进入else if (age < 18)为true,输出青少年区,所以12也正确)。
修正:A、B、C均正确(12满足 age < 18 且 age ≥ 12)。

第4题:A、C
统计 “XHXZHXZ”:X=3,H=1,Z=2,输出 “3 1 2”。

第5题:A、B、D
“RRGBBRR” 检查6对,相同对有 RR、BB、RR 共3个。C错,“RGBRGB” 中无相邻相同,count=0。D对,“AAAA” 有3对相邻相同。


编程题
第1题 酥油茶成分
思路分析

本题直接按百分比计算各成分用量即可:

  • 酥油 = n × 20 ÷ 100(取整数部分,C++ 整数除法自动向下取整)
  • 茶水 = n × 78 ÷ 100
  • 盐 = n × 2 ÷ 100

由于 n 是正整数且范围不大,直接使用整数乘法再除以 100 即可得到整数结果,无需浮点数处理。

代码实现
#include<bits/stdc++.h>usingnamespacestd;intn;intmain(){cin>>n;// 分别计算各成分用量(整数除法自动取整)cout<<n*20/100<<" ";// 酥油占 20%cout<<n*78/100<<" ";// 茶水占 78%cout<<n*2/100;// 盐占 2%return0;}

第2题 奶酪质量分级
思路分析

用 4 个计数器分别记录四个等级的奶酪数量。依次读入每块奶酪的分数,根据分数区间判断等级,对应计数器加 1。最后按顺序输出四个计数器的值即可。

代码实现
#include<bits/stdc++.h>usingnamespacestd;intn,s;// n:奶酪数量, s:当前分数inta=0,b=0,c=0,d=0;// 特级、一级、二级、三级计数器intmain(){cin>>n;for(inti=1;i<=n;i++){cin>>s;// 输入每块奶酪的分数if(s>=90)a++;// 90分及以上为特级elseif(s>=80)b++;// 80~89分为一级elseif(s>=70)c++;// 70~79分为二级elsed++;// 70分以下为三级}cout<<a<<" "<<b<<" "<<c<<" "<<d;return0;}

第3题 回文检测
思路分析

利用 C++ STL 中的reverse函数,可将字符串原地反转。先将原字符串复制一份,反转副本后与原字符串比较:若相同则为回文,否则不是。代码实实现

#include<bits/stdc++.h>usingnamespacestd;string s,t;// s:原字符串, t:副本intmain(){cin>>s;// 输入字符串t=s;// 复制一份reverse(t.begin(),t.end());// 反转副本if(s==t)cout<<"YES "<<s.length();// 相同则为回文elsecout<<"NO";// 否则不是return0;}

第4题 坎儿井水量调度
思路分析

按优先级从高到低(数字小优先)分配,优先级相同则按输入顺序。
因此需要存储每块农田的原始编号、需水量和优先级,然后排序。排序后依次分配:若剩余水量足以满足当前需水量,则分配全部需水量;否则分配所有剩余水量(后续农田得 0)。最后按原始编号输出实际获得的水量。

代码实现
#include<bits/stdc++.h>usingnamespacestd;intn,W;intans[30];// 存储实际分配水量structnode{intid,d,p;// id:原始编号, d:需水量, p:优先级}f[30];boolcmp(node a,node b){if(a.p!=b.p)returna.p<b.p;// 优先级小的先分配returna.id<b.id;// 优先级相同按输入顺序}intmain(){cin>>n>>W;// 输入数量和总水量for(inti=1;i<=n;i++){cin>>f[i].d>>f[i].p;// 输入每块农田的需水量和优先级f[i].id=i;// 记录原始编号}sort(f+1,f+n+1,cmp);// 按优先级和输入顺序排序for(inti=1;i<=n;i++){if(W==0)break;// 水量已耗尽if(W>=f[i].d){// 足够分配ans[f[i].id]=f[i].d;W-=f[i].d;}else{// 不够则分配全部剩余ans[f[i].id]=W;W=0;}}for(inti=1;i<=n;i++){cout<<ans[i]<<endl;// 按原始编号输出}return0;}

关注老师的专栏,查看完整版全国青少年信息素养大赛C++备赛资料(初赛+复赛):

https://blog.csdn.net/weixin_66461496/category_12969975.html

相关课程《全国青少年信息素养大赛C++初赛真题试卷及答案解析》(视频课)

https://www.bilibili.com/cheese/play/ss447406764

相关课程《全国青少年信息素养大赛C++复赛真题试卷及答案解析》(视频课)

https://www.bilibili.com/cheese/play/ep2532538


各种学习资料,助力大家一站式学习和提升!!!

#include<bits/stdc++.h>usingnamespacestd;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 点击跳转

https://edu.csdn.net/course/detail/41081 点击跳转

3、csp信奥赛高频考点知识详解及案例实践:

CSP信奥赛C++动态规划:
https://blog.csdn.net/weixin_66461496/category_13096895.html点击跳转

CSP信奥赛C++标准模板库STL:
https://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 点击跳转

· 文末祝福 ·

#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"跟着王老师一起学习信奥赛C++";cout<<" 成就更好的自己! ";cout<<" csp信奥赛一等奖属于你! ";return0;}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/20 11:32:08

鸿蒙Flutter 弹性系数详解:flex属性用法

作者&#xff1a;高红帆&#xff08;Math_teacher_fan&#xff09; 仓库地址&#xff1a;https://gitcode.com/feng8403000/FlutterfromBeginnertoAdvancedForHarmonyOS.git 联系邮箱&#xff1a;372699828qq.com 引言 在Flutter的Flex布局系统中&#xff0c;flex属性是控制子…

作者头像 李华
网站建设 2026/7/20 11:30:50

Cocos2dx实战:从零构建仿《水果忍者》游戏,详解物理引擎与性能优化

1. 项目概述&#xff1a;从“切水果”到Cocos2dx实战几年前&#xff0c;当智能手机刚刚普及&#xff0c;触屏游戏风靡一时&#xff0c;《水果忍者》无疑是那个时代的标志性作品之一。它简单、爽快、直观的操作&#xff0c;让无数玩家沉迷于手指划过屏幕切开水果的瞬间。作为一名…

作者头像 李华
网站建设 2026/7/20 11:30:37

ARM中断控制器(AINTC)实战:中断嵌套与向量化配置详解

1. AINTC核心设计思路与中断机制总览在嵌入式实时系统的开发中&#xff0c;中断处理的速度和可靠性直接决定了系统的性能上限。想象一下&#xff0c;你正在处理一个关键的传感器数据&#xff0c;此时一个更紧急的通信请求到来&#xff0c;系统能否立即响应&#xff1f;还是必须…

作者头像 李华
网站建设 2026/7/20 11:30:25

Windows XP终极指南:经典系统的优化与安全实践

1. Windows XP 全功略&#xff1a;经典系统的终极指南Windows XP&#xff0c;这个诞生于2001年的操作系统&#xff0c;至今仍是计算机发展史上最具影响力的作品之一。作为微软Windows NT内核的第五代产品&#xff0c;XP首次将企业级的稳定性和家庭用户的易用性完美结合。即使在…

作者头像 李华
网站建设 2026/7/20 11:30:21

Shell函数传参技巧与实战应用

1. Shell函数传参基础与实战在Shell脚本开发中&#xff0c;函数是实现代码复用的核心单元。与大多数编程语言不同&#xff0c;Shell函数的参数传递有其独特的机制。我们先从一个实际案例开始&#xff1a;#!/bin/bash # 定义计算器函数 calculate() {local operand1$1 # 第一个…

作者头像 李华
网站建设 2026/7/20 11:30:13

安全事故应急预案:参入人权限与处理全流程

在工程施工领域&#xff0c;安全事故的发生可能会导致严重的人员伤亡和财产损失。因此&#xff0c;制定科学、实用、合规的安全事故应急预案至关重要。作为国家注册安全工程师、一级建造师、应急管理厅认证考评员&#xff0c;我将为大家详细解析安全事故应急预案的相关内容。总…

作者头像 李华