当前位置:首页>python>2024年全国青少年信息素养大赛python复赛真题+解析

2024年全国青少年信息素养大赛python复赛真题+解析

  • 2026-10-11 06:07:56
2024年全国青少年信息素养大赛python复赛真题+解析
全国青少年信息素养大赛
Python编程复赛真题答案+解析
华东(浙江)赛区 · 共5道编程题 · 2024年
编程题(共5题)
第 01 题
编程题
已知正方形的面积等于边长乘以边长。输入一个正方形边长,输出这个正方形的面积。【输入描述】1个正整数【输出描述】正方形面积【样例】输入:6输出:36

# 第1题:正方形面积# 思路:读取边长,计算面积 = 边长 × 边长,输出结果side = int(input())          # 读取正方形边长area = side * side           # 计算面积print(area)                 # 输出结果

题目解析:本题是最基础的输入输出题。关键点:1. 使用 int(input()) 读取一个正整数2. 正方形面积公式:面积 = 边长 × 边长3. 直接输出计算结果注意:Python 中 input() 读取的是字符串,需要用 int() 转换为整数。
第 02 题
编程题
小花同学学编程以后想要帮老师做一个成绩检测合格的程序。当输入的成绩大于或等于60时,程序会提醒"及格";当输入的成绩小于60时,程序会提醒"不及格"。【输入描述】共1行,输入一个整数表示成绩。【输出描述】共1行,"及格"或"不及格"。【样例】输入:99输出:及格

# 第2题:成绩判断# 思路:读取成绩,使用 if-else 判断并输出score = int(input())         # 读取成绩if score >= 60:             # 判断是否为及格    print("及格")else:    print("不及格")

题目解析:本题考察 if-else 条件判断语句。关键点:1. 读取整数成绩:score = int(input())2. 判断条件:score >= 603. 根据判断结果输出不同内容拓展:可以使用条件表达式简化为:print("及格" if score >= 60 else "不及格")
第 03 题
编程题
在很多在线服务中,验证用户输入的电子邮件地址是一个常见的需求。我们需要编写一个程序来检查用户输入的字符串是否包含"@"符号和"."符号,以判断其是否为一个有效的电子邮件地址。【输入描述】1行字符串,表示邮件地址【输出描述】1行,"有效的电子邮件地址"或"无效的电子邮件地址"【样例】输入:ser@domain.co.uk输出:有效的电子邮件地址

# 第3题:邮箱地址验证# 思路:检查字符串中是否同时包含 "@" 和 "."email = input().strip()       # 读取邮件地址(去除首尾空格)if "@" in email and "." in email:    print("有效的电子邮件地址")else:    print("无效的电子邮件地址")

题目解析:本题考察字符串的基本操作。关键点:1. input().strip() 读取并去除首尾空格2. '@' in email 检查是否包含 @3. '.' in email 检查是否包含 .4. 两个条件同时满足时使用 and 连接注意:这种验证方法比较基础,实际邮箱验证规则更复杂。但题目只要求检查是否包含这两个符号。
第 04 题
编程题
在学校里,每天都有不同的学生负责值日。值日表按照A、B、C、D四个学生轮流进行。我们需要编写一个程序来确定第n天由哪个学生值日。【输入描述】1个整数 n,表示第 n 天。【输出描述】1个英文字母,表示该天负责值日的学生。【样例】输入:13输出:A

# 第4题:值日轮换# 思路:A/B/C/D 按顺序循环,用 (n-1) % 4 判断# 第1天=A,第2天=B,第3天=C,第4天=D,第5天=A...n = int(input())              # 读取天数remainder = (n - 1) % 4     # 计算余数(0→A, 1→B, 2→C, 3→D)if remainder == 0:    print("A")elif remainder == 1:    print("B")elif remainder == 2:    print("C")else:    print("D")

题目解析:本题考察取模运算(余数运算)的应用。关键点:1. 值日顺序:A(1), B(2), C(3), D(4), A(5), B(6)...2. 规律:用 (n-1) % 4 计算位置   - 余数为 0 → A   - 余数为 1 → B   - 余数为 2 → C   - 余数为 3 → D简化写法:students = ["A", "B", "C", "D"]print(students[(n-1) % 4])
第 05 题
编程题
小胖为了提高自己的体能制定了运动计划。在第 k 天时,他必须要完成 k 个运动项目,否则他就会偷懒。小胖现在拥有 n 个运动计划,每个计划中有一定数量的练习项目。但是他十分挑剔,每个计划他只会使用一次,每天也只能使用一个计划中的项目,之后那套计划就会被弃之不用。对于每个计划,他不必完成其中的所有项目。问:小胖最多会坚持运动几天才偷懒?【输入描述】第一行:1个整数 n,表示有多少个运动计划。第二行:n 个整数,分别表示每个运动计划有多少个项目。【输出描述】输出一个整数,小胖在偷懒前最多坚持运动的天数。【样例】输入:43 1 4 1输出:3

# 第5题:运动计划# 思路:贪心算法。将计划按项目数排序,每天用最小的能满足当天需求的计划。n = int(input())                  # 读取计划数量plans = list(map(int, input().split()))  # 读取每个计划的项目数plans.sort()                      # 按项目数从小到大排序days = 0                         # 已坚持天数i = 0                            # 当前使用的计划索引while i < n:    # 第 (days+1) 天需要 (days+1) 个项目    need = days + 1    # 找是否有计划能满足当天的需求    if plans[i] >= need:        days += 1                 # 坚持了一天        i += 1                    # 该计划已使用,丢弃    else:        i += 1                    # 这个计划项目数不够,跳过print(days)

题目解析:本题考察贪心算法的应用。题目理解:- 第1天需要1个项目,第2天需要2个项目,第k天需要k个项目- 每天只能从一个计划中取项目,取完该计划丢弃- 目标:最多可以坚持多少天贪心策略:将计划按项目数从小到大排序,每天用最小的能满足当天需求的计划。这样可以节省大计划给后面需要更多项目的天数。样例解释:- 计划:[3,1,4,1] → 排序后 [1,1,3,4]- 第1天需要1个:用计划1(1≥1)✓,剩余 [1,3,4]- 第2天需要2个:用计划3(3≥2)✓,剩余 [1,4]- 第3天需要3个:用计划4(4≥3)✓,剩余 [1]- 第4天需要4个:计划1不够(1<4)✗ → 停止- 答案:3天
点击"阅读原文"免费刷题
打印版已更新至会员文件夹

最新文章

随机文章