当前位置: 首页 > news >正文

2025 年 12 月青少年软编等考 C 语言一级真题解析

目录

  • T1. 数数
    • 思路分析
  • T2. 分糖果
    • 思路分析
  • T3. 等差数列
    • 思路分析
  • T4. 灯塔
    • 思路分析
  • T5. 知识竞赛
    • 思路分析

T1. 数数

题目链接:SOJ P2798

老师给小米布置了一个数数练习:“请数一数从数字A AA到数字B BB之间一共有多少个整数(包括A AAB BB)。”

同时老师提醒说,如果A AAB BB大,那就一个数都没有,直接回答0 00

时间限制:1 s
内存限制:256 MB

  • 输入
    第一行:两个整数A B A BAB1 ≤ A , B ≤ 100 1≤A,B≤1001A,B100
  • 输出
    输出满足条件的个数。
  • 样例输入 1
    5 7
  • 样例输出 1
    3
  • 样例输入 2
    11 10
  • 样例输出 2
    0
  • 样例输入 3
    20 30
  • 样例输出 3
    11

思路分析

此题考查分支结构,属于入门题。

a > b a > ba>b时输出0 00,否则输出b − a + 1 b - a + 1ba+1即为答案。

/* * Name: T1.cpp * Problem: 数数 * Author: Teacher Gao. * Date&Time: 2026/01/08 02:07 */#include<iostream>usingnamespacestd;intmain(){ios::sync_with_stdio(false),cin.tie(0);inta,b;cin>>a>>b;if(a>b){cout<<0<<endl;}else{cout<<b-a+1<<endl;}return0;}

T2. 分糖果

题目链接:SOJ D1422

有三包糖果,分别有A AAB BBC CC颗。想把这三包糖果分成两组或三组,并且每组糖果的总数要一样多。糖果的包装不能拆开。请问能否做到?

时间限制:1 s
内存限制:256 MB

  • 输入
    第一行:三个整数A AAB BBC CC,用空格隔开,1 ≤ A , B , C ≤ 1000 1≤A,B,C ≤10001A,B,C1000
  • 输出
    如果可以按要求分成若干组,输出Yes,否则输出No
  • 样例输入 1
    2 6 4
  • 样例输出 1
    Yes
  • 样例输入 2
    6 6 6
  • 样例输出 2
    Yes
  • 样例输入 3
    1 3 5
  • 样例输出 3
    No

思路分析

此题考查分支机构的应用,属于基础题。

可以分成三组的条件是三包糖果数量一致,可以分成两组的条件是数量最多的一包糖果的数量等于其余两包之和。因此需要找出三个数中的最大值,可以利用打擂台思想,与 2025 年 9 月一级第四题类似。

/* * Name: T2.cpp * Problem: 分糖果 * Author: Teacher Gao. * Date&Time: 2026/01/08 02:09 */#include<iostream>usingnamespacestd;intmain(){ios::sync_with_stdio(false),cin.tie(0);inta,b,c;cin>>a>>b>>c;if(b>a)swap(a,b);if(c>a)swap(a,c);if(a==b+c){// 可以分成两组cout<<"Yes\n";}elseif(a==b&&b==c){// 可以分成三组cout<<"Yes\n";}else{cout<<"No\n";}return0;}

T3. 等差数列

题目链接:SOJ P7787

给定整数A AAB BB。请求出有多少个整数x xx满足将A AAB BBx xx这三个整数以某种顺序排列,使其构成一个等差数列。

这里,若将三个整数p ppq qqr rr按此顺序排列后,若q − p q-pqp等于r − q r-qrq,则称其为等差数列。

时间限制:1 s
内存限制:256 MB

  • 输入
    两个整数A , B A,BA,B1 ≤ A , B ≤ 100 1≤A,B≤1001A,B100
  • 输出
    请输出满足题目条件的整数x xx的个数。
  • 样例输入 1
    5 5
  • 样例输出 1
    1
  • 样例输入 2
    4 6
  • 样例输出 2
    3
  • 样例输入 3
    18 11
  • 样例输出 3
    2

思路分析

此题考查分支结构与数学,属于基础题。

