第十五届蓝桥杯青少组STEMA测评Python中高级编程题

第一题

编程实现:

小青有 N 个小球,小蓝有 M 个小球,请计算他们一共有多少个小球。
例如:N = 2,M = 3,表示小青有 2 个小球,小蓝有 3 个小球,一共有 5 个小球(5 = 2 + 3)。

输入描述:

第一行输入一个整数 N(1≤N≤1000),表示小青的小球数量第二行输入一个整数 M(1≤M≤1000),表示小蓝的小球数量

输出描述:

输出一个整数,表示一共有多少个小球

样例输入:
  1. 2
  2. 3
样例输出:
  1. 5
参考实现

下面是一个参考实现。

注意,这里没有考虑考试系统自动判题(OJ系统)的需求,在输入输出中都有不需要的提示,如果使用我们的少儿编程OJ系统自动判题,请将对应的提示输出给删除即可。

  1. def count_balls(n, m):
  2. # 计算总球数
  3. return n + m
  4. def main():
  5. N = int(input("输入小青的小球数量(1≤N≤1000):"))
  6. if not (1 <= N <= 1000):
  7. print("小青的小球数量无效,应在1到1000之间。")
  8. return
  9. M = int(input("输入小蓝的小球数量(1≤M≤1000):"))
  10. if not (1 <= M <= 1000):
  11. print("小蓝的小球数量无效,应在1到1000之间。")
  12. return
  13. total_balls = count_balls(N, M)
  14. print("一共有 {} 个小球。".format(total_balls))
  15. if __name__ == "__main__":
  16. main()

第二题

编程实现:

给定一个长度为 11 的字符串 S,表示电话号码,然后将电话号码中第三位数字后的连续四位数字用“*”替换,并输出替换后的字符串。
例如:S = “13900001234”,用“*”替换第三位数字后的连续四位数字为“139****1234”。

输入描述:

输入一个长度为 11 的字符串 S(字符串仅包含 0~9 之间的数字且首个字符只能为 1),表示电话号码

输出描述:

输出一个字符串,表示替换后的字符串

样例输入:
  1. 13900001234
样例输出:
  1. 139****1234
参考实现
  1. def mask_phone_number(phone_number):
  2. # 检查电话号码是否有效
  3. if len(phone_number) != 11 or not phone_number.isdigit() or phone_number[0] != '1':
  4. return "无效的电话号码"
  5. # 将第三位数字后的连续四位替换为 '*'
  6. masked_number = phone_number[:3] + '****' + phone_number[7:]
  7. return masked_number
  8. def main():
  9. phone_number = input("输入一个长度为 11 的电话号码:")
  10. result = mask_phone_number(phone_number)
  11. print("替换后的电话号码:", result)
  12. if __name__ == "__main__":
  13. main()

第三题

编程实现:

给定 N 个长度不同的字符串,请将每个字符串的最后一个字符删除,并按长度从短到长的顺序换行输出。
例如:N = 3,3 个字符串分别为 dfgas、abc、cbdf,删除最后一个字符后为 dfga、ab、cbd;
按长度从短到长的顺序换行输出为:

  1. ab cbd dfga
输入描述:

第一行输入一个整数 N(2≤N≤10),表示字符串的个数
第二行输入 N 个长度不同的字符串(2≤字符串长度≤20),字符串之间以一个空格隔开

输出描述:

输出 N 行字符串,表示所有字符串删除最后一个字符后,按长度从短到长的顺序换行输出的结果

样例输入:
  1. 3
  2. dfgas abc cbdf
样例输出:
  1. ab cbd dfga
参考实现:

下面是一个参考实现。

  1. def process_strings(strings):
  2. # 删除每个字符串的最后一个字符
  3. processed_strings = [s[:-1] for s in strings]
  4. # 根据长度排序字符串
  5. processed_strings.sort(key=len)
  6. # 使用空格连接字符串
  7. return ' '.join(processed_strings)
  8. def main():
  9. N = int(input("输入字符串的个数 (2≤N≤10):"))
  10. if not (2 <= N <= 10):
  11. print("字符串个数无效。它应该在2到10之间。")
  12. return
  13. input_str = input("输入 {} 个用空格分隔的字符串:".format(N))
  14. strings = input_str.split()
  15. # 检查字符串长度约束
  16. if any(not (2 <= len(s) <= 20) for s in strings):
  17. print("字符串长度必须在2到20字符之间。")
  18. return
  19. output = process_strings(strings)
  20. print("处理后的字符串:", output)
  21. if __name__ == "__main__":
  22. main()

可以直接在我们的少儿编程在线Python编辑器中运行它。这三道题也已经收录到了我们的OJ系统中。


微信扫一扫,分享此文章

少儿编程教学平台

联系我们

微信

aguibo002

邮箱

haoxuehaojiao在163.com

Loading
我们已经收到您的信息,将尽快联系您!