🔒 答案已锁定

📖 答案解析 — 星火征途(红色文化) — 简单

算法应用主题赛 · Python · 共 14 题(5单选+5多选+4编程)· 满分 100 分

第 1 题 单选题 2 分
在Python中,使用 print() 函数输出一段红色标语"不忘初心,牢记使命",以下代码正确的是?
A. print("不忘初心,牢记使命")
B. print[不忘初心,牢记使命]
C. print{"不忘初心,牢记使命"}
D. print(不忘初心,牢记使命)
✅ 正确答案:A
💡 考点解析:print()函数的正确语法,字符串必须用引号括起来
第 2 题 单选题 2 分
在革命历史纪念馆的电子屏幕上,需要显示英雄董存瑞的牺牲年龄。已知他出生于1929年,牺牲于1948年,以下代码中 age 的数据类型是什么?
born = 1929
died = 1948
age = died - born
A. 字符串(str)
B. 整数(int)
C. 浮点数(float)
D. 布尔值(bool)
✅ 正确答案:B
💡 考点解析:整数运算结果仍为整数类型
第 3 题 单选题 2 分
以下Python代码用于展示"井冈山精神",输出结果是什么?
spirit = "井冈山精神永放光芒"
print(spirit[0:4])
A. 井冈山精神永放光芒
B. 井冈山精
C. 井冈山
D. 永放光芒
✅ 正确答案:B
💡 考点解析:字符串切片操作,[0:4] 取索引0到3的字符(前4个字符)
第 4 题 单选题 2 分
在模拟"红军征兵"的场景中,根据年龄判断是否符合参军条件(18岁至45岁可参军)。age = 16,以下代码执行后输出什么?
age = 16
if age >= 18 and age <= 45:
    print("符合参军条件")
else:
    print("不符合参军条件")
A. 符合参军条件
B. 不符合参军条件
C. 程序报错
D. 无输出
✅ 正确答案:B
💡 考点解析:if-else条件语句,逻辑运算符 and 的使用
第 5 题 单选题 2 分
红军的"三五九旅"在南泥湾开荒,每天开荒的亩数保存在列表中。以下代码的输出是什么?
acres = [3, 5, 4, 6, 5]
total = 0
for i in range(len(acres)):
    total = total + acres[i]
print(total)
A. 5
B. 15
C. 23
D. 3
✅ 正确答案:C
💡 考点解析:for循环配合range()遍历列表,累加求和
第 6 题 多选题 4 分
在Python中,关于变量命名的说法,以下哪些是正确的?
A. 变量名 hero_name 是合法的
B. 变量名 2nd_battle 是合法的
C. 变量名 革命精神 是合法的(Python 3支持中文变量名)
D. 变量名 red-star 是合法的
✅ 正确答案:AC
💡 考点解析:变量命名规则——只能包含字母、数字、下划线,不能以数字开头,不能包含连字符
第 7 题 多选题 4 分
在红军行军途中,需要比较两段路程的距离。以下比较运算符的用法,哪些是正确的?
A. 100 > 80 结果为 True
B. 50 == "50" 结果为 True
C. 200 != 200 结果为 False
D. 30 <= 30 结果为 True
✅ 正确答案:ACD
💡 考点解析:比较运算符(>、==、!=、<=)的使用,注意整数与字符串不相等
第 8 题 多选题 4 分
有一个列表 heroes = ["雷锋", "董存瑞", "黄继光", "邱少云"],以下操作哪些是正确的?
A. heroes.append("刘胡兰") 可以在列表末尾添加"刘胡兰"
B. heroes[1] 可以获取"董存瑞"
C. heroes.remove("雷锋") 可以从列表中删除"雷锋"
D. heroes[0] = "张思德" 可以将第一个元素改为"张思德"
✅ 正确答案:ABCD
💡 考点解析:列表的增删改查操作——append()添加、索引访问、remove()删除、索引赋值修改
第 9 题 多选题 4 分
以下关于 while 循环和 break 的说法,哪些是正确的?
A. while True: 会创建一个无限循环,必须配合 break 来退出
B. break 语句用于立即终止当前循环
C. while 循环的条件为 False 时,循环体不会执行
D. break 只能用在 for 循环中,不能用在 while 循环中
✅ 正确答案:ABC
💡 考点解析:while循环与break的使用,break可用于for和while两种循环
第 10 题 多选题 4 分
在Python中定义函数用于计算"红军长征中某段路程所需天数",以下说法哪些是正确的?
A. 使用 def 关键字来定义函数
B. 函数定义后,必须调用才会执行
C. 函数可以没有参数
D. 函数体内缩进必须一致(通常为4个空格)
✅ 正确答案:ABCD
💡 考点解析:函数定义(def关键字)、调用、参数与缩进规则
第 11 题 编程操作题 15 分

