202403C语言二级
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
青少年软件编程(C语言)等级考试试卷(二级)
分数:100 题数:5
一、编程题(共5题,共100分)
1.满足条件的数的累加2
现有n个整数,将其中个位数为k的数进行累加求和。
时间限制:1000
内存限制:65536
输入
第一行1个整数n。
(0 < n < 1000)第二行n个非负整数,以空格分隔,每个数不大于100000。
第三行1个整数k。
(0 ≤ k ≤ 9)
输出
输出满足题目要求的累加和。
样例输入
样例输出
试题编号:20240323-2-01
试题类型:编程题
标准答案:
试题难度:一般
试题解析:
展示地址:点击浏览
考生答案:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
int a[n+1];
for(int i=1;i<=n;i++)
{
cin>>a[i];
int k;
cin>>k;
int sum=0;
for(int i=1;i<=n;i++)
{
if(a[i]%10==k)
{
sum+=a[i];
}
}
cout<<sum;
return 0;
}
考生得分:20
是否评分:已评分
评价描述:
2.统一文件名
小A在命名文件的时候经常不注意大小写,格式比较混乱。
现要求你写一个程序将目录下的文件统一规范的格式,即文件名的第一个字符如果是字母要大写,其他字母小写。
如将Test、test整理成Test。
时间限制:1000
内存限制:65536
输入
第一行一个数字n,表示有n个文件名要统一,n不超过100。
接下来n行,每行一个单词,长度不超过20,表示文件的名字。
文件名由字母、数字和-组成。
输出
n行,每行一个单词,对应统一后的文件名。
样例输入
样例输出
试题编号:20240323-2-02
试题类型:编程题
标准答案:
试题难度:一般
试题解析:
展示地址:点击浏览
考生答案:(此题已作答)
考生得分:0
是否评分:已评分
评价描述:
b杯
“Lab杯”乒乓球赛就要在PKU的实验室之间举行了。
人工智能实验室的学生都是乒乓球的狂热分子,都强烈希望代表实验室去比赛。
但是有余名额限制,他们之中只能由一个人被选作代表。
为了让选择的过程公平,他们决定打一次单循环赛,每一对学生之间都打一场五局三胜的比赛。
赢得最多比赛的人就将代表实验室去比赛。
现在Ava手里有一份表,表里面记录了每一场比赛的比分。
她应该让谁去比赛?
时间限制:5000
内存限制:131072
输入
输入包含一组测试数据。
第一行包含n(2 ≤n≤ 100),实验室里学生的数目。
接下来给出一个n ×n矩阵A。
矩阵的每一个元素都是0、1、2、3中的一个。
第i行第j列的元素a ij是第i个学生在和第j个学生的比赛中赢的局数。
a ij和a ji(i≠j)正好有一个是3,另外一个小于3。
矩阵的所有对角线元素都是0。
输出
输出赢了最多比赛的学生的编号。
如果有平分,选择编号最小的。
样例输入
试题编号:20240323-2-03
试题类型:编程题
标准答案:
试题难度:一般
试题解析:
展示地址:点击浏览
考生答案:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,score=-1,ans=0;
cin>>n;
for(int i=1;i<=n;i++){
int sum=0,x;
for(int j=1;j<=n;j++){
cin>>x;
if(x>=3)
sum++;
}
if(sum>score){
score=sum;
ans=i;
}
}
cout<<ans<<endl;
return 0;
}
考生得分:20
是否评分:已评分
评价描述:
4.整数排序
给定10个整数的序列,要求对其重新排序。
排序要求:
1.奇数在前,偶数在后;
2.奇数按从大到小排序;
3.偶数按输入顺序逆序排序。
时间限制:1000
内存限制:65536
输入
输入一行,包含10个整数,彼此以一个空格分开,每个整数的范围是大于等于0,小于等于100。
输出
按照要求排序后输出一行,包含排序后的10个整数,数与数之间以一个空格分开。
样例输入
样例输出
试题编号:20240323-2-04
试题类型:编程题
标准答案:
试题难度:一般
试题解析:
展示地址:点击浏览
考生答案:
#include<bits/stdc++.h>
using namespace std;
bool f(int a,int b)
{
return a>b;
}
int main()
{
int a[10],b[10],c[10];
int j,k;
j=k=0;
for(int i=0;i<10;i++)
{
cin>>a[i];
}
for(int i=0;i<10;i++)
{
if(a[i]%2!=0)
{
b[j++]=a[i];
else
{
c[k++]=a[i];
}
}
sort (b,b+j,f);
for(int i=0;i<j;i++)
{
cout<<b[i]<<" " ;
}
for(int i=k-1;i>=0;i--)
{
cout<<c[i]<<" ";
}
return 0;
}考生得分:20
是否评分:已评分
评价描述:
5.石头剪刀布
石头剪刀布是常见的猜拳游戏。
石头胜剪刀,剪刀胜布,布胜石头。
如果两个人出拳一样,则不分胜负。
一天,小A和小B正好在玩石头剪刀布。
已知他们的出拳都是有周期性规律的,比如:“石头-布-石头-剪刀-石头-布-石头-剪刀……”,就是以“石头-布-石头-剪刀”为周期不断循环的。
请问,小A和小B比了N轮之后,谁赢的轮数多?
时间限制:1000
内存限制:65536
输入
输入包含三行。
第一行包含三个整数:N,NA,NB,分别表示比了N轮,小A出拳的周期长度,小B出拳的周期长度。
0 < N,NA,NB < 100。
第二行包含NA个整数,表示小A出拳的规律。
第三行包含NB个整数,表示小B出拳的规律。
其中,0表示“石头”,2表示“剪刀”,5表示“布”。
相邻两个整数之间用单个空格隔开。
输出
输出一行,如果小A赢的轮数多,输出A;如果小B赢的轮数多,输出B;如果两人打平,输出draw。
样例输入
样例输出
提示
对于测试数据,猜拳过程为:A:0 2 5 0 2 5 0 2 5 0 B:0 5 0 2 0 5 0 2 0 5 A赢了4轮,B赢了2轮,双方打平4轮,所以A赢的轮数多。
试题编号:20240323-2-05
试题类型:编程题
标准答案:
试题难度:一般
试题解析:
展示地址:点击浏览
考生答案:
考生得分:0
是否评分:已评分
评价描述:。