青少年软件编程(C语言)等级考试试卷(五级)
分数:100 题数:4
一、编程题(共4题,共100分)
1.
漫漫回国路
试题编号:202012-020
试题类型:编程题
标准答案:
试题难度:一般
试题解析:
#include <bits/stdc++.h>
using namespace std;
int a[12][12];
int n,b[12];
int main()
{
int i,j,k,l;
scanf("%d",&k);
for(l=0;l<k;l++)
{
scanf("%d",&n);
for(i=1;i<=n;i++) for(j=1;j<=n;j++) scanf("%d",&a[i][j]);
for(i=1;i<=n;i++) b[i]=0;
b[1]=1;
for(i=1;i<=n;i++) if(b[i]==1)
{
for(j=1;j<=n;j++)
{
if(a[i][j]>0) b[j]=1;
}
}
if(b[n]==1) printf("YES\n");
else printf("NO\n");
}
return 0;
}
2.
装箱问题
试题编号:202012-021
试题类型:编程题
标准答案:
试题难度:一般
试题解析:
#include<cstdio>
#include<cstring>
using namespace std;
int a[7];
int main()
{
int x,xx,i,ans;
while(1)
{
for(i=1;i<=6;i++)
{
scanf("%d",&a[i]);
}
if(a[1]==0 &&a[2]==0 &&a[3]==0 &&a[4]==0 &&a[5]==0 &&a[6]==0) break;
ans=0;
ans=a[6];
ans=ans+a[5];
xx=a[5]*11;
if(xx<=a[1]) a[1]=a[1]-xx;
else a[1]=0;
ans=ans+a[4];
x=a[4]*5;
if( x<=a[2])
{
a[2]=a[2]-x;
}
else
{
xx=4*(x -a[2]);
if( xx<=a[1]) a[1]=a[1]-xx;
else a[1]=0;
a[2]=0;
}
ans= ans+ a[3]/4;
a[3]=a[3]%4;
if( a[3]>0)
{
if( a[3]==3)
{
ans++;
if(a[2]>=1)
{
a[2]--;
xx=5;
if( xx<=a[1]) a[1]=a[1]-xx;
else a[1]=0;
}
else
{
xx=9;
if( xx<=a[1]) a[1]=a[1]-xx; else a[1]=0;
}
}
else if(a[3]==2)
{
ans++;
if( a[2]>=3)
{
a[2]-=3;
xx=6;
if( xx<=a[1]) a[1]=a[1]-xx;
else a[1]=0;
}
else
{
xx=6+ (3-a[2])*4;
a[2]=0;
if( xx<=a[1]) a[1]=a[1]-xx;
else a[1]=0;
}
}
else if(a[3]==1)
{
ans++;
if( a[2]>=5)
{
a[2]-=5;
xx=7;
if( xx<=a[1]) a[1]=a[1]-xx;
else a[1]=0
202012软件编程(C语言)真题——(5级)