🎯 考点大通关

专项训练 · 共 20 题 · 本页第 11–20 题(第 2 / 2 页)

答案默认折叠,点击题目或右侧开关控制显示
展开所有答案
11
打印星号矩形(25 分)
输入行数和列数,用星号(*)打印矩形,星号之间相隔一个空格。
📝 示例 1 输入: 请输入行数:3 请输入列数:4
▶ 示例 1 输出: * * * * * * * * * * * *
📝 示例 2 输入: 请输入行数:2 请输入列数:5
▶ 示例 2 输出: * * * * * * * * * *
🧩 已给出的代码
python
#输入矩形的行数和列数
rows=input('请输入行数:')
columns=input('请输入列数:')
# ***********Program***********
(考生在此处填写语句)
# ************End************
▼
参考答案(填入 Program 与 End 之间)
python
rows=int(rows); columns=int(columns)
for i in range(rows):
    print(' '.join('*'*columns))
12
整数各位反转(15 分)
输入任意一个整数,输出各位反转后的整数。若原数字的末尾是 0,则结果应去除开头的 0;若原数字是负数,则结果应保留负号。
📝 示例 1 输入: 请输入一个整数:-20
▶ 示例 1 输出: -2
📝 示例 2 输入: 请输入一个整数:301
▶ 示例 2 输出: 103
🧩 已给出的代码
python
v=input('请输入一个整数:')
# ***********Program***********
(考生在此处填写语句)
# ************End************
print(result)
▼
参考答案(填入 Program 与 End 之间)
python
v=v.strip()
if v.startswith('-'):
    result='-'+v[:0:-1].lstrip('0')
else:
    result=v[::-1].lstrip('0')
if result in ('','-','-0'):
    result='0'

💡 思路提示:要点:先 strip() 去空格;负数保留符号后对剩余部分反转;反转后用 lstrip('0') 去掉前导 0。

13
回文判断(25 分)
输入一个字符串,判断其是不是回文。
回文是指一种正读和反读都能成立的语句,其特点是字符序列从前往后读和从后往前读完全相同,具有对称美。
📝 示例 1 输入: 请输入任一个字符串:123
▶ 示例 1 输出: 不是回文
📝 示例 2 输入: 请输入任一个字符串:上海自来水来自海上
▶ 示例 2 输出: 是回文
🧩 已给出的代码
python
(本题未给出前置代码,直接在 Program-End 之间编写完整语句)
# ***********Program***********
(考生在此处填写语句)
# ************End************
▼
参考答案(填入 Program 与 End 之间)
python
s=input('请输入任一个字符串:')
print('是回文' if s==s[::-1] else '不是回文')
14
停车费分档计算(15 分)
根据输入的停车时间(包括小时和分钟)计算出停车费并显示出来,代码不使用函数,不要求做输入验证,不需要重复使用。
商场地下停车场的收费规则如下:
(1) 每小时的停车费为 5 元;
(2) 前 30 分钟(含 30 分钟)内免费停车;
(3) 超过 30 分钟开始收费,停车时间在 30 分钟到 60 分钟(含 60 分钟)之间收第一个 5 元;
(4) 超过 n 小时但不足 n+1 小时,按 n+1 小时收费;
(5) 全天停车不超过 50 元。
📝 示例 1 输入: 请输入停车的小时数:0 请输入停车的分钟数:30
▶ 示例 1 输出: 停车 0 小时 30 分钟的费用是:0 元
📝 示例 2 输入: 请输入停车的小时数:0 请输入停车的分钟数:59
▶ 示例 2 输出: 停车 0 小时 59 分钟的费用是:5 元
📝 示例 3 输入: 请输入停车的小时数:3 请输入停车的分钟数:30
▶ 示例 3 输出: 停车 3 小时 30 分钟的费用是:20 元
📝 示例 4 输入: 请输入停车的小时数:10 请输入停车的分钟数:1
▶ 示例 4 输出: 停车 10 小时 1 分钟的费用是:50 元
🧩 已给出的代码
python
h=int(input("请输入停车的小时数:"))
m=int(input("请输入停车的分钟数:"))
# ***********Program***********
(考生在此处填写语句)
# ************End************
▼
参考答案(填入 Program 与 End 之间)
python
total=h*60+m
if total<=30:
    fee=0