对于给定的两个整数a , b a,ba,b,要想新增一个整数x xx使得它们构成等差数列,x xx的可选位置最多只有3 33个,不失一般性地,假设a ≥ b a\ge bab

  • a = b a = ba=b时,公差必定为0 00,于是x xx只有1 11种可能,那就是继续与a , b a,ba,b重叠;
  • a − b a - bab为奇数时,说明无法在a , b a,ba,b之间添加一个整数x xx,使得x xxa aab bb的距离相等,那么x xx只能放在a aab bb之外,有2 22种方案;
  • a − b a - bab为偶数时,说明可以在a , b a,ba,b之间添加一个整数x xx,使得x xxa aab bb的距离相等,从而构成等差数列,再加上a aab bb之外的两种情况,总共3 33种情况。
/* * Name: T3.cpp * Problem: 等差数列 * Author: Teacher Gao. * Date&Time: 2026/01/08 02:21 */#include<iostream>usingnamespacestd;intmain(){ios::sync_with_stdio(false),cin.tie(0);inta,b;cin>>a>>b;if(a<b)swap(a,b);if(a==b){cout<<"1\n";}elseif((a-b)%2==1){cout<<"2\n";}else{cout<<"3\n";}return0;}

T4. 灯塔

题目链接:SOJ P7788

港口灯塔会在每天的A AA点钟发射一次重要的安全信号。

你是一名水手,作息非常规律:B BB点整入睡,C CC点整醒来,且睡眠时间不会超过24 2424小时。只有在清醒时你才能正确接收灯塔信号,睡着时无法接收。请判断你是否每天都能接收到灯塔的安全信号。

时间限制:1 s
内存限制:256 MB

  • 输入
    三个整数A , B , C A,B,CA,B,C0 ≤ A , B , C < 24 0≤A,B,C<240A,B,C<24A AAB BBC CC各不相同。
  • 输出
    如果你每天都能接收到信号,则输出Yes;否则输出No
  • 样例输入 1
    12 13 11
  • 样例输出 1
    Yes
  • 样例输入 2
    16 20 22
  • 样例输出 2
    Yes
  • 样例输入 3
    10 8 6
  • 样例输出 3
    No

思路分析

此题考查分支结构,属于基础题,与 [ABC228A] On and Off 思路一致,问题背景刚好相反。

由于睡眠时间不会超过24 2424小时,因此

  • 如果b < c b < cb<c,说明睡眠时间是同一天,那么当a aa介于b ∼ c b\sim cbc之间时无法接收到灯塔信号;
  • 如果b > c b > cb>c,说明睡眠时间跨越到了第二天,那么当a aa介于c ∼ b c\sim bcb之间时可以接收到灯塔信号。
/* * Name: T4_1.cpp * Problem: 灯塔 * Author: Teacher Gao. * Date&Time: 2026/01/08 02:33 */#include<iostream>usingnamespacestd;intmain(){ios::sync_with_stdio(false),cin.tie(0);inta,b,c;cin>>a>>b>>c;if(b<c){if(b<a&&a<c){cout<<"No\n";}else{cout<<"Yes\n";}}else{if(c<a&&a<b){cout<<"Yes\n";}else{cout<<"No\n";}}return0;}

更进一步地,可以用c = c − b c=c-bc=cb计算出每天睡眠的时长c cc,用a = a − b a=a-ba=ab计算出目标时间点距离开始睡眠时间点的时间差a aa。由于时间可能会跨越两天,因此两个时间差都有可能是负数,可以给时间差加上 24 之后再对 24 取余来保证时间差都是非负的。接下来只需要检测目标时间点距离开始睡眠时间点的时间差a aa是否大于睡眠时长c cc即可。

/* * Name: T4_2.cpp * Problem: 灯塔 * Author: Teacher Gao. * Date&Time: 2026/01/17 00:17 */#include<iostream>usingnamespacestd;intmain(){ios::sync_with_stdio(false),cin.tie(0);inta,b,c;cin>>a>>b>>c;c=(c-b+24)%24;a=(a-b+24)%24;if(a>c){cout<<"Yes\n";}else{cout<<"No\n";}return0;}

T5. 知识竞赛

题目链接:SOJ P4031

一场知识竞赛共有3 33道题目,分值分别是1 11分、2 22分和4 44分。

