Advertisement

第十届蓝桥杯大赛Python组省赛

阅读量:

一、 编程题

第一题 (难度系数 1,满分 50 分)

编程实现:

通过1、3、5、8这四个数字,可以排列出互不重复的三位数各有哪些?一共有多少个?

输入:

输出:

多行数字,每行一个三位数

组成的三位数的总个数

将程序命名为“** l**** q**** 001** ”。

评判标准:

10 分: 能输出至少一个三位数字;

30 分: 输出了多于 10 个三位数字,且确实不重复;

50 分: 完全符合题意要求,基于30分的标准,正确输出了所有可组合的三位数及其组合后的三位数的总数量。

第二题 (难度系数 2,满分 50 分)

编程实现:

打印出 1~1000 之间包含 3 的数字;

如果 3 是连在一起的(如 233) 则在数字前加上&;

如果这个数字是质数则在数字后加上*,例: (3,13*,23*,&33,43*…&233*…)。

输入:

输出:

按照题意输出的数字,每行一个数字;

样例输出:

将程序命名为“** l**** q**** 002** ”。

评判标准:

10 分:完成打印 1~1000 之间包含 3 的数字

30 分: 在 10 分标准的基础上,找出其中的连 3,前面加&

50 分: 在 30 分标准的基础上,找出其中的质数,后面加*

第三题 (难度系数 3,满分 50 分)

编程实现:

让用户在一次输入时输入 N 个数字(2<=N<=15,即每次输入的数字数量不同),数字之间以“, ”作为分 隔。

然后组合显示:

(1)用户输入的数字个数;

(2)用户输入的最小的数字;

(3)将用户输入的数字按从大到小进行排列输出,数字之间以“, ”作为分隔;

当输入的数字不大于26时,可找到对应的26个大写字母,其中1对应字母A,26对应字母Z。

将输入的数字拼接在一起后打印显示,当输入的数字不在1至26范围内时,将不显示对应字母。例如,当程序输入214时,输出结果为「[bad]」。

输入:

N 个数字,2<=N<=15

输出:

输入的数字个数

输入的最小数字

输入的数字从大到小排列

输入的数字所对应的字母

样例输入:

9,12,15,22,5,21,214

样例输出:

7

5

214,22,21,15,12,9,5

ILOVEU[bad]

将程序命名为“** l**** q**** 003** ”。

评判标准:

10 分: 正确输出用户输入的数字个数

20 分: 在 10 分标准的基础上,正确输出用户输入的最小数字

40 分:基于 20 分的标准,准确地将用户输入的数字按照从大到小的顺序进行排序输出。

50 分:完全符合题意要求,基于 40 分标准,正确完成将数字转换为相应字母的环节。

第四题 (难度系数 3,满分 50 分)

在 Turtle 画布上画出 5 个随机大小的五角星。

具体要求:

Turtle 画布的大小为:宽 800 像素,高 600 像素;

一共绘制 5 个五角星;

每个五角星在画布内的显示位置都是随机确定的,五角星之间可能会有重叠甚至完全覆盖的情况,同时,每个五角星必须完整无缺地显示在画布内。

在程序运行过程中应明显看出绘制过程,建议绘图速度为 7;

每个五角星的线条呈黑色色系,宽度设定为5个单位,并以黄色填充;提示:每个顶点的内角(锐角)为36度。

五角星的基本形状例如本题图-1 所示:

将程序命名为“** l**** q**** 004** ”。

评判标准:

10 分:至少画出了一个形状正确的五角星,不论其大小、位置、颜色和填充与否;

20 分:至少画出了一个形状、线段颜色、线宽正确的五角星;

40 分:创建了 5 个随机分布的位置、不同尺寸的五角星,且形状和颜色均正确。为了验证生成的五角星是否随机,需进行多次运行测试。

50 分:完全符合题意要求,基于 40 分的标准,经过多次程序运行后,所有三角形均在画布范围内显示,且填充颜色为黄色,能够清晰地显示出绘画过程。

第五题 (难度系数 5,总分 100 分,程序 1 满分 50 分,程序 2 满分 50 分)

分形树

步骤 1

利用 Turtle 画出如本题图-1 所示的分形树。

要求:

树木主干向上生长;

分形层数为 4 ,二叉树;

第一层树枝长度为 60 ,逐层减 6

左右树枝的倾斜角度不限,最终效果与图-1 所示大致相同即可。

必须能看出绘图过程。

将程序命名为“** l**** q**** 00501** ”。

评判标准:

10 分:能够画出大致如图中的第一层树枝;

30 分:能够画出大致如图中的两层以上的树枝,且为二叉树;

50 分:完全符合题意,即图形向上的生长,采用二叉树结构,共4层,每层树枝长度递减,能够观察到绘图过程。

步骤 2

一、修改步骤 1 中生成分形树的方法:

分型层数改为 4~6 之间的随机数;

第一层树枝长改为 30~60 之间的随机数;

二、绘制分形树丛

