news 2026/5/21 1:55:34

2026年全国青少年信息素养大赛算法应用主题赛(C++赛项模拟训练3:文末附答案)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2026年全国青少年信息素养大赛算法应用主题赛(C++赛项模拟训练3:文末附答案)

2026年全国青少年信息素养大赛算法应用主题赛(C++赛项模拟训练3:文末附答案)

5道单选+5道多选+4道编程


一、单选题
  1. 在计算驼队货物总重量时,现有茶叶重量tea(整数)和丝绸重量silk(整数),要将两者相加后赋值给已定义变量total。下列语句正确的是( )。
    A.total = tea + silk;
    B.tea + silk = total;
    C.total = tea + silk
    D.int total = tea + silk;

  2. 某段丝绸之路需要判断是否经过绿洲,如果变量hasOasistrue且距离下一绿洲dist小于100里,则建议补充水源。下列条件表达式正确的是( )。
    A.hasOasis && dist < 100
    B.hasOasis == true && dist < 100
    C.hasOasis && (dist < 100)
    D. A、B、C 都正确

  3. 有5件瓷器,编号0~4,破损情况用数组broken[5]存储(1表示破损,0表示完好)。要输出第3件瓷器的状态,正确语句是( )。
    A.cout << broken[3];
    B.cout << broken(3);
    C.cout << broken[2];
    D.cout << broken;

  4. 商队有10峰骆驼,每峰载重load[i](斤)。要使用for循环计算总载重,循环变量i的范围正确的是( )。
    A.for (int i = 1; i <= 10; i++)
    B.for (int i = 0; i < 10; i++)
    C.for (int i = 0; i <= 9; i++)
    D. B 和 C 都正确

  5. 丝绸商人根据货物总价打折:

    • 若总价price≥ 5000 两,打 7 折;
    • 若 2000 ≤price< 5000 两,打 8 折;
    • 若 1000 ≤price< 2000 两,打 9 折;
    • 否则不打折。

    下列多分支if语句的写法中,能正确实现上述逻辑的是( )。

    A.

    if(price>=1000)discount=0.9;elseif(price>=2000)discount=0.8;elseif(price>=5000)discount=0.7;elsediscount=1.0;

    B.

    if(price>=5000)discount=0.7;elseif(price>=2000)discount=0.8;elseif(price>=1000)discount=0.9;elsediscount=1.0;

    C.

    if(price>=5000)discount=0.7;if(price>=2000)discount=0.8;if(price>=1000)discount=0.9;elsediscount=1.0;

    D.

    if(price<1000)discount=1.0;if(price<2000)discount=0.9;if(price<5000)discount=0.8;elsediscount=0.7;

二、多选题
  1. 在C++中,以下哪些数据类型可以用于存储骆驼的载重(单位:斤,可能为非整数)?( )
    A.int
    B.float
    C.double
    D.char

  2. 关于函数的定义,以下语法正确的有( )。
    A.

    intsum(inta,intb){returna+b;}

    B.

    voidprintHello(){cout<<"Hello";}

    C.

    intmultiply(intx,inty){returnx*y}

    D.

    floatdivide(floata,floatb){if(b==0)return0;elsereturna/b;}
  3. 以下关于breakcontinue语句的说法,正确的有( )。
    A.break只能用于循环语句中
    B.continue只能用于循环语句中
    C.break可以提前终止循环或switch
    D.continue会跳过本次循环中剩余语句,继续下一次循环

  4. 关于位运算(仅考虑非负整数),以下说法正确的有( )。
    A.a << 1等价于a * 2
    B.a >> 1等价于a / 2(整除)
    C.a & 1可用于判断a的奇偶性
    D.a | 0等于a

  5. 在C++中,关于局部变量和全局变量,正确的有( )。
    A. 局部变量只在定义它的函数内有效
    B. 全局变量在程序所有函数中都可以访问
    C. 局部变量与全局变量同名时,局部变量优先
    D. 全局变量未初始化时默认为0


三、编程题
编程题1:货物重量四舍五入到十斤

