2024 年全国青少年信息素养大赛 Python 小学组复赛真题

2024 年全国青少年信息素养大赛 Python 小学组复赛真题

《伶俐角少儿编程》gzh查看所有题目

第一题

题目描述
在一个神秘的王国里,国王希望通过一个简单的测试来评估他的子民对基础数学运算的掌握情况。他决定让每个人输入一个正整数 N (0≤N≤1000),然后计算并输出(5N)的值。请用Python 编写程序,程序执行后要求用户输入一个正整数(N),然后计算并输出(5N)的值。

输入描述

第一行输入一个正整数(输入语句内不要加提示语) ,请参考如下的输入样例。

输出描述

输入(5*N)的值,请参考如下的输出样例。

样例输入

9

样例输出

45

参考代码

N = int(input())  # 输入并转为整数
print(5 * N)  # 输出5*N的值

第二题

题目描述
在一个小镇上,每天都有一辆货车负责收集居民的垃圾。为了统计每周收集的垃圾总量,你需要编写一个程序,让用户输入每天收集的垃圾重量,然后计算并输出这一周内收集的垃圾总量。
要求:
输入内容:首先输入一个正整数(n),表示天数(最多 7 天)。接下来输入(n)个正数,每个正整数表示某一天收集的垃圾重量(单位:公斤),使用 for 循环和变量自增来计算总垃圾重量。
输出内容:输出这一周内收集的垃圾总量。
输入描述

第一行输入一个正整数(n),表示天数,接下来的(n)行,每行输入一个正整数(输入语句内不要加提示语),表示某一天收集的垃圾重量。

输出描述

输出一个整数,表示这一周内收集的垃圾总量。

样例输入

5
10
20
30
40
50

样例输出

150

参考代码

n = int(input())  # 输入并转为整数
s = 0
for i in range(n):  # 循环n次
    s += int(input())  # 输入垃圾重量并求和
print(s)  # 输出垃圾总重量

第三题

题目描述
在某些文本处理应用中,你可能需要在字符串中的每个字符前添加一个特定的字符,例如字母 A。
假设你正在开发一个文本格式化工具,,需要将用户输入的字符串中的每个字符前都添加一个字母 A。
要求:
编写一个程序,输入一个字符串,在字符串中的每个字符前都添加字母 A,然后输出这个新的字符串。
输入描述

一行,一个字符串

输出描述

一行,一个字符串,在原字符串的每个字符之前加上 A

样例输入

hello

样例输出

AhAeAlAlAo

参考代码

s = input()
r = ''
# 循环遍历输入的字符串s
for i in s:
    # 将每个字符前加“A”并拼接到新字符串中
    r += 'A' + i
print(r)

第四题

题目描述
在某个公司中,有 n 名员工,他们的工号分别从 0 到 N-1,某一天,老板安排全体员工进行一次握手游戏。
具体规则如下:
老板安排了一个顺序,让全体 N 名员工依次进入会议室,每位员工进入会议室时。需要和已经在会议室里的且工号小于自己的员工握手。
你的任务是计算整个公司总共会进行多少次握手。
输入描述

输入包含两行。
1.第 1 行是一个整数 N。表述员工的数量(1≤N≦1000)。
2.第 2 行是 N 个用空格隔开的整数,表示员工们进入会议室的顺序,每个整数在 0 到 N-1 之间且不重复。

输出描述

输出一行,一个整数,表示全公司握手的总次数。

样例输入

8
7 0 2 5 6 1 3 4

样例输出

14

参考代码

N = int(input())
# 将输入内容以空格分割并转为整数列表
l1 = list(map(int, input().split()))
l2 = []  # 入会员工编号列表
count = 0  # 握手次数
for i in l1:  # i为入会员工编号
    for j in l2:  # j为已入会员工编号
        # 如果入会员工编号大于已入会员工编号
        if i > j: 
            count += 1  # 握手次数加1
    l2.append(i)  # 入会
print(count)

第五题

题目描述
公司为每个员工都准备了一张信纸,每个信纸都对应着一个写着员工名字的信封。如果所有的信纸都不小心装错了信封,求所有信纸都装错信封共有多少种不同情况?
输入描述

一个正整数 n 表示公司人数,保证 n≤20。

输出描述

一个整数,代表有多少情况。

样例输入

2

样例输出

1

参考代码

#  错排问题,动态规划解决
n = int(input())
dp = [0] * (n + 1)
dp[1] = 0  # 一封错排数量为0
dp[2] = 1  # 两封错排数量为1,互相交换
for i in range(3, n + 1):
    # 通过前i-1,i-2计算i封时的错排数量
    dp[i] = (i - 1) * (dp[i - 1] + dp[i - 2])
print(dp[n])

第六题

题目描述
某公司对用户使用的水量进行阶梯式收费。具体收费标准如下:
(1)使用量不超过 50 吨时,每吨收费 2 元;
(2)使用量超过 50 吨但不超过 150 吨时,超出部分每吨收费 1.5 元;
(3)使用量超过 150 吨时,超出部分每吨收费 1 元。
给定用户使用水的总量,请编写程序计算用户应缴纳的总费用。
收费时,结果会去除小数部分。例如,如果应收 107.5 元,那么实际收费 107 元。
输入描述

一行,一个正整数 N(0

输出描述

一行,用户应缴纳的总费用

样例输入

55

样例输出

107

参考代码

N = int(input())
m = 0
# 通过判断不同情况,用不同方法计算水费
if N <= 50:
    m = N * 2
elif N <= 150:
    m = 50 * 2 + (N - 50) * 1.5
else:
    m = 50 * 2 + 100 * 1.5 + (N - 150) * 1
print(int(m))  # 输出整数

↓ 点 击 关 注 ↓

你可能感兴趣的:(全国青少年信息素养大赛,python,算法,信息素养大赛,青少年编程)