0
点赞
收藏
分享

微信扫一扫

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

目录

T1. 日期输出

给定两个整数,表示一个日期的月和日。请按照 "MM-DD" 的格式输出日期,即如果月和日不到 2 2 2 位时,填补 0 0 0 使得满足 2 2 2 位。

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

  • 输入
    2 2 2 个整数 m , d m,d m,d 0 < m ≤ 12 , 0 < d ≤ 31 0 < m \le 12, 0 < d \le 31 0<m12,0<d31)。数据保证日期合法。
  • 输出
    按照题目要求输出日期
  • 样例输入
    7 18
    
  • 样例输出
    07-18
    

思路分析

此题考察格式化输入输出,属于入门题。

使用格式化输出 printf("%02d", ...); 可以做到题目要求的效果。简单解释一下

  • %d 表示以十进制形式输出,这是我们常用的格式。
  • %2d 表示以十进制形式输出,场宽为 2 2 2(输出数字所占用的最小长度为 2 2 2),不足 2 2 2 位的数则右对齐输出,左侧自动补充空格,超出 2 2 2 位的数按实际数字输出。
  • %02d 表示以十进制形式输出,场宽为 2 2 2,不足 2 2 2 位的数则右对齐输出,左侧自动补 0,超出 2 2 2 位的数按实际数字输出。

此外,使用 cout << setfill('0') << setw(2) << ...; 也可以达到题目要求的效果。其中 setfill('0') 表示设置填充字符为 '0'setw(2) 表示设置场宽为 2 2 2,默认右对齐输出。

/*
 * Name: T1.cpp
 * Problem: 日期输出
 * Author: Teacher Gao.
 * Date&Time: 2024/02/28 22:50
 */

#include <cstdio>

using namespace std;

int main()
{
    int a, b;
    scanf("%d%d", &a, &b);
	
    printf("%02d-%02d", a, b);

    return 0;
}

T2. 计算 (a + b) × (c - b) 的值

给定 3 3 3 个整数 a a a b b b c c c,计算表达式 ( a + b ) × ( c − b ) (a+b) \times (c-b) (a+b)×(cb) 的值。

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

  • 输入
    输入仅一行,包括三个整数 a a a b b b c c c,数与数之间以一个空格分开。 − 10000 < a , b , c < 10000 -10000 < a,b,c < 10000 10000<a,b,c<10000
  • 输出
    输出一行,即表达式的值
  • 样例输入
    2 3 5
    
  • 样例输出
    10
    

思路分析

此题考查算术运算,属于入门题。只需要按照题意进行输入,并且按照题目中的式子进行计算并输出即可。

/*
 * Name: T2.cpp
 * Problem: 计算 (a + b)*(c - b) 的值
 * Author: Teacher Gao.
 * Date&Time: 2024/02/29 03:10
 */

#include <iostream>

using namespace std;

int main()
{
    int a, b, c;
    cin >> a >> b >> c;

    cout << (a + b) * (c - b);

    return 0;
}

T3. 有一门课不及格的学生

给出一名学生的语文和数学成绩,判断他是否恰好有一门课不及格(成绩小于 60 60 60 分)。

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

  • 输入
    一行,包含两个在 0 0 0 100 100 100 之间的整数,分别是该生的语文成绩和数学成绩。
  • 输出
    若该生恰好有一门课不及格,输出 1 1 1;否则输出 0 0 0
  • 样例输入
    50 80
    
  • 样例输出
    1
    

思路分析

此题考察分支结构与逻辑运算,属于入门题。

需要注意的是题目要求判断该学生是否恰好有一门课不及格,也就是说会有两种情况,即语文及格但是数学不及格,或者语文不及格但是数学及格。输入两个成绩 ab 之后,判断表达式 a >= 60 && b < 60 || a < 60 && b >= 60 是否成立,若成立则输出 1,否则输出 0。为了代码思路的清晰,参考代码将两种情况分开进行了判断。

/*
 * Name: T3.cpp
 * Problem: 有一门课不及格的学生
 * Author: Teacher Gao.
 * Date&Time: 2024/02/29 03:12
 */

#include <iostream>

using namespace std;

int main()
{
    int a, b;
    cin >> a >> b;

    if (a >= 60 && b < 60) {
		cout << 1 << endl;
	}
    else if (a < 60 && b >= 60) {
		cout << 1 << endl;
	}
    else {
		cout << 0 << endl;
	}

    return 0;
}

T4. 特殊求和

此题为 2021 年 6 月一级第四题原题,见 2021 年 6 月青少年软编等考 C 语言一级真题解析中的 T4。

T5. 比 n 小的最大质数

此题为 2021 年 9 月一级第五题原题,见 2021 年 9 月青少年软编等考 C 语言一级真题解析中的 T5。

举报

相关推荐

0 条评论