小蓝、小橙和小绿三人参加了比赛。小蓝获得A AA分,小橙获得B BB分。

小绿能答出小蓝和小橙中至少有一人答对的题目,但无法答出两人都答不出的题目。请求出小绿的得分。

在本题条件下,保证小绿的得分是唯一确定的。

时间限制:1 s
内存限制:256 MB

  • 输入
    一行,两个整数A AAB BB,用空格隔开,0 ≤ A , B ≤ 7 0≤A,B≤70A,B7
  • 输出
    一个整数,表示小绿的得分。
  • 样例输入 1
    1 2
  • 样例输出 1
    3
  • 样例输入 2
    0 0
  • 样例输出 2
    0

思路分析

此题考查位运算,属于基础题。

如果使用分支结构进行分类讨论,情况过于复杂繁琐。注意到3 33道题的得分刚好对应二进制下3 33个不同的位权,根据题意小绿可以答出小蓝和小橙至少一人答出的题目,因此把a aab bb按位或运算之后即可得到小绿的得分。

/* * Name: T5.cpp * Problem: 知识竞赛 * Author: Teacher Gao. * Date&Time: 2026/01/08 02:47 */#include<iostream>usingnamespacestd;intmain(){ios::sync_with_stdio(false),cin.tie(0);inta,b;cin>>a>>b;cout<<(a|b)<<endl;return0;}
http://www.jsqmd.com/news/827162/

相关文章:

  • Notion API Go客户端性能优化:应对API限速的10个策略
  • 创建基于C#的WebApi项目
  • 读智能涌现: AI时代的思考与探索02第四次工业革命
  • 2026简历照片怎么用APP制作?免费制作简历照片的APP推荐全攻略 - 博客万
  • Kubernetes代理沙箱:解耦Sidecar,实现安全高效的云原生工作负载管理
  • 技术深度:开源工具如何革新AI模型评估工作流
  • Neo4j APOC性能优化:JMH基准测试与调优技巧完全指南 [特殊字符]
  • Windows Terminal命令行参数:从繁琐手动配置到自动化工作流构建
  • Windows Cleaner终极指南:5分钟解决C盘空间不足,快速释放磁盘提升电脑性能
  • taskwarrior-tui社区贡献指南:如何参与开源项目开发
  • 量子计算模拟中的Grover算法与固定点算术误差分析
  • 手机拍社保照片怎么搞?2026实测社保照片拍摄方法和完整要求 - 博客万
  • Icestudio性能优化终极指南:如何提升大型FPGA电路设计的编辑效率
  • Python轻量级知乎内容爬虫:ZhiLight项目实战与反爬策略
  • 终极Flash浏览器解决方案:CefFlashBrowser让经典Flash游戏和应用重获新生
  • 2026年多少钱的寰宇君荟酒店,提供24小时热水且周边有特色菜的价格 - mypinpai
  • xAnalyzer终极指南:如何快速掌握x64dbg的免费高效分析插件
  • RabbitMQ-C核心组件解析:连接管理、Socket抽象与帧处理机制
  • 青少年软编等考一级题解目录
  • AI辅助编程工作流实践:从工具使用到体系化集成
  • 2026手机拍证件照怎么拍?参数怎样调?实测拍摄方法+尺寸规范完全指南 - 博客万
  • 基于Circuit Playground的坐姿检测器:从加速度计原理到可穿戴实现
  • Arm SystemReady认证与UEFI固件开发实战指南
  • taskwarrior-tui插件开发实战:扩展你的任务管理能力
  • 如何在macOS上完整备份微信聊天记录:免费开源工具WeChatExporter使用指南
  • Kaggle竞赛技能加速器:从特征工程到模型集成的系统化实战指南
  • Sunshine游戏串流服务器完整配置指南:从零搭建你的私人云游戏平台
  • 冠领绿化无纺布的性价比高不高,推荐吗 - mypinpai
  • 2026年4月国内可靠的灰罐公司推荐,散装水泥罐/储油罐/储罐/卧式油罐/卧式不锈钢罐/立式油罐/灰罐,灰罐销售厂家推荐 - 品牌推荐师
  • PreviewTransition错误排查与调试:10个常见问题解决与性能调优完整指南