在 800X600 的屏幕中绘制分形树丛;

树木数量为 50 棵;

每棵分形树的树根位置位于屏幕区域内,且为随机生成的坐标点;其分支可以超出屏幕窗口的范围。

以屏幕中分隔线为分界,左部的树形向左倾斜生长,右部的树形向右倾斜生长;呈现出对称的布局。

绘制过程瞬间完成 (即看不到绘画过程)。

整体绘制样例如本题图-2 所示

将程序命名为“** l**** q**** 00502** ”。

评判标准:

0 分:步骤 1 没有得到满分;

10 分:能在画布中画出50 颗随机位置的树木,即使朝向相同、层数固定;

30 分:在 10 分标准的基础上,能画出层数随机、树枝长短随机的分形树;

50分:完全符合题意要求,即基于30分的标准,能够绘制出符合题意要求朝向倾斜的分形树结构,且绘画过程瞬间完成,即观察者无法察觉绘画过程的存在。

第六题 (难度系数 6,满分 120 分)

编程实现: 商品管理系统

预先准备:

建立 userpass.txt

建立并存储用户信息文件。文件格式说明:以逗号加空格分隔的一组用户名和密码信息。例如:

zhangsan,123456

建立 goods.txt

按照自定义格式进行存储,记录三个商品的信息,每个商品包含商品编号、商品名称、商品类型以及商品库存。

001,商品 1,类型 1,10;002,商品 2,类型 1,5;003,商品 3,类型 2,20

系统登录:

展示一个六位随机码,并要求用户输入用户名、密码以及刚刚显示的六位验证码;

当输入的用户名和密码与 userpass.txt 文件中的信息一致,并且验证码与提示的 6 位验证码匹配时,判断为有效。

合,则程序进入系统主界面的初始状态(见下文中的“系统主界面”->“初始状态”部分),例如以下流程。

说明:以为背景的是内容程序输出, __ 内容为用户输入:

您的登录验证码为 386597

请输入用户名: zhangsan

请输入密码: 123456

登录验证码: 386597

身份验证通过,欢迎登录!

当用户输入的用户名和密码与 userpass.txt 文件中的信息不一致,或者用户的验证码与系统提示的 6 位验证码不符。

合,则登陆不成功,提示身份验证失败, 退出程序。例如以下过程:

说明:以为背景的是内容程序输出, __ 内容为用户输入:

您的登录验证码为 386597

请输入用户名: zhangsan

请输入密码: 123456

登录验证码: 123456

身份验证失败!

系统主界面:

从文件中获取所有商品的相关信息,包括商品编号、名称、类型和库存数量,并以符号::提示输入命令。

当用户输入'add'时,系统将执行添加操作。请客户输入以下信息:商品编号、商品名称、商品类型以及库存数量。在输入过程中,系统需要进行判断。

所有输入字段不得为空,且库存数量必须是数字格式的数值,在输入完成后,系统将新增的商品信息记录至文件中,并使系统返回到初始状态。

当输入"count"时,系统将计算并输出所有商品库存数量的总和,并返回到初始状态。

如此循环。

请注意,在程序运行期间,无论用户输入何如,都不会出现红色错误信息导致程序出现异常终止(通过 try/except 语句处理)。

add 命令的输入输出过程可自行设计,输入输出样例(仅供参考) 例如:

说明:以为背景的是内容程序输出, __ 内容为用户输入:

::add

商品编号: 004

商品名: 商品 4

商品类型: 类型 3

库存数量: 30

001,商品 1,类型 1,10

002,商品 2,类型 1,5

003,商品 3,类型 2,20

004,,商品 4,类型 3,30

::

count 命令的执行过程例如:

说明:以为背景的是内容程序输出, __ 内容为用户输入:

::c ount

65

001,商品 1,类型 1,10

002,商品 2,类型 1,5

003,商品 3,类型 2,20

004,,商品 4,类型 3,30

::

评判标准:

20 分:完成从userpass.txt中获取用户信息并检查用户输入的用户名和密码的有效性;通过修改userpass.txt文件的内容来验证。

30 分:基于 20 分的标准,实现了生成并显示 6 位随机数(验证码)并验证用户输入的验证码是否与之相符的功能;

本题得分为 50 分,基于 30 分的标准,要求实现从文件中获取 3 个商品信息并将其输出至 Python 控制台的功能。

基于50分的标准,实现通过 add 命令将商品信息写入指定文件中,对输入的非空性和数据类型进行严格的验证,并实现从文件中读取所有商品信息以显示在系统中。确保系统主界面处于初始状态,且该 add 命令可重复执行以满足后续操作需求。

100 分:基于70分的标准,实现商品总库存量的计算(count命令),同时显示文件中所有商品,并返回到系统主界面的初始状态;且count命令可以重复执行。

120 分: 在 100 分标准的基础上,整个程序运行过程中,无论用户的输入内容如何,都不会出现红色ERROR错误导致程序异常退出。

全部评论 (0)

还没有任何评论哟~