第1题:领奖台(比赛模拟题)
题目描述
小C同学在学校GoC编程比赛中获得了一等奖,他希望在领奖会上能站在一个漂亮的领奖台上。设计的领奖台如下图,请你帮忙使用GoC编程绘制。
![](https://img.haomeiwen.com/i4906150/82558f42021e0bbc.png)
说明: 上图中红色数字是标明尺寸的,不需要画出。 总宽180,上面3段每个宽60。 第1台阶高30,第2台阶高20。
题目解答:
int main(){
p.fd(30).rt(90).fd(60).lt(90).fd(20).rt(90).fd(60).rt(90).fd(20).lt(90).fd(60).rt(90).fd(30).rt(90).fd(180);
return 0;
}
第2题:花朵(比赛模拟题)
题目描述
看到你绘制的漂亮领奖台,小C觉得应该再摆放些花朵更满意。小C设计了几种不同颜色、边长和边数的“多边形花朵”(见输入输出样例),但不确定哪种好看些。 为了研究什么颜色、边长和边数的花更好看,下C需要编制一个通用的程序:键盘输入颜色、边长和边数,就可以画出相应的花朵。
输入格式
一行3个空格分隔开的正整数:分别表示颜色、边长和边数。
输出格式
相应的花朵图形。
输入/输出例子1
输入:
2 50 4
输出:
![](https://img.haomeiwen.com/i4906150/cac9e17db9d9ffb4.png)
输入/输出例子2
输入:
3 35 7
输出:
![](https://img.haomeiwen.com/i4906150/3226716faaf4516d.png)
输入/输出例子3
输入:
6 30 12
输出:
![](https://img.haomeiwen.com/i4906150/11ed28b7a801b0f8.png)
题目解答:
int main(){
int a,b,c;
cin>>a>>b>>c;
p.c(a);
for(int i=0;i<c;i++)
{for(int j=0;j<3;j++)
p.fd(b).lt(360.0/3);
p.fd(b).rt(360.0/c);}
return 0;
}
第3题:拱桥(比赛模拟题)
题目描述
小C的妹妹喜欢画画,特别喜欢画各种各样的河流,然后要求小C帮她架设一座桥。已知桥是一些边长是a的阶梯构成桥面,并且左边有n个台阶,右边也有n个台阶,具体形状参见输入输出样例。 为了能画出不同形状的桥,聪明的小C决定用GoC编写个画拱桥的程序,从键盘读入a和n,然后画出相应的桥。
输入格式
一行2个空格分隔开的正整数:分别表示台阶长度a和台阶个数n。
输出格式
相应的拱桥图形。
输入/输出例子1
输入:
30 4
输出:
![](https://img.haomeiwen.com/i4906150/ff2f7158d522e887.png)
输入/输出例子2
输入:
20 7
输出:
![](https://img.haomeiwen.com/i4906150/eaad7e159b4a6c44.png)
输入/输出例子3
输入:
15 12
输出:
![](https://img.haomeiwen.com/i4906150/fafa298ee8734ccf.png)
题目解答:
int main(){
int a,n;
cin>>a>>n;
for(int i=0;i<n;i++)
p.fd(a).rt(90).fd(a).lt(90);
p.rt(90);
for(int j=0;j<n;j++)
p.fd(a).rt(90).fd(a).lt(90);
p.bk(2*a*n);
return 0;
}
第4题:轮廓(比赛模拟题)
题目描述
学校准备在颁奖会把这次比赛的前10名的成绩用图形表示出来。小C记得去年是用一个直方图的形式表示的,就是以输入的次序把每个成绩的分数作为高,画一个宽度为20的矩形。 假如输入的10个成绩是:100 90 70 60 80 95 120 105 95 71 ,绘制的图形如下。
这个图形是做在一个展板上的,经过一年的风吹雨淋,展板上的线条都褪色了,只能看出展板的轮廓。请你使用GoC编程,画出展板的轮廓。具体形状参见输入输出样例。
输入格式
一行10个空格分隔开的正整数:分别表示10名同学的比赛成绩。
输出格式
相应的展板轮廓。
输入/输出例子1
输入:
100 90 70 60 80 95 120 105 95 71
输出:
![](https://img.haomeiwen.com/i4906150/8fa4603ee222d5bc.png)
输入/输出例子2
输入:
50 30 20 90 80 100 60 70 110 120
输出:
![](https://img.haomeiwen.com/i4906150/d4f652d1dd0c3a6b.png)
题目解答:
int main(){
int a,d[12],n=10;
for(int i=0;i<n;i++)
cin>>d[i];
p.fd(d[0]).rt(90).fd(20).rt(90);
for(int i=1;i<n;i++)
p.fd(d[i-1]-d[i]).lt(90).fd(20).rt(90);
p.fd(d[n-1]).rt(90).fd(20*n);
return 0;
}
第5题:同心圆(比赛模拟题)
题目描述
学校准备在颁奖会把这次比赛的前10名的成绩用崭新的形状表示出来,这个艰巨的任务交给了小C。为了和以往不同,小C决定用每个学生的成绩作为半径画同心圆来表示。这个创新的举动需要你使用GoC编程,在一个黑色实心圆背景下,用10个红色圆表示成绩。具体形状参见输入输出样例。
输入格式
一行10个空格分隔开的正整数:分别表示10名同学的比赛成绩。每个数范围[1,1000]。
输出格式
相应的同心圆图形。
输入/输出例子1
输入:
80 100 90 60 68 70 71 72 73 74
输出:
![](https://img.haomeiwen.com/i4906150/ead2a78b8847bb2b.png)
输入/输出例子2
输入:
50 30 20 90 80 100 60 70 110 120
输出:
![](https://img.haomeiwen.com/i4906150/a8fe6bf1b0ba1e10.png)
题目解答:
int main(){
int a[11];
int b=0;
for(int i=0;i<10;i++)
{ cin>>a[i];
if(a[i]>b) b=a[i];
}
p.oo(b,0);
for(int i=0;i<10;i++)
p.o(a[i],1);
return 0;
}
第6题:手机号码(比赛模拟题)
题目描述
奶牛Bessie最近买了一台手机,它的手机号码是:13300303003,手机号码由11个数字组成。Bessie最近在上电脑课学了【复制】和【粘贴】功能,于是它打开word软件,把它的手机号码复制,然后粘贴了N次。 例如N=1时,是这样:13300303003 。 例如N=2时,是这样:1330030300313300303003。 例如N=3时,是这样:133003030031330030300313300303003。 如果N=4时,是这样:13300303003133003030031330030300313300303003。 现在给出了三个正整数:N,S,T。表示奶牛Bessie把它的手机号码复制粘贴了N次,然后奶牛要计算:第S个数字到第T个数字之间,有多少个数字3(包含第S个数字和第T个数字)?由于奶牛Bessie复制粘贴N次手机号码后已经眼花了,所以它希望你能写个程序来帮它计算,并用一个圆表示,你能做到吗?
输入格式
一行,三个正整数: N,S,T
【数据规模】
对于50%的数据, 1<=N<=1000, 1 <= S < T <= 11×N
对于100%的数据, 1<=N<=100000000, 1 <= S < T <= 11×N
输出格式
先计算出一个整数x,表示Bessie把手机号码复制粘贴N次后,第S个数字到第T个数字之间包含了多少个数字3(包含第S个数字和第T个数字)。 然后以x%15为颜色,20+x%199为半径,画一个实心圆。
输入/输出例子1
输入:
1 2 11
输出:
![](https://img.haomeiwen.com/i4906150/bdd3422012d20496.png)
输入/输出例子2
输入:
2 10 15
输出:
![](https://img.haomeiwen.com/i4906150/5e290df9818682cd.png)
题目解答:
int main(){
string s="13300303003";
int a[12],N,S,T;
{a[0]=0;
for(int i=1;i<11;i++)
if(s[i-1]=='3')a[i]=a[i-1]+1;
else a[i]=a[i-1];
cin>>N>>S>>T;
if(S>T){
N=S;
S=T;
T=N;
}
S--;
int ans=T/11*5+a[T%11];
ans=ans-S/11*5-a[S%11];
cout<<ans;
p.oo(ans%199+20,ans%15);
}
return 0;
}
郑重宣明:以上原题目,来源于https://www.51goc.com/index/index.html,题目答案均是本人作答。仅用于学习研究,不涉及商业用途。如有侵权,请联系本人删除。
网友评论