Advertisement

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

阅读量:

2024年全国青少年信息素养大赛Python小学组复赛真题包括六个编程题目,涉及基础运算、字符串处理、循环计算、握手次数、错排问题和阶梯式收费计算等编程逻辑。题目要求用户编写程序完成具体任务,例如计算5乘以输入的N值、统计垃圾总量、处理字符串前缀、计算握手次数、解决错排问题以及计算水费等。每个题目都有详细的输入输出描述和参考代码,用户需根据题目要求完成相应功能。

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

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

第一题

请编写一个Python程序,该程序用于评估用户对基础数学运算的掌握程度。具体来说,请用户输入一个正整数N(0≤N≤1000),然后计算并输出5_ N的值。

输入描述

在输入行中,请输入一个正整数(在输入语句中无需添加提示);参考以下示例输入。

输出描述

输入(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,表示员工的数量(1≤N≤1000)。
第二行包含 N 个以空格分隔的整数,表示员工进入会议室的顺序,且所有整数均唯一。

输出描述

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

样例输入

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])

第六题

题目描述

一行,一个正整数 N(0<N<300)

输出描述

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

样例输入

55

样例输出

107

参考代码

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

↓ 点 击 关 注 ↓

全部评论 (0)

还没有任何评论哟~