杨校老师竞赛课之青科赛GOC3-4年级组模拟题
1.山峰(程序填空)程序填空题
题目描述
编程画出山峰。
要求:两个正三角形,三角形边长分别是200、100,山峰的颜色为8号色。
int main() {// 绘制等边三角形(边长100):右转30度调整起始角度,颜色的色号是8号p.rt(30).c(8); // 绘制第一个等边三角形(逆时针方向)p.fd(100).rt(120); // 前进100单位,右转120度p.fd(100).rt(120); // 完成第二条边p.fd(100).rt(120); // 完成第三条边,回到起点// 绘制第二个等边三角形(与第一个共用一条边,顺时针方向)p.lt(60).fd(200); // 左转60度,前进200单位(新三角形的第一条边)p.lt(120).fd(200); // 左转120度,前进200单位(第二条边)p.lt(120).fd(200); // 左转120度,前进200单位(第三条边,回到起点)// 隐藏画笔,完成绘制p.hide(); return 0;
}
2. 八个圆(程序填空)程序填空题
题目描述
画一圈八个半径是50的粉色(9号色)圆,圆心位置到中心的距离是150。
int main() {// 初始化画笔状态 抬起画笔,避免绘制移动轨迹p.up(); // 执行8次循环,每次绘制一个带圆弧的八边形边 for(int i = 0; i < 8; i++) {// 向前移动150个单位(绘制边长)p.fd(150); // 绘制半径50、色号为9的圆p.o(50, 9);// 向后移动150单位返回起点(保持图形对称)p.bk(150); // 右转45度(八边形内角计算:360/8=45)p.rt(45); }return 0;
}
3.板凳
题目描述
编程画出如下图板凳,红色字为尺寸,不用画。
代码~略
4.奖台A
题目描述
小C同学看奥运会比赛时,觉得这个领奖奖台很好看。请你帮忙使用GoC编程绘制。
说明: 上图中红色数字是标明尺寸的,不需要画出。 总宽240,上面3段每个宽80。
代码~略
5.斜拉桥
题目描述
我国的港珠澳大桥是一座连接香港、广东珠海和澳门的桥隧工程,是世界上最长的跨海大桥。斜拉索桥架像一个中国结。
线条:颜色8,size10。答案如下图:
int main(){{// 隐藏画笔/箭头,避免显示绘制轨迹 p.hide(); // 将画笔移动到画布左侧(-150, 0)坐标 p.moveTo(-150,0); // 设置画笔颜色为8号色,画笔粗细为10像素p.c(8).size(10);// 绘制向右倾斜的箭头p.rt(5) // 向右旋转5度 .fd(300) // 向前绘制300像素长度的直线(箭头主干).up() // 抬起画笔(移动时不绘制).bk(30) // 向后移动30像素(定位到箭头头部起始点).down() // 放下画笔开始绘制.rt(120) // 向右旋转120度(开始绘制等边三角形箭头头部).fd(100) // 绘制第一条边.rt(120) // 继续右转120度.fd(100) // 绘制第二条边 .rt(120) // 完成三角形箭头头部的绘制 .up() // 抬起画笔.bk(170) // 后退170像素回到主干末端.down(); // 准备继续绘制 // 将画笔重置到画布中心(0, 0)p.moveTo(0,0); // 绘制向左倾斜的对称箭头p.lt(10) // 向左旋转10度(创建对称角度).fd(300) // 向前绘制主干 .up() // 抬起画笔 .bk(30) // 定位到箭头头部起始点 .down() // 开始绘制 .lt(120) // 向左旋转120度绘制三角形.fd(100) // 第一条边.lt(120) // 继续左转 .fd(100) // 第二条边 .lt(120) // 完成箭头头部.up() // 抬起画笔.bk(170) // 返回主干末端 .down(); // 准备后续绘制return 0;
}}
6.轮子
题目描述
画一个8根辐条的轮子,要求如下:
圆半径分别为200,170,30,颜色为0号色;
注意:图形是对称的,线条没有垂直向上的。
int main(){// 初始化画布设置 p.hide(); // 隐藏画笔光标 p.c(0); // 设置画笔颜色为黑色(0通常代表黑色)p.o(200); // 画笔绘制第一个圆形:200p.o(170); // 画笔绘制第二个圆形:170p.o(30); // 画笔绘制第三个圆形:30p.rt(22.5); // 初始向右旋转22.5度,为对称图形做角度偏移 // 绘制八边形对称结构 for(int i=1; i<=8; i++){p.rt(45) // 每次循环右转45度(8次循环完成360度).up() // 抬起画笔(移动时不绘制).fd(30) // 向前移动30单位(定位绘制起点).down() // 放下画笔(开始绘制).fd(140) // 绘制主分支(长度140单位).bk(140) // 后退140单位回到起点 .up() // 抬起画笔.bk(30) // 后退30单位回到初始位置 .down(); // 准备下一次绘制 }return 0;
}