本文主要是介绍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 0≤s≤100) - 输出
如果成绩合格,输出字母P
,否者输出字母F
。 - 样例输入
59
- 样例输出
F
思路分析
此题考察分支结构比较大小,属于入门题。
此题只需要按照题目描述,将输入数据 s s s 与 60 60 60 进行比较即可。若 s ≥ 60 s \ge 60 s≥60,则输出 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。
我们可以先用 b
、c
分别和 a
打擂台,之后 a
将存储 3 3 3 个数中的最小值。需要注意的是,b
和 c
有可能打赢 a
,从而将 a
的值覆盖掉。为了避免 a
的值被覆盖,导致数据丢失,我们在打擂台时可以将两个变量的值进行交换。在两轮擂台打完,决出最小值之后,只需要让 b
和 c
再打一次擂台,决出大小即可完成排序的任务。
/** 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 1≤n≤10000) - 输出
一个正整数,即 “ 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 语言一级真题解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!