背景:商队从长安出发,需要将每批货物的重量(正整数)按“四舍五入到十斤”进行粗略统计。例如,57斤四舍五入到十斤为60斤,52斤为50斤。请实现这个功能。
输入格式
一个整数w1 ≤ w ≤ 10000)。
输出格式
一个整数,表示四舍五入到十斤后的结果。
样例输入1

57

样例输出1

60

样例输入2

52

样例输出2

50
编程题2:骆驼编号查找

背景:有n峰骆驼,每峰骆驼有一个唯一的编号(正整数)。商人想知道某特定编号的骆驼是否存在,若存在输出它的位置(从1开始计数),否则输出0
输入格式
第一行一个整数n1 ≤ n ≤ 100)。
第二行n个互不相同的整数,表示骆驼编号。
第三行一个整数target,表示要查找的编号。
输出格式
一个整数,表示目标编号在数组中的位置(从1开始),如果不存在则输出0
样例输入

5 101 203 154 207 189 154

样例输出

3
编程题3:丝绸图案中的元音统计

背景:丝绸图案用一段英文描述(仅含小写字母和空格,无标点)。请统计其中元音字母(a, e, i, o, u)出现的总次数(不区分大小写,但输入均为小写)。
输入格式
一行字符串s,长度1 ≤ |s| ≤ 200
输出格式
一个整数,表示元音字母的个数。
样例输入

silk road is beautiful

样例输出

9

(解释:i,o,a,i,e,a,u,i,u → 9个)

编程题4:丝路织机经纬线交错(矩阵转置)

背景:在丝绸织造中,经线(纵向)和纬线(横向)形成织物纹理。现用一个nm列的整数矩阵表示织机上的张力值。请实现矩阵转置,即输出一个mn列的矩阵,其中第i行第j列的元素等于原矩阵第j行第i列的元素。
输入格式
第一行两个整数n, m1 ≤ n,m ≤ 20)。
接下来n行,每行m个整数(绝对值 ≤ 1000)。
输出格式
输出m行,每行n个整数,表示转置后的矩阵,每两个数之间用一个空格隔开(行末无多余空格)。
样例输入

2 3 1 2 3 4 5 6

样例输出

1 4 2 5 3 6

参考答案与评分标准
一、单选题
  1. A(B等号左右两边内容反了 C语句少; D语句多int)

  2. D(A、B、C逻辑等价,B中hasOasis == truehasOasis相同,C中括号多余但正确)

  3. C (编号0~4,第1件编号0,第2件编号1,第3件编号2,故输出broken[2])。

  4. D(B和C都是0到9,共10个,正确)

  5. B(使用else if按从高到低的区间顺序判断,避免覆盖)

二、多选题
  1. B, C(载重可能非整数,float和double均可;int只能整数;char太小)
  2. A, B, D(C缺少分号,语法错误)
  3. B, C, D(A错误,break还可以用于switch)
  4. A, B, C, D(全部正确)
  5. A, B, C, D(全部正确)
三、编程题参考代码
编程题1
#include<bits/stdc++.h>usingnamespacestd;intmain(){intw;// 定义整数变量w,用于存储输入的货物重量cin>>w;// 从标准输入读取重量intremainder=w%10;// 计算重量除以10的余数(个位数)// 根据四舍五入规则处理if(remainder>=5){// 如果个位数大于等于5,则向上取整w=w-remainder+10;// 去掉个位数后加10(例如57 -> 57-7+10=60)}else{// 如果个位数小于5,则向下取整w=w-remainder;// 直接去掉个位数(例如52 -> 52-2=50)}cout<<w<<endl;// 输出四舍五入到十斤后的结果return0;}
编程题2
#include<bits/stdc++.h>usingnamespacestd;intmain(){intn,target;// n: 骆驼总数, target: 要查找的目标编号cin>>n;// 输入骆驼数量intids[100];// 定义数组存储骆驼编号(最大100个)for(inti=0;i<n;++i){// 循环读取n个编号cin>>ids[i];// 将编号存入数组}cin>>target;// 输入要查找的目标编号intpos=0;// 初始化位置为0(0表示未找到)for(inti=0;i<n;++i){// 遍历数组if(ids[i]==target){// 如果当前编号等于目标编号pos=i+1;// 记录位置(数组下标从0开始,位置需+1)break;// 找到后立即退出循环}}cout<<pos<<endl;return0;}
编程题3
#include<bits/stdc++.h>usingnamespacestd;intmain(){string s;// 定义字符串变量s,用于存储输入的文本getline(cin,s);// 读取整行(包括空格),存入sintcnt=0;// 计数器,初始为0,用于统计元音个数// 使用范围for循环遍历字符串中的每个字符for(charc:s){// 判断当前字符是否为元音字母(a, e, i, o, u)if(c=='a'||c=='e'||c=='i'||c=='o'||c=='u'){cnt++;// 是元音则计数器加1}}cout<<cnt<<endl;// 输出元音的总个数return0;}
编程题4
#include<bits/stdc++.h>usingnamespacestd;intmain(){intn,m;cin>>n>>m;// 输入原矩阵的行数n和列数minta[30][30];// 定义二维数组// 输入原矩阵,下标从1开始for(inti=1;i<=n;++i){// i从1到nfor(intj=1;j<=m;++j){// j从1到mcin>>a[i][j];// 存入a[i][j]}}// 输出转置矩阵:原矩阵的列变成行,原矩阵的行变成列for(intj=1;j<=m;++j){// 外层循环:原矩阵的列(转置后的行)for(inti=1;i<=n;++i){// 内层循环:原矩阵的行(转置后的列)cout<<a[i][j];// 输出转置后的元素if(i<n)cout<<" ";// 行内除最后一个元素外输出空格}cout<<endl;// 每行结束后换行}return0;}

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

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

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

#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 点击跳转

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信奥赛冲刺一等奖有效刷题题解:

CSP信奥赛C++初赛及复赛高频考点真题解析(持续更新):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/5/21 1:55:33

Android Kotlin实战项目:从新手到专家的50个实战案例全解析

Android Kotlin实战项目&#xff1a;从新手到专家的50个实战案例全解析 【免费下载链接】50-android-kotlin-projects-in-100-days My everyday Android practice demos with Kotlin in 100 days. 项目地址: https://gitcode.com/gh_mirrors/50/50-android-kotlin-projects-i…

作者头像 李华
网站建设 2026/4/18 8:05:35

智能EFI构建引擎:让黑苹果配置效率提升80%的全流程解析

智能EFI构建引擎&#xff1a;让黑苹果配置效率提升80%的全流程解析 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 引言&#xff1a;被复杂配置劝退的…

作者头像 李华
网站建设 2026/4/18 8:04:46

校园社交新物种诞生:MateU 要做全球校友的“数字母校“

深耕校园十一年的俺来也&#xff0c;用全球顶级 AI 技术打造首款全 AI 开发的校友社交产品在社交赛道日趋饱和的当下&#xff0c;一款名为 MateU APP的校园社交产品正悄然崛起。它没有选择在短视频或陌生人社交中厮杀&#xff0c;而是瞄准了一个被长期低估的关系链——校友网络…

作者头像 李华
网站建设 2026/5/14 10:19:55

深度学习训练营打卡记录——W3_P3

&#x1f368; 本文为&#x1f517;365天深度学习训练营中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊&#x1f369; 编译器&#xff1a;Google Colab Pytorch实现天气识别 Ⅰ、代码运行截图 一、前期准备 1. 设置GPU 2. 导入数据 3. 划分数据集 二、构建简单的…

作者头像 李华
网站建设 2026/4/21 23:12:17

LeetCode 两数之和 思路 + 题解

好的&#xff0c;我们来详细分析 LeetCode 两数之和&#xff08;题目编号&#xff1a;1&#xff09;的解题思路并提供代码实现。问题描述给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 的那两个整数&#xff0c;并返回它们的数组下…

作者头像 李华