题目描述:
红军长征途中,某部队连续记录了7天的行军里程(单位:里)。请你编写程序,输入7天的行军里程,计算并输出总里程与平均每天里程(保留1位小数)。

输入格式:
一行,7个整数,用空格分隔,表示每天的行军里程。

输出格式:
第一行输出"总里程:X里",其中X为整数。
第二行输出"平均每天:Y里",其中Y保留1位小数。

示例输入:

80 65 90 70 85 75 95

示例输出:

总里程:560里
平均每天:80.0里
✅ 参考答案:
📖 参考代码
# 输入7天的行军里程
data = input().split()
total = 0
for d in data:
    total = total + int(d)
avg = total / 7
print("总里程:" + str(total) + "里")
print("平均每天:" + str(round(avg, 1)) + "里")
第 12 题 编程操作题 15 分

题目描述:
在革命时期,红军用简单的字母偏移方式来加密传递标语。加密规则是:将字符串中每个英文字母替换为字母表中后移3位的字母(a→d, b→e, ..., x→a, y→b, z→c),大写字母同理,非字母字符不变。请你编写程序,输入一句英文标语,输出加密后的结果。
提示:使用 ord() 获取字符ASCII码,chr() 将ASCII码转为字符。

输入格式:
一行字符串,包含英文字母和空格。

输出格式:
一行,加密后的字符串。

示例输入:

Fight for Freedom

示例输出:

Iljkw iru Iuhhgrp
✅ 参考答案:
📖 参考代码
s = input()
result = ""
for ch in s:
    if 'a' <= ch <= 'z':
        # 小写字母偏移
        new_code = (ord(ch) - ord('a') + 3) % 26 + ord('a')
        result += chr(new_code)
    elif 'A' <= ch <= 'Z':
        # 大写字母偏移
        new_code = (ord(ch) - ord('A') + 3) % 26 + ord('A')
        result += chr(new_code)
    else:
        result += ch
print(result)
第 13 题 编程操作题 20 分

题目描述:
学校组织学习英雄事迹活动,老师让每位同学说出自己最崇拜的英雄名字,并记录下来。请你编写程序完成以下统计任务:
1. 输入一个正整数 n,表示有 n 位同学参与
2. 接下来输入 n 行,每行是一个英雄名字(如"雷锋"、"董存瑞"、"黄继光"等)
3. 统计每个英雄被提到的次数
4. 输出被提到次数最多的英雄名字及其次数(保证唯一)

输入格式:
第一行一个正整数 n(1 ≤ n ≤ 100)。
接下来 n 行,每行一个字符串,表示英雄名字。

输出格式:
一行,格式为"英雄名:X次"。

示例输入:

6
雷锋
董存瑞
雷锋
黄继光
雷锋
董存瑞

示例输出:

雷锋:3次
✅ 参考答案:
📖 参考代码
n = int(input())
heroes = []
for i in range(n):
    name = input()
    heroes.append(name)
# 统计每个英雄的次数
count_dict = {}
for name in heroes:
    if name in count_dict:
        count_dict[name] += 1
    else:
        count_dict[name] = 1
# 找出次数最多的英雄
max_name = ""
max_count = 0
for name in count_dict:
    if count_dict[name] > max_count:
        max_count = count_dict[name]
        max_name = name
print(max_name + ":" + str(max_count) + "次")
第 14 题 编程操作题 20 分

题目描述:
红军根据战士的立功积分评定军衔等级,规则如下:
- 积分 ≥ 100:特级战斗英雄
- 80 ≤ 积分 < 100:一级战斗英雄
- 60 ≤ 积分 < 80:二级战斗英雄
- 40 ≤ 积分 < 60:三级战斗英雄
- 积分 < 40:优秀战士
请你编写程序,输入 n 位战士的姓名和积分,依次输出每位战士的军衔等级。

输入格式:
第一行一个正整数 n(1 ≤ n ≤ 50)。
接下来 n 行,每行一个战士姓名和一个整数积分,用空格分隔。

输出格式:
n 行,每行格式为"姓名:等级"。

示例输入:

3
张连长 95
李班长 55
王战士 30

示例输出:

张连长:一级战斗英雄
李班长:三级战斗英雄
王战士:优秀战士
✅ 参考答案:
📖 参考代码
n = int(input())
for i in range(n):
    line = input().split()
    name = line[0]
    score = int(line[1])
    if score >= 100:
        level = "特级战斗英雄"
    elif score >= 80:
        level = "一级战斗英雄"
    elif score >= 60:
        level = "二级战斗英雄"
    elif score >= 40:
        level = "三级战斗英雄"
    else:
        level = "优秀战士"
    print(name + ":" + level)