语言提高组第二次测试题答案版.docx
《语言提高组第二次测试题答案版.docx》由会员分享,可在线阅读,更多相关《语言提高组第二次测试题答案版.docx(8页珍藏版)》请在冰豆网上搜索。
语言提高组第二次测试题答案版
语言提高组第二次测试题
2018-7-14
第一题.收集瓶盖赢大奖(提交文件名:
reward.cpp)(100分)
【问题描述】
某饮料公司最近推出了一个“收集瓶盖赢大奖”的活动:
如果你拥有10个印有“幸运”、或20个印有“鼓励”的瓶盖,就可以兑换一个神秘大奖。
现分别给出你拥有的印有“幸运”和“鼓励”的瓶盖数,判断是否可以去兑换大奖。
【输入】
输入文件名为reward.in。
第一行,一个正整数n,表示接下来有n行数据;
以下n行,每行包含两个整数,分别是印有“幸运”和“鼓励”的瓶盖数,用一个空格隔开。
【输出】
输出文件名为reward.out。
对于每行数据输出一行。
若可以兑换大奖,输出True,否则输出False。
【输入输出样例】
reward.in
reward.out
2
1119
311
True
False
【数据范围】
对于50%的数据:
n<=1000;
对于100%的数据:
n<=10000。
第四题、生日(提交文件:
birthday.cpp)(100分)
【问题描述】
小甜甜的生日是YYYY年MM月DD日,她想知道自己出生后第一万天纪念日的日期(出生日算第0天)。
【输入】
输入文件名为birthday.in。
从文件的第一行分别读入YYYY,MM,DD,其中1949<=YYYY<=2018,日期绝对合法。
【输出】
输出文件名为birthday.out。
输出文件只有一行,即小甜甜生日第一万天以后的日期,格式为:
YYYY-MM-DD。
【输入样例】
20161031
【输出样例】
2044-3-18
语言提高组第二次测试题参考答案
【第一题】
#include
intmain()
{
intx,y,n;
freopen("reward.in","r",stdin);
freopen("reward.out","w",stdout);
scanf("%d",&n);
for(inti=1;i<=n;i++)
{
scanf("%d%d",&x,&y);
if((x>=10)||(y>=20))
printf("True\n");
else
printf("False\n");
}
fclose(stdin);
fclose(stdout);
return0;
}
【第二题】
#include
usingnamespacestd;
intmain()
{
charch,ch1;
freopen("tuxing.in","r",stdin);
freopen("tuxing.out","w",stdout);
cin>>ch;
ch1=ch;
for(chari='A';i<=ch;i++)
{
for(charh='A';h
cout<<"";
for(charj=ch1;j>='A';j--)
cout<ch1--;
for(chark='A';k<=ch1;k++)
cout<cout<}
fclose(stdin);
fclose(stdout);
return0;
}
【第三题】
#include
#include
usingnamespacestd;
intmain(){
freopen("shulie.in","r",stdin);
freopen("shulie.out","w",stdout);
intn,p=4,q=7,t;
doublesum=0;
scanf("%d",&n);
for(inti=0;isum+=1.0*p/q;
//cout<
t=p;
p=q;
q=t+q;
}
printf("%d/%d\n%.2lf",t,q-t,sum);
fclose(stdin);
fclose(stdout);
return0;
}
【第四题】
#include
#include
usingnamespacestd;
intrn(inty){
if((y%400==0)||(y%100!
=0)&&(y%4==0))
return1;
elsereturn0;
}
intdays(intn,inty){
switch(y){
case1:
case3:
case5:
case7:
case8:
case10:
case12:
return31;break;
case4:
case6:
case9:
case11:
return30;break;
case2:
if(rn(n))return29;
elsereturn28;
}
}
intmain(){
freopen("birthday.in","r",stdin);
freopen("birthday.out","w",stdout);
intyy,mm,dd,s;
scanf("%d%d%d",&yy,&mm,&dd);
dd=dd+10000;s=days(yy,mm);
while(dd>s){
dd-=s;
mm++;
if(mm==13){mm=1;yy++;}
s=days(yy,mm);
}
printf("%d-%d-%d",yy,mm,dd);
fclose(stdin);
fclose(stdout);
return0;
}
【第五题】
#include
#include
#include
usingnamespacestd;
structscore{
stringname;
intshuxue;
intyuwen;
intyingyu;
intdili;
intzongfen;
};
intcmp(scorea,scoreb){
returna.zongfen>b.zongfen;
}
intmain(){
freopen("pjiang.in","r",stdin);
freopen("pjiang.out","w",stdout);
intn;
scorestu[50];
scanf("%d",&n);
for(inti=0;icin>>stu[i].name>>stu[i].shuxue>>stu[i].yuwen>>stu[i].yingyu>>stu[i].dili;
stu[i].zongfen=stu[i].shuxue+stu[i].yuwen+stu[i].yingyu+stu[i].dili;
}
sort(stu,stu+n,cmp);
for(inti=0;i<3;i++){
cout<}
fclose(stdin);
fclose(stdout);
return0;
}