202412 青少年软件编程等级考试C/C++ 二级真题答案及解析

第 1 题
逆行
题目描述

网上有个段子说:妻子在家听广播,听到某高速路上有一辆车在逆行,想到丈夫在那条高速上行驶,就打电话对丈夫说:"老公啊,你走的那条高速上有一辆车在逆行,你小心点。"她丈夫说:"何止啊!我看好几百辆车都在逆行!"

现在我们查了一下高速公路上拍到的好几百辆车的时速,发现有的朝东开,有的朝西开,都不知道是谁在逆行了...... 于是让我们简单粗暴地解决这个问题:朝哪个方向开的车多,哪个方向就是正确的,另一方就判为逆行(开玩笑的千万嫑当真)。现在就请你统计一下,有多少辆车是逆行的。

输入

输入第一行给出一个正整数 N,为高速公路上拍到的车辆数,题目保证这是一个不超过 1000 的奇数。第二行给出 N 个整数,为每辆车的时速。我们用正数表示朝东开的时速,负数表示朝西开的时速。题目保证时速(绝对值)均不超过 200,并且时速没有 0,即没有一辆车是停在高速公路上不动的。

输出

在一行中输出逆行的车辆数。

样例输入

7

85 -90 110 95 112 -120 -70

样例输出

3

参考答案:

#include <bits/stdc++.h>
using namespace std;
int main() {
    int N;
    cin>>N;
    int dong=0;                
    int xi=0;               
    for(int i=0;i<N;i++){
        int a;
        cin>>a;
        if(a>0) dong++;   
        else if(a<0) xi++;
    }
    if(dong>xi) cout<<xi;
    else if(dong<xi) cout<<dong;
    return 0;
}

第 2 题
为 i 做 e
题目描述

"为 i 做 e"是最近新出的流行梗。这里的 i 和 e 指 MBTI 人格测试中的不同性格,i 是社恐,e 是外向。"为 i 做 e"就是在一群内向的人中促使自己变成外向(奇奇怪怪无用的知识又增加了)。

给定某次大型活动中的餐桌安排,请你判断一下哪几桌的客人需要"为 i 做 e"了。

时间限制:6000 内存限制:65536

输入

输入第一行首先给出正整数 n(≤ 105),随后 n 行,每行给出一个人的代号和其性格,其中代号由 8 位数字组成,性格是单个字母 i 或 e,其间以空格分隔。 接下来是餐桌安排。首先给出正整数 m(≤ 103),为餐桌数量,随后 m 行,每行给出一个正整数 k(≤ 10)以及该桌 k 位客人的代号,用空格分隔。第 i 行对应的是第 i 桌的信息(1 ≤ i ≤ m)。题目保证没有人在餐桌安排中重复出现,且餐桌上每个人的性格都已给出。

输出

如果一桌客人全是 i 人,则意味着有人要"为 i 做 e"了。请在一行中按递增序输出这些桌的桌号。数字间以 1 个空格分隔,行首尾不得有多余空格。如果这样的餐桌不存在,则在一行中输出 None。

样例输入

样例1:

10

00000000 i

12345678 e

23468270 i

78827341 e

67476289 i

35748108 e

99999999 i

40926483 i

88472901 i

55032849 i

3

3 00000000 67476289 99999999

4 12345678 78827341 35748108 55032849

3 23468270 40926483 88472901

样例2:

10

00000000 i

12345678 e

23468270 i

78827341 e

67476289 i

35748108 e

99999999 i

40926483 i

88472901 i

55032849 i

2

4 78827341 35748108 55032849 00000000

6 12345678 67476289 99999999 23468270 40926483 88472901

样例输出

样例1:

1 3

样例2:

None

参考答案:

#include <bits/stdc++.h>
using namespace std;
int main() {
    int n;
    cin>>n;
    int a[n][2];            
    for(int i=0;i<n;i++){
        int x;
        char y;
        cin>>x>>y;
        a[i][0]=x;                
        if(y=='i') a[i][1]=1;     
        else if(y=='e') a[i][1]=0;   
    }
    int m;
    cin>>m;
    int b[m][11];               
    for(int i=0;i<m;i++){
        int k;
        cin>>k;
        b[i][0]=k;               
        for(int j=1;j<=k;j++){    
            cin>>b[i][j];
        }
    }
    int c[10]={0};                
    int biao=0;                   
    for(int i=0;i<m;i++){        
        int k=b[i][0];
        int ir=1;                    
        for(int j=1;j<=k;j++){        
            int dh=b[i][j];           
            for(int p=0;p<n;p++){    
                if(a[p][0]==dh){    
                    ir=a[p][1];        
                    break;
                }
            }
            if(ir==0){                
                break;
            }
        }
        if(ir==1){                
            c[biao]=i+1;       
            biao++;               
        }
    }
    
    if(biao==0) cout<<"None";    
    else{                        
        for(int i=0;i<biao;i++){
            if(i==0) cout<<c[i];
            else cout<<" "<<c[i];
        }
    }
    return 0;
}

================================================

答案和更多内容请查看网站:【试卷中心 -- C/C++编程 二级】

网站链接

青少年软件编程历年真题模拟题实时更新

================================================

相关推荐
羚羊角uou8 分钟前
【C++】多态详细讲解
开发语言·c++
利刃大大42 分钟前
【C++】string类的模拟实现
开发语言·c++
数据小小爬虫44 分钟前
利用 Python 爬虫获取按关键字搜索淘宝商品的完整指南
开发语言·爬虫·python
一只小松许️1 小时前
C++ CRTP:奇异递归模板模式的原理与应用
开发语言·c++
小乌龟不会飞1 小时前
C++的 I/O 流
c++·io流
神秘的t1 小时前
javaEE初阶————多线程初阶(3)
java·开发语言
DY009J1 小时前
鸿蒙生态潮起:开发者的逐浪之旅
开发语言·华为·harmonyos
澄岚明雪2 小时前
力扣经典题目之14. 最长公共前缀
算法·leetcode·职场和发展
muxue1782 小时前
python:递归函数与lambda函数
开发语言·python·算法
夕珩2 小时前
Lambda 表达式
java·开发语言·jvm·windows