141.GoC测试模拟题(2017.3.23)第1题:领奖台
题目描述
小C同学在学校GoC编程比赛中获得了一等奖,他希望在领奖会上能站在一个漂亮的领奖台上。设计的领奖台如下图,请你帮忙使用GoC编程绘制。
说明: 上图中红色数字是标明尺寸的,不需要画出。 总宽180,上面3段每个宽60。 总高90,每个台阶高30。
输入格式
空。
输出格式
相应的领奖台图形。
题目解答:
int main(){
p.bk(90).lt(90).fd(180).rt(90);
for(int i=0;i<3;i++)
p.fd(30).rt(90).fd(60).lt(90);
return 0;
}
142.GoC测试模拟题(2017.3.20)第2题:花朵
题目描述
看到你绘制的漂亮领奖台,小C觉得应该再摆放些有圆形花瓣的花朵更满意。小C设计了几种不同颜色、花瓣的半径和花瓣个数的“花朵”(见输入输出样例),但不确定哪种好看些。 为了研究什么颜色、花瓣半径、花瓣个数的花更好看,下C需要编制一个通用的程序:键盘输入颜色、半径和个数,就可以画出相应的花朵。 注意:每个花瓣的圆心到中点的距离是半径的3倍。
输入格式
一行3个空格分隔开的正整数:分别表示颜色、半径和个数。
输出格式
相应的花朵图形。
输入/输出例子1
输入:1 30 5
输出:
输入:3 30 8
输出:
输入/输出例子3
输入:7 20 12
输出:
题目解答:
int main(){
int c,r,n;
cin>>c>>r>>n;
p.c(c);
for(int i;i<n;i++)
p.fd(3*r).oo(r,c).bk(3*r).rt(360.0/n);
return 0;
}
143.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[110];
for(int i=0;i<110;i++)
a[i]=0;
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.hide();
for(int i=0;i<maxlen;i++){
int h=(i+maxi)*10;
p.fd(h).rt(90).fd(10).rt(90).fd(h);
p.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);
p.rt(90).fd(10).bk(10).rt(90);
}
return 0;
}
144.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;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{ p.fd(a).rt(90).fd(a).rt(90).fd(a).rt(90);
p.rt(90);
}
p.lt(90).fd(a*n).rt(90);
p.up().bk(a).down().hide();
}
return 0;
}
网友评论