算法应用主题赛 · Python · 共 14 题(5单选+5多选+4编程)· 满分 100 分
total = 125斤粮食,分给people = 30位战士。计算每位战士能分到多少斤(整数除法),以及还剩多少斤(取余),以下代码的输出是什么?total = 125
people = 30
each = total // people
remain = total % people
print(each, remain)// 和取余运算符 %——125 // 30 = 4,125 % 30 = 5slogan = "Fight for Freedom",使用以下哪个方法可以得到 "FIGHT FOR FREEDOM"?for i in range(5, 0, -1):
print(i, end=" ")
print("出发!")hero = "刘胡兰"
is_hero = (hero == "刘胡兰")
print(is_hero)// 是Java/C++的注释方式题目描述:
红军长征从江西瑞金出发,已知出发年份为1934年,到达陕北吴起镇为1935年。请你编写程序,输入两个年份(出发年份和到达年份),计算长征跨越了多少个年份。同时,输入长征总里程(里),计算平均每年行军多少里(保留1位小数)。
输入格式:
第一行两个整数,分别为出发年份和到达年份,用空格分隔。
第二行一个整数,表示总行军里程(里)。
输出格式:
第一行输出"跨越年份:X年"
第二行输出"平均每年行军:Y里"(Y保留1位小数)
示例输入:
示例输出:
# 输入出发年份和到达年份
line = input().split()
start_year = int(line[0])
end_year = int(line[1])
# 跨越的年份数(包含起止年份)
years = end_year - start_year + 1
# 输入总里程
total_distance = int(input())
# 计算平均每年行军里程
avg_per_year = total_distance / years
print("跨越年份:" + str(years) + "年")
print("平均每年行军:" + str(round(avg_per_year, 1)) + "里")
题目描述:
在革命战争年代,红军有时会用简单的"反转法"来隐藏标语信息。规则是:将输入的标语字符串从头到尾完全反转后输出。例如:"红军不怕远征难" 反转后为 "难征远怕不军红"。请你编写程序,输入一句红色标语,输出反转后的标语。
输入格式:
一行字符串,表示原始标语(可能包含中文、英文、数字和空格)。
输出格式:
一行,反转后的字符串。
示例输入1:
不忘初心牢记使命
示例输出1:
命使记牢心忘初不
示例输入2:
Fight for Freedom
示例输出2:
modeerF rof thgiF
示例输入:
示例输出:
slogan = input() # 使用字符串切片反转:[::-1] 表示从尾到头以步长-1取字符 reversed_slogan = slogan[::-1] print(reversed_slogan)
题目描述:
学校举办"我最崇敬的革命英雄"评选活动,每位同学投票给一位英雄。请你编写程序,输入投票记录,统计每位英雄的得票数,并按照得票数从高到低输出排名。如果得票数相同,则按英雄名字的字典序升序排列。
输入格式:
第一行一个正整数 n(1 ≤ n ≤ 100),表示投票人数。
接下来 n 行,每行一个英雄名字(如"雷锋"、"黄继光"等)。
输出格式:
按得票数从高到低输出,每行格式为"英雄名:X票"。得票相同则按名字字典序升序。
示例输入:
示例输出:
n = int(input())
# 统计每位英雄的得票数
vote_dict = {}
for i in range(n):
name = input()
if name in vote_dict:
vote_dict[name] += 1
else:
vote_dict[name] = 1
# 将字典转为列表,按票数降序、名字升序排序
items = []
for name in vote_dict:
items.append((name, vote_dict[name]))
# 冒泡排序:先按票数降序,票数相同按名字升序
for i in range(len(items)):
for j in range(i + 1, len(items)):
# 需要交换的条件:票数更少 或 票数相同但名字更大
if items[i][1] < items[j][1] or (items[i][1] == items[j][1] and items[i][0] > items[j][0]):
items[i], items[j] = items[j], items[i]
# 输出结果
for name, count in items:
print(name + ":" + str(count) + "票")
题目描述:
某学校根据学生的年龄段,推荐参观不同的红色教育基地。规则如下:
- 6岁及以下:推荐"红色绘本馆"
- 7~12岁:推荐"少年英雄纪念馆"
- 13~15岁:推荐"革命历史博物馆"
- 16~18岁:推荐"长征精神体验馆"
- 19岁及以上:推荐"红色文化研修院"
请你编写程序,输入 n 位学生的姓名和年龄,依次输出每位学生的推荐基地。
输入格式:
第一行一个正整数 n(1 ≤ n ≤ 50)。
接下来 n 行,每行一个学生姓名和一个整数年龄,用空格分隔。
输出格式:
n 行,每行格式为"姓名:推荐基地名称"。
示例输入:
示例输出:
n = int(input())
for i in range(n):
line = input().split()
name = line[0]
age = int(line[1])
if age <= 6:
place = "红色绘本馆"
elif age <= 12:
place = "少年英雄纪念馆"
elif age <= 15:
place = "革命历史博物馆"
elif age <= 18:
place = "长征精神体验馆"
else:
place = "红色文化研修院"
print(name + ":" + place)