CCF GESP 2026年9月认证 图形化 3级

所有 GESP 真题,手机上也能刷 · 自动判分 · 错题自动进错题本 扫码去刷
三 编程题
共 2 道 每题 25 分 共计 50 分
第 1 题
直角三角形数列
时间限制:1s 内存限制:512MB

题目描述

小杨最近学到了一个新知识:在一个直角三角形中,斜边的平方等于两条直角边的平方和。

他突发奇想,创造了一个有趣的数列,叫做直角三角形数列。

这个数列的规则是:

  • 前两个数由小杨自己定(比如 $3.0$ 和 $4.0$);
  • 从第三个数开始,每一个数都等于它前面两个数的平方和再开平方。如果第一项是 $3.0$,第二项是 $4.0$,那么:
  • 第三项 = $\sqrt{3.0^2+4.0^2} = \sqrt{9+16} = \sqrt{25} = 5.0$
  • 第四项 = $\sqrt{4.0^2+5.0^2} = \sqrt{16+25} = \sqrt{41} ≈ 6.403124$
  • 第五项 = $\sqrt{5.0^2+6.4031242^2} ≈ 8.124038$
  • ……

现在,小杨给了你数列的第一项和第二项,还告诉你一个上限值。

默认小猫角色和白色背景,编写程序帮助小杨计算出这个数列的第几项会第一次超过这个上限。将结果存入变量 “ans” 中。

注:“开平方”就是求平方根,比如表达式 $\sqrt{3.0^2+4.0^2}$ 可用以下积木块表示,该表达式的结果等于 $5.0$。

输入格式

新建变量 “a”,表示数列的第一项。

新建变量 “b”,表示数列的第二项。

新建变量 “k”,表示上限值。

注意:输入的第一项、第二项和上限值都不超过 1000,且保证第一项小于第二项。

如下图所示:

输出格式

新建变量 “ans”,一个正整数,表示数列中第几项的值会第一次超过上限。

如下图所示:

【注意事项】

1.变量名的拼写(包括大小写)要和题目完全一致(建议直接从题目中复制变量
名,避免自己打字时弄错大小写或拼写)。

2.输入变量直接赋值即可,无需使用“询问并等待”积木块。

3.输出结果存放在对应变量中即可,无需使用“说…”或“说…,2 秒”积木块。

样例说明

样例 1

输入:
a = 3.0
b = 4.0
k = 10.0
输出:
ans = 6
样例解释:

第 1 项:$3.0$

第 2 项:$4.0$

第 3 项:$\sqrt{3.0^2+4.0^2} = 5.0$

第 4 项:$\sqrt{4.0^2+5.0^2} ≈ 6.403124$

第 5 项:$\sqrt{5.0^2+6.403124^2} ≈ 8.124038$

第 6 项:$\sqrt{6.403124^2+8.124038^2} ≈ 10.344080$

第 6 项,超过了上限10.0,所以答案是 6。

样例 2

输入:
a = 1.0
b = 2.0
k = 3.0
输出:
ans = 5
样例解释:

第 1 项:1.0

第 2 项:2.0

第 3 项:$\sqrt{1.0^2 + 2.0^2} ≈ 2.236068$

第 4 项:$\sqrt{2.0^2 + 2.236068^2} ≈ 3.0$

第 5 项:$\sqrt{2.236068^2 + 3.0^2} ≈ 3.741657$

第 5 项,超过了上限 3.0,所以答案是 5。

第 2 题
画布涂鸦
时间限制:1s 内存限制:512MB

题目描述

小杨有一块神奇的画布,画布有 8 行 16 列,总共 128 个小格子。

画布的格子按顺序编号:左上角第一个格子是 1 号,第一行最右边是 16 号,第二行第一个是 17 号,……,右下角最后一个格子是 128 号。

一开始,所有格子里面都是 *。

小杨会告诉你三个格子编号,他要在这三个格子里画上 #(井号)。

默认小猫角色和白色背景,编写程序帮小杨把画布画出来,并把画布上的图案存到一个名叫 ans 的列表里。

列表 ans 一共有 8 项,第 1 项是第一行的 16 个字符,第 2 项是第二行的 16 个字符,……,第 8 项是第八行的 16 个字符。

输入格式

新建变量 “a”,“b”,“c”,三个正整数,表示需要改成 # 的格子编号。

三个编号都是 1 到 128 之间的整数。

如下图所示:

输出格式

新建列表“ans”用于存储最后的结果,一共 8 行,每行16 个字符,表示画布的内容。

如下图所示:

【注意事项】

1.变量名的拼写(包括大小写)要和题目完全一致(建议直接从题目中复制变量 名,避免自己打字时弄错大小写或拼写)。

2.输入变量直接赋值即可,无需使用“询问并等待”积木块。

3.输出结果存放在对应列表中即可。

样例说明

样例 1

输入:
a = 48
b = 65
c = 97
输出:
ans = ['****************', '****************','***************#',
'****************','#***************',
'#***************', '****************’]

样例 2

输入:
a = 1
b = 64
c = 128
输出:
ans = ['#***************', '****************', '****************',
'***************#','****************',
'****************', '***************#’]
编程题部分已到底了。

小程序开心码未来

微信扫码,随时随地练 GESP 真题

  • 手机刷题 · 自动判分,错题自动归档到错题本
  • 绑定网站账号后,查看答案解析等权限自动同步
开心码未来小程序二维码(微信扫一扫) 微信扫一扫