GoC测试模拟题(2017.3.23)第1题:领奖台
题目描述
小C同学在学校GoC编程比赛中获得了一等奖,他希望在领奖会上能站在一个漂亮的领奖台上。设计的领奖台如下图,请你帮忙使用GoC编程绘制。
说明: 上图中红色数字是标明尺寸的,不需要画出。 总宽180,上面3段每个宽60。 总高90,每个台阶高30。
输入格式
空。
输出格式
相应的领奖台图形。
int main(){
p.speed(9).fd(30).rt(90).fd(60).lt(90).fd(30).rt(90).fd(60);
p.lt(90).fd(30).rt(90).fd(60).lt(90).bk(90).lt(90).fd(180).hide();
return 0;
}
GoC测试模拟题(2017.3.20)第2题:花朵
题目描述
看到你绘制的漂亮领奖台,小C觉得应该再摆放些有圆形花瓣的花朵更满意。小C设计了几种不同颜色、花瓣的半径和花瓣个数的“花朵”(见输入输出样例),但不确定哪种好看些。 为了研究什么颜色、花瓣半径、花瓣个数的花更好看,下C需要编制一个通用的程序:键盘输入颜色、半径和个数,就可以画出相应的花朵。 注意:每个花瓣的圆心到中点的距离是半径的3倍
输入格式
一行3个空格分隔开的正整数:分别表示颜色、半径和个数。
输出格式
相应的花朵图形。
输入/输出例子1
输入:
1 30 5
输出:
输入/输出例子2
输入:
3 30 8
输出:
输入/输出例子3
输入:
7 20 12
输出:
int main(){
int c,a,n;
cin>>c>>a>>n;
p.c(c);
for(int i=1;i<=n;i++){
p.fd(3*a).oo(a).bk(3*a).rt(360.0/n);
}
return 0;
}
GoC测试模拟题(2017.3.20)第3题:拱桥
题目描述
小C的妹妹喜欢玩积木,现在有N根木头,宽度都是10,高度有各种各样的。比如,N=7,高度分别是10,20,40,20,30,30,40。如下图:
小C的妹妹的妹妹想用这些积木拼出一个拱桥,拱桥需要先不断上升再不断下降。上升时每次增加高度10,下降时每次减低高度10,并且上升和下降的个数要一样多(这样图形就左右对称,比较好看)。拼出的桥越长越好。比如使用上面提到的7个木头,可以拼出下面的拱桥:
这个问题比较难,她要求小C帮她架设一座最长的拱桥。 为了能画出不同形状的桥,聪明的小C决定用GoC编写个画拱桥的程序,从键盘读入N和每个木头的高度,然后画出相应的最长拱桥。
输入格式
第一行1正整数N:表示木头的个数,范围在[1..20]。 第二行,N个正整数(都是10的倍数),表示每个木头的长度,范围在[10..100]。
输出格式
相应的最长拱桥图形(注意,桥的中间2个木头高度一定相同)。 如果有多种答案,画出高度低的拱桥。
输入/输出例子1
输入:
7
30 40 40 50 30 40 40
输出:
输入/输出例子2
输入:
7
30 40 60 50 30 50 60
输出:
输入/输出例子3
输入:
14
20 30 20 40 60 40 30 50 90 70 80 70 90 80
输出:
int main(){
int n,x,a[999];
cin>>n;
for(int i=0;i<n;i++){
cin>>x;
a[x/10]++;
}
int maxi,maxlen;
maxlen=0;
for(int i=1;i<=10;i++)
if(a[i]>1){
int len=1;
for(int j=i+1;j<=10;j++){
if(a[j]>1){
len++;
}
else{
break;
}
}
if (len>maxlen){
maxlen=len;
maxi=i;
}
}
p.speed(9).hide();
for(int i=0;i<maxlen;i++){
int h=(i+maxi)*10;
p.fd(h).rt(90).fd(10).rt(90).fd(h).rt(90).fd(10).bk(10).rt(90);
}
for(int i=maxlen-1;i>=0;i--){
int h=(i+maxi)*10;
p.fd(h).rt(90).fd(10).rt(90).fd(h).rt(90).fd(10).bk(10).rt(90);
}
return 0;
}
GoC测试模拟题(2017.3.23)第4题:棋盘
题目描
小C同学喜欢下五子棋,在goc课上想画一个N*N的棋盘,每个小正方形的边长是M。例如:N=3,M=50时棋盘如下图:
输入格式
一行2个空格分隔开的正整数:分别表示棋盘的尺寸、小方格的边长。 N范围[1,10]。M范围[1,100]
输出格式
相应的棋盘。
输入/输出例子1
输入:
4 30
输出:
输入/输出例子2
输入:
6 20
输出:
int main(){
int n,a;
cin>>n>>a;
p.speed(10).hide().moveTo(-380,300);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
p.fd(a).rt(90).fd(a).rt(90).fd(a).rt(90).rt(90);
}
p.lt(90).fd(a*n).rt(90).up().bk(a).down();
}
return 0;
}
GoC测试模拟题(2017.3.23)第5题:台阶
题目描述
小C的妹妹喜欢玩积木,现在有2根木头,宽度都是30,高度都不相同。比如高度分别是60, 40。如下图:
小C的妹妹的妹妹想用这些积木放在一起拼出一个台阶,台阶需要不断上升。上面2个积木可以拼成下面的图形:
输入格式
一行2个不同的正整数a,b:表示每个木头的高度,范围在[10..100]。
输出格式
相应的台阶图形。
输入/输出例子1
输入:
10 50
输出:
输入/输出例子2
输入:
70 40
输出:
int main(){
int a,b,tmp;
cin>>a>>b;
if(a>b){
tmp=a;
a=b;
b=tmp;
}
p.speed(9).fd(a).rt(90).fd(30).rt(90).fd(a).rt(90).fd(30).rt(90);
p.up().rt(90).fd(30).lt(90).down();
p.fd(b).rt(90).fd(30).rt(90).fd(b).rt(90).fd(30);
return 0;
}
GoC测试模拟题(2017.3.23)第6题:同心圆
题目描述
小C要画红绿黄3个不同半径的同心圆,要求红色(1号)的是最大半径圆,绿色(3号)的是第2大半径的圆,黄色(5号)的是最小半径的圆。但输入是的的3个数可能并没有从大到小。比如输入的3个半径分别是50,30,40:
这3个圆一定要按照正确的次序才能画出正确的图形。比如你最后画最大的圆形,就只能看见一个红色的大圆。 请你帮小C编程解决这个问题。
输入格式
一行3个不同的正整数a,b,c:表示每圆的半径,范围在[10..100]。
输出格式
相应的同心圆。
输入/输出例子1
输入:
50 30 40
输出:
输入/输出例子2
输入:
40 70 10
输出:
int main(){
int a,b,c,t;
cin>>a>>b>>c;
if(a<b){
t=a;
a=b;
b=t;
}
if(a<c){
t=a;
a=c;
c=t;
}
if(b<c){
t=b;
b=c;
c=t;
}
p.oo(a,1).oo(b,3).oo(c,5);
return 0;
}