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

2024-03-07 13:44

本文主要是介绍2022 年 9 月青少年软编等考 C 语言一级真题解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • T1. 指定顺序输出
    • 思路分析
  • T2. 成绩判定
    • 思路分析
  • T3. 简单排序
    • 思路分析
  • T4. 数字求和
    • 思路分析
  • T5. 数 1 的个数
    • 思路分析

T1. 指定顺序输出

依次输入 3 3 3 个整数 a a a b b b c c c,将他们以 c c c a a a b b b 的顺序输出。

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

  • 输入
    一行 3 3 3 个整数 a a a b b b c c c,以空格分隔。( 0 < a , b , c < 1 0 8 0 < a,b,c < 10^8 0<a,b,c<108
  • 输出
    一行 3 3 3 个整数 c c c a a a b b b,整数之间以一个空格分隔。
  • 样例输入
    1 2 3
    
  • 样例输出
    3 1 2
    

思路分析

此题考查基本输入输出,属于入门题。按照题目要求的格式编写代码输出即可。

/** Name: T1.cpp* Problem: 指定顺序输出* Author: Teacher Gao.* Date&Time: 2024/03/04 23:05*/#include <iostream>using namespace std;int main()
{int a, b, c;cin >> a >> b >> c;cout << c << " " << a << " " << b << endl;return 0;
}

T2. 成绩判定

给定一门课的考试分数,如果分数大于等于 60 60 60,则该门课成绩合格,记为 P,否者成绩不合格,记为 F

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

  • 输入
    一个整数 s s s,表示这门课的分数。( 0 ≤ s ≤ 100 0 ≤ s ≤ 100 0s100
  • 输出
    如果成绩合格,输出字母 P,否者输出字母 F
  • 样例输入
    59
    
  • 样例输出
    F
    

思路分析

此题考察分支结构比较大小,属于入门题。

此题只需要按照题目描述,将输入数据 s s s 60 60 60 进行比较即可。若 s ≥ 60 s \ge 60 s60,则输出 P,否则输出 F

/** Name: T2.cpp* Problem: 成绩判定* Author: Teacher Gao.* Date&Time: 2024/03/04 23:06*/#include <iostream>using namespace std;int main()
{int s;cin >> s;if (s >= 60) {cout << "P" << endl;}else {cout << "F" << endl;}return 0;
}

T3. 简单排序

依次输入 3 3 3 个整数 a a a b b b c c c,将他们从小到大的顺序输出。

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

  • 输入
    一行 3 3 3 个整数 a a a b b b c c c,以空格分隔。( 0 < a , b , c < 1 0 8 0 < a,b,c < 10^8 0<a,b,c<108
  • 输出
    一行 3 3 3 个整数,即将 a a a b b b c c c 从小到大排序的 3 3 3 个整数,整数之间以一个空格分隔。
  • 样例输入
    10 5 20
    
  • 样例输出
    5 10 20
    

思路分析

此题考查分支结构,以及三个数排序,有一定的难度,属于基础应用题。此题需要用到打擂台的思想,可以参考 2022 年 6 月青少年软编等考 C 语言一级真题解析中的 T3。

我们可以先用 bc 分别和 a 打擂台,之后 a 将存储 3 3 3 个数中的最小值。需要注意的是,bc 有可能打赢 a,从而将 a 的值覆盖掉。为了避免 a 的值被覆盖,导致数据丢失,我们在打擂台时可以将两个变量的值进行交换。在两轮擂台打完,决出最小值之后,只需要让 bc 再打一次擂台,决出大小即可完成排序的任务。

/** Name: T3.cpp* Problem: 简单排序* Author: Teacher Gao.* Date&Time: 2024/03/04 23:08*/#include <iostream>using namespace std;int main()
{int a, b, c;cin >> a >> b >> c;if (b < a) {swap(a, b);}if (c < a) {swap(a, c);}if (c < b) {swap(b, c);}cout << a << " " << b << " " << c << endl;return 0;
}

T4. 数字求和

给定一个正整数 a a a,以及另外的 5 5 5 个正整数,问题是:这 5 5 5 个整数中,小于 a a a 的整数的和是多少?

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

  • 输入
    输入一行,只包括 6 6 6 个小于 100 100 100 的正整数,其中第一个正整数就是 a a a
  • 输出
    输出一行,给出一个正整数,是 5 5 5 个数中小于 a a a 的数的和。
  • 样例输入
    10 1 2 3 4 11
    
  • 样例输出
    10
    

思路分析

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

此题需要依次判断输入的每个数 x。若 x 小于 a,则将 x 累加。

/** Name: T4.cpp* Problem: 数字求和* Author: Teacher Gao.* Date&Time: 2024/03/04 23:09*/#include <iostream>using namespace std;int main()
{int a, x;cin >> a;int sum = 0;for (int i = 1; i <= 5; i++) {cin >> x;if (x < a) {sum += x;}}cout << sum << endl;return 0;
}

T5. 数 1 的个数

给定一个十进制正整数 n n n,写下从 1 1 1 n n n 的所有整数,然后数一下其中出现的数字 “ 1 1 1” 的个数。

例如当 n = 2 n=2 n=2 时,写下 1 1 1 2 2 2。这样只出现了 1 1 1 个 “ 1 1 1”;当 n = 12 n=12 n=12 时,写下 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9 10 10 10 11 11 11 12 12 12。这样出现了 5 5 5 个 “ 1 1 1”。

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

  • 输入
    正整数 n n n。( 1 ≤ n ≤ 10000 1 \le n \le 10000 1n10000
  • 输出
    一个正整数,即 “ 1 1 1” 的个数。
  • 样例输入
    12
    
  • 样例输出
    5
    

思路分析

此题考查循环结构,以及数位拆分,属于一般应用题。思路与 2021 2021 2021 6 6 6 月份考试的 T4 相似,难度略低,可以参考 2021 年 6 月青少年软编等考 C 语言一级真题解析中的 T4。

需要注意的是此题在数位拆分过程中不能使用 break,因为需要统计数字 1 1 1 出现的次数,而不是包含数字 “ 1 1 1” 的数的个数。

/** Name: T5.cpp* Problem: 数 1 的个数* Author: Teacher Gao.* Date&Time: 2024/03/04 23:10*/#include <iostream>using namespace std;int main()
{int n;cin >> n;int tot = 0;for (int i = 1; i <= n; i++) {int t = i;while (t) {if (t % 10 == 1) {tot++;}t /= 10;}}cout << tot << endl;return 0;
}

这篇关于2022 年 9 月青少年软编等考 C 语言一级真题解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/783718

相关文章

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

MyBatis中$与#的区别解析

《MyBatis中$与#的区别解析》文章浏览阅读314次,点赞4次,收藏6次。MyBatis使用#{}作为参数占位符时,会创建预处理语句(PreparedStatement),并将参数值作为预处理语句... 目录一、介绍二、sql注入风险实例一、介绍#(井号):MyBATis使用#{}作为参数占位符时,会

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

PostgreSQL的扩展dict_int应用案例解析

《PostgreSQL的扩展dict_int应用案例解析》dict_int扩展为PostgreSQL提供了专业的整数文本处理能力,特别适合需要精确处理数字内容的搜索场景,本文给大家介绍PostgreS... 目录PostgreSQL的扩展dict_int一、扩展概述二、核心功能三、安装与启用四、字典配置方法

Go语言中make和new的区别及说明

《Go语言中make和new的区别及说明》:本文主要介绍Go语言中make和new的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 概述2 new 函数2.1 功能2.2 语法2.3 初始化案例3 make 函数3.1 功能3.2 语法3.3 初始化

深度解析Java DTO(最新推荐)

《深度解析JavaDTO(最新推荐)》DTO(DataTransferObject)是一种用于在不同层(如Controller层、Service层)之间传输数据的对象设计模式,其核心目的是封装数据,... 目录一、什么是DTO?DTO的核心特点:二、为什么需要DTO?(对比Entity)三、实际应用场景解析

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性: