青少年软件编程(C语言)等级考试试卷(五级)
分数:100  题数:4
一、编程题(共4题,共100分)
电脑自带c语言编程软件
1.
漫漫回国路
 
试题编号:-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.
装箱问题
 
试题编号:-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;
      }
      else
      {
        xx=7+(5-a[2])*4;
        a[2]=0;
        if( xx<=a[1]) a[1]=a[1]-xx;
        else a[1]=0;
      }
      }
  }
    ans=ans+ a[2]/9;
    a[2]=a[2]%9;
    if( a[2]>0)
    {
    ans++;
    xx= 36-a[2]*4;
    a[2]=0;
    if( xx<=a[1]) a[1]=a[1]-xx;
    else a[1]=0;
    }
    ans= ans+ a[1]/36;
    a[1]=a[1]%36;
    if(a[1]>0)
    {
    ans++;
    a[1]=0;
    }
    printf("%d\n",ans);
  }
  return 0;
}