else:
    fee=((total+59)//60)*5
    if fee>50:
        fee=50
print(f'停车 {h} 小时 {m} 分钟的费用是:{fee} 元')

💡 思路提示:要点:把时间统一换算成分钟;≤30 分钟免费,其余按 (总分钟+59)//60 向上取整小时数计费,最后与 50 元取小。

15
闰年区间输出(25 分)
找到从 start 年至 end 年(包括在内)之间的所有闰年,年份支持倒序输入,将得到的年份用逗号分隔按顺序打印在一行上。
符合以下条件之一的年份即为闰年:
(1) 能被 4 整除而不能被 100 整除;
(2) 能被 400 整除。
📝 示例 1 输入: 请输入开始年份:2000 请输入结束年份:2014
▶ 示例 1 输出: 2000,2004,2008,2012
📝 示例 2 输入: 请输入开始年份:2025 请输入结束年份:2012
▶ 示例 2 输出: 2012,2016,2020,2024
🧩 已给出的代码
python
leap=[]   #保存闰年
start=int(input('请输入开始年份:'))
end=int(input('请输入结束年份:'))
# ***********Program***********
(考生在此处填写语句)
# ************End************
▼
参考答案(填入 Program 与 End 之间)
python
if start>end:
    start,end=end,start
for y in range(start,end+1):
    if y%400==0 or (y%4==0 and y%100!=0):
        leap.append(y)
print(','.join(str(y) for y in leap))
16
单词去重排序(15 分)
接收一系列空格分隔的单词作为输入,去掉所有重复的单词,并按字母排序后打印这些单词。
📝 样例输入: 请输入一组字符串:world hello world hello
▶ 运行结果: hello world
🧩 已给出的代码
python
# ***********Program***********
(考生在此处填写语句)
# ************End************
print(result)
▼
参考答案(填入 Program 与 End 之间)
python
words=input('请输入一组字符串:').split()
result=' '.join(sorted(set(words)))
17
四位数 abcd 求解(25 分)
有一个四位数 abcd,在它左边添一位数字 8 得到一个五位数,在它右边添一位数字 6 得到另一个五位数。这两个五位数的和是 121410。请编写程序找到这个四位数并输出,若找不到,则输出“没有找到符合条件的四位数。”
📝 样例输入 / ▶ 运行结果: (原卷未给出示例输出)
🧩 已给出的代码
python
# ***********Program***********
(考生在此处填写语句)
# ************End************
(参考:设四位数为 x,则 (80000+x)+(10x+6)=121410,解得 x=3764)
▼
参考答案(填入 Program 与 End 之间)
python
for x in range(1000,10000):
    if (80000+x)+(10*x+6)==121410:
        print(x)
        break
else:
    print('没有找到符合条件的四位数。')

💡 思路提示:原卷未给出示例输出,实际答案为 3764(83764 + 37646 = 121410)。

18
count_unique 用户名统计(15 分)
编写函数 count_unique(emails),从电子邮件地址列表 emails 中统计不同用户名的数量(用户名,即“@”符号前的部分)。
📝 样例输入: 请输入邮件地址,以逗号(,)分隔:alice@example.com, bob@example.com, alice@another.com, charlie@example.com
▶ 运行结果: 3
🧩 已给出的代码
python
# ***********Program***********
(考生在此处填写语句)
# ************End************
▼
参考答案(填入 Program 与 End 之间)
python
def count_unique(emails):
    return len({e.split('@')[0] for e in emails})
emails=[x.strip() for x in input('请输入邮件地址,以逗号(,)分隔:').split(',')]
print(count_unique(emails))
19
平均值计算(25 分)
获取用户输入的多个数字(不限于整数,浮点数也可以,正负不限),计算数字的平均值,并将计算结果输出到控制台。
📝 示例 1 输入: 请输入多个数字,用空格分隔:1 2 3 5 6
▶ 示例 1 输出: 这些数字的平均值是:3.4
📝 示例 2 输入: 请输入多个数字,用空格分隔: -2 -4 9 2
▶ 示例 2 输出: 这些数字的平均值是:1.25
🧩 已给出的代码
python
v=input('请输入多个数字,用空格分隔:')
# ***********Program***********
(考生在此处填写语句)
# ************End************
▼
参考答案(填入 Program 与 End 之间)
python
nums=[float(x) for x in v.split()]
print(f'这些数字的平均值是:{sum(nums)/len(nums)}')
20
煤场运煤次数(15 分)
已知煤场有 30 吨煤,先用一辆载重 4 吨的卡车运送 3 次,剩下的再用一辆载重为 2.5 吨的汽车运送。请编写程序计算还需要运送几次才能送完。要求汽车载重通过键盘输入。
📝 示例 1 输入: 请输入汽车载重:2.5
▶ 示例 1 输出: 载重 2.5 吨的汽车需要运送 8.0 次才能送完
📝 示例 2 输入: 请输入汽车载重:3
▶ 示例 2 输出: 载重 3.0 吨的汽车需要运送 6.0 次才能送完
🧩 已给出的代码
python
total=30   #总煤量
truck_load=4   #卡车的载重
truck_times=3   #卡车运送次数
# ***********Program***********
(考生在此处填写语句)
# ************End************
▼
参考答案(填入 Program 与 End 之间)
python
import math
car_load=float(input('请输入汽车载重:'))
remaining=total-truck_load*truck_times
times=math.ceil(remaining/car_load)
print(f'载重 {car_load} 吨的汽车需要运送 {float(times)} 次才能送完')