涉及考试:计算机学会编程能力等级认证(GESP)、电子学会等级考试 活动内容:提供不同等级的真题供小朋友们选择练习 备考建议:根据自己备考的等级选择相应题目 附加价值:可作为白名单比赛的备考训练 本月打卡:本月打卡题目
绘制如下图形:

1、画一个由两个直角三角形组成的正方形,边长为180像素;
2、左上三角形填充为黄色,右下三角形填充为红色;
3、设置画笔速度为1,线条为黑色;
4、画图结束,隐藏并停止画笔。
参考程序:
注意:仅供参考,画法和顺序,考生可以自行设计,结果符合题意即可。
import turtle as tt.speed(1)t.fillcolor('red')t.begin_fill()t.forward(180)t.left(90)t.forward(180)t.home()t.end_fill()t.fillcolor('yellow')t.begin_fill()t.left(90)t.forward(180)t.right(90)t.forward(180)t.home()t.end_fill()t.hideturtle()turtle.done()【提交】
https://www.luogu.com.cn/problem/B4259
【问题描述】
小 A 想构造一个 行 列的矩阵,使得矩阵的每一行与每一列均是等差数列。小 A 发现,在矩阵的第 行第 列填入整数 ,得到的矩阵能满足要求。你能帮小 A 输出这个矩阵吗?
【输入描述】
一行,两个正整数 。
【输出描述】
共 行,每行 个由空格分割的整数,表示小 A 需要构造的矩阵。
【样例输入1】
3 4【样例输出1】
1 2 3 42 4 6 83 6 9 12【数据范围】
对于所有测试点,保证 ,。
参考程序:
'''[GESP202503 二级] 等差矩阵https://www.luogu.com.cn/problem/B4259'''n, m = list(map(int, input().split()))for i in range(1, n + 1):for j in range(1, m + 1): print(i * j, end=" ") print()【提交】
https://www.luogu.com.cn/problem/B4066
【问题描述】
小杨有一个包含 个数字的序列 ,即 ,他想将其中大于 的数字都替换为序列的最大值,将其中小于 的数字都替换为序列的最小值,请你帮他计算出替换后的序列。
【输入描述】
第一行包含两个正整数 ,含义如题面所示。
第二行包含 个数字,代表序列 。
【输出描述】
输出 个正整数,代表替换后的结果。
【样例输入1】
5 0-2 -1 0 1 2【样例输出1】
-2 -2 0 2 2【数据范围】
对于全部数据,保证有 , 。
参考程序:
'''GESP202412 三级 数字替换https://www.luogu.com.cn/problem/B4066'''n, k = map(int, input().split())lst = list(map(int, input().split()))max_value = max(lst)min_value = min(lst)for i in range(n):if lst[i] > k: lst[i] = max_valueelif lst[i] < k: lst[i] = min_valuelst = list(map(str, lst))print(" ".join(lst))【提交】
https://www.luogu.com.cn/problem/B4068
【问题描述】
小杨最近发现了有趣的 Recamán 数列,这个数列是这样生成的:
小杨想知道 Recamán 数列的前 项从小到大排序后的结果。手动计算非常困难,小杨希望你能帮他解决这个问题。
【输入描述】
第一行,一个正整数 。
【输出描述】
一行, 个空格分隔的整数,表示 Recamán 数列的前 项从小到大排序后的结果。
【样例输入】
5【样例输出】
1 2 3 6 7【样例解释】
对于样例 1,:
从小到大排序后的结果为 1 2 3 6 7。
【样例输入2】
8【样例输出2】
1 2 3 6 7 12 13 20【数据范围】
对于所有数据点,保证 。
参考程序:
方法一:
'''GESP202412 四级 Recamánhttps://www.luogu.com.cn/problem/B4068'''n = int(input())a = [0] * na[0] = 1for i in range(1, n): b = a[i - 1] - (i + 1)if b > 0and b notin a: a[i] = belse: a[i] = a[i - 1] + (i + 1)a.sort()print(" ".join([str(i) for i in a]))方法二:
'''GESP202412 四级 Recamánhttps://www.luogu.com.cn/problem/B4068'''n = int(input())a = [1]for i in range(2, n + 1): a.append(a[-1] - i if a[-1] - i > 0and a[-1] - i notin a else a[-1] + i)defbubble_sort(a): n, flag = len(a), Truewhile flag: flag = Falsefor i in range(n - 1):if a[i] > a[i + 1]: flag = True a[i], a[i + 1] = a[i + 1], a[i]bubble_sort(a)for i in range(n): a[i] = str(a[i])print(' '.join(a))青少年编程竞赛交流
「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),添加小助手微信,让他邀请大家进入学习群。进群之后大家可以参与定期组织的21天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。
