美文网首页
Goc比赛模拟2

Goc比赛模拟2

作者: 樱芷 | 来源:发表于2024-05-02 10:16 被阅读0次

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;

}

相关文章

网友评论

      本文标题:Goc比赛模拟2

      本文链接:https://www.haomeiwen.com/subject/pusqfjtx.html