内容正文:
浙江强基联盟2023-2024学年第二学期高一年级5月联考
技术学科试题
考生须知:
本试题卷分两部分,第一部分信息技术,第二部分通用技术。全卷共6页,第一部分1至3页,第二部分4至6页。满分100分,考试时间90分钟。
1.考生答题前,务必将自己的姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸上。
2.选择题的答案须用2B铅笔将答题纸上对应题目的答案标号涂黑,如要改动,须将原填涂处用橡皮擦净。非选择题的答案须用黑色字迹的签字笔或钢笔写在答题纸上相应区域内,答案写在本试题卷上无效。
3.非选择题的答案须用黑色字迹的签字笔或钢笔写在答题纸上相应区域内,作图时可先使用2B铅笔,确定后须用黑色字迹的签字笔或钢笔描黑,答案写在本试题卷上无效。
第一部分 信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 下列关于数据、信息和知识的说法,正确的是( )
A. 虚假的数据不能承载任何信息 B. 信息往往会随着时间推移而变化
C. 书本上的符号、文字、数字是信息 D. 不同的人接收同一信息所构建的知识是相同的
2. 对某图片进行数字化的过程,以下说法不正确的是( )
A. 数字图像包括矢量图形和位图图像 B. 图片数字化的过程包括采样、量化和编码
C. 数字图像的文件格式有BMP、JPEG、MP3、PNG 等 D. 数字化后的图片在计算机中的存储形式是二进制数据
3. 某电商系统在顾客登录系统时,可通过刷脸或指纹识别等方式实现身份认证。在浏览商品的过程中,系统利用大数据深入挖掘顾客的购物历史和浏览记录,智能推荐与顾客兴趣和需求高度匹配的商品,大大提高了购买转化率。下列关于数据管理与安全的说法,不正确的是( )
A. 安装杀毒软件不能完全防止系统被病毒入侵
B. 电商系统中身份认证信息存储在系统数据库中
C. 对电商系统的数据进行加密处理可以保证数据的完整性
D. 电商系统应定期进行数据备份,以应对潜在的数据丢失风险
4. 某电商系统在顾客登录系统时,可通过刷脸或指纹识别等方式实现身份认证。在浏览商品的过程中,系统利用大数据深入挖掘顾客的购物历史和浏览记录,智能推荐与顾客兴趣和需求高度匹配的商品,大大提高了购买转化率。下列关于数据与大数据的说法,正确的是( )
A. 大数据技术不强调对因果关系的探求 B. 电商系统中的大数据具有极高的价值密度
C. 处理大数据时会随机抽取部分样本进行研究 D. 通过用户的浏览记录就能精确预测用户的未来行为
5. 设计算法计算班级技术成绩平均分,下列说法不正确的是( )
A. 计算平均分的过程可以采用循环结构
B. 该算法可以没有输入,但至少有一个输出
C. 该算法可以用自然语言、流程图、伪代码来描述
D. 可以设计不同的算法来求平均分,说明算法具有不确定性
6. 某算法的部分流程图如图所示,若输入a的值依次为:11,7,8,10,19,15,3,10,则输出的结果为( )
A. 45 3 B. 45 5 C. 55 3 D. 55 5
7. 下列表达式中的值与其他选项不同的是( )
A. 80//abs(3-8) B. len("2024")**2 C. 23%4*5+1 D. int(3.8)*4
8. 有如下python程序段。
a = 15; b = 9
if a % 5 == 0:
print(1)
elif a % 5 == 0 and b % 3 == 0:
print(2)
else:
print(3)
则运行程序后,输出结果为( )
A. 1 B. 2 C. 3 D. 无输出
9. 有如下python程序段。
m = n = 0
for i in range(10):
if i % 3 == 0:
m += i
elif i % 3 == 1:
n -= i
运行程序后,下列说法正确的是( )
A. i的值为10 B. m+n的结果为-4 C. m-n的结果为30 D. m += i的执行次数为3
10. 下列程序无法将字符串s倒序输出的是( )
A.
res = ""
for i in s:
res = i + res
print(res)
B.
for i in range(len(s)-1,-1,-1):
print(s[i], end="")
C.
for i in range(len(s)):
print(s[len(s)-i],end="")
D.
print(s[::-1])
A. A B. B C. C D. D
11. 有如下Python程序段:
s = [3,5,2,7,4]
m1 = m2 = s[0]
i=1
while i<len(s):
if s[i] >= m1:
m2 = m1
m1 = s[i]
elif s[i] >= m2:
m2 = s[i]
i=i+1
print(m2)
执行上述程序后,输出的结果是( )
A 7 B. 5 C. 4 D. 3
12. 现有包含数字0~9字符串s,编写程序去除s中开头和结尾的连续0并输出结果,例如s=“00102000”,输出“102”。
s = input()
L = R = -1
for i in range(len(s)):
if s[i] != "0":
if ① :
L = i
R = i
print(s[② ])
则划线①②处的代码应为( )
A. ①L != -1 ②L:R B. ①L == -1 ②L:R C. ①L != -1 ②L:R+1 D. ①L == -1 ②L:R+1
二、非选择题(本大题共3小题,其中第13小题7分,第14小题9分,第15小题10分,共26分)
13. 数据解密。某文本加密算法加密后形成加密文本和密钥文本,密钥文本为加密文本每个字符在原文中的索引。例如:
● 加密文本:天我由我命由不
● 密钥文本:6,0,5,3,1,2,4
● 解密后,得到原文本:我命由我不由天
编写解密程序,输入加密文本和密钥文本,输出原文本。
miwen = input("请输入密文:")
miyao = input("请输入密钥:")
miyao += "," #A 处
yuanwen = ""; num = 0
for i in ①____:
if "0"<=i<="9":
num = num * 10 + int(i) #B处
else:
yuanwen = yuanwen + miwen[num]
②____
print(yuanwen)
(1)若加密文本为:“成到马功”,密钥文本为“2,1,0,3”,则原文本为____。
(2)请完成划线处的填空。
(3)关于上述代码,下列说法正确的是____(单选,填字母)。
A.若将“A处”代码修改为miyao += "。",则程序运行结果不变
B.若将“B处”代码修改为num = num * 10 + i,则程序输出仍为密文
C.密钥中可能存在两个相同的数字
14. 学生成绩分析。学校某次模拟考试的技术成绩存储在文件“score.xlsx”文件中,部分数据如图a所示。现要对考试成绩进行数据处理与分析,请回答以下问题:
图a 图b
(1)若利用Excel软件对数据进行处理,要计算技术总分(G列),可以通过G2单元格中的公式向下自动填充得到,则G2单元格中的公式是____
(2)利用pandas模块分析数据,要筛选出技术总分前10的同学,实现程序如下
import pandas as pd
import matplotlib.pyplot as plt
# 设置中文字体 代码略
df = pd.read_excel("score.xlsx")
print(df1.head(10))
划线处可行的代码为____(单选,填字母)
A.df1=df.sort_values("技术", ascending=False)
B.df1=df.sort_values("技术", ascending=True)
C.df1=df.sort_values("技术")[0:10]
(3)在对数据进行简单处理后,使用matplotlib绘制如图b所示图表,实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
# 接上题
df2 = df.groupby(‘①____’, as_index=False)["技术"].mean()
plt.title("各班级平均分")
plt.bar(②____)
plt.show()
(4)根据分析结果可知,技术学科平均分最高的班级为____
15. 微信抢红包。每逢佳节,微信群中总会上演“抢红包”大戏。通过对游戏的深度参与,发现要实现抢红包游戏,需满足以下条件:
①所有人抢到的金额相加与总金额相等;
②每个人至少抢到1分钱;
③每个人抢到的金额随机;
假设总金额为m元,要分发给n个人,现设计如下算法:将金额视为一段区间,随机生成n-1不重复点将这段区间划分为n段,每段区间的长度即每人抢到的红包额度。
(1)为方便运算,使问题在整数范围内解决,可将总金额乘以100,此时金额的单位为分。若将50元分发给18个人,则需在[1,5000)长度的范围内随机生成____个不重复的数。
(2)设计函数work(m,t),在指定区间[0,m]内随机生成不重复的整数,生成的整数存储在列表dot中,可以将[0,m]划分成t个区间。代码如下:
函数与方法
功能
lst.append(x)
在列表lst队尾添加一个元素x
random.randint(1,m)
在[1,m]范围内生成一个随机整数
import random
def work(m,t):
dot=[]
dot. append(0) #区间起点指定为0
i=1
while i<t:
x=random. randint(1m)
while x in dot:
x=random. randint(1,m)
dot. append(x)
i=i+1
dot. append(m) #区间终点指定为m
return dot
以下与加框处代码功能相同的是____(单选,填字母)
A.
if x in dot:
dot. append(x)
i=i+1
B.
if x not in dot:
dot. append(x)
i=i+1
C.
if x in dot:
x=random. randint(1,m)
dot append(x)
i=i+1
D.
if x not in dot:
dot. append(x)
i=i+1
(3)主程序。在对生成的序列进行排序后,计算序列内相邻两点之间的距离(表示每个红包的金额)。实现程序如下,请在划线处填入合适的代码。
m=float(input("请输入红包金额m="))
n=int(input("请输入红包个数n="))
a.sort() #对a进行升序排序
max,pos,i=0,0,1
while i<=len(a)-1:
red=①____
print("第", i, "个红包:", red/100)
if red>max:
max=red
②____
i+=1
print("手气最佳:", pos, ", 金额:", max/100, end="")
(4)加框处代码有误,请改正。____
第1页/共1页
学科网(北京)股份有限公司
$$
浙江强基联盟2023-2024学年第二学期高一年级5月联考
技术学科试题
考生须知:
本试题卷分两部分,第一部分信息技术,第二部分通用技术。全卷共6页,第一部分1至3页,第二部分4至6页。满分100分,考试时间90分钟。
1.考生答题前,务必将自己的姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸上。
2.选择题的答案须用2B铅笔将答题纸上对应题目的答案标号涂黑,如要改动,须将原填涂处用橡皮擦净。非选择题的答案须用黑色字迹的签字笔或钢笔写在答题纸上相应区域内,答案写在本试题卷上无效。
3.非选择题的答案须用黑色字迹的签字笔或钢笔写在答题纸上相应区域内,作图时可先使用2B铅笔,确定后须用黑色字迹的签字笔或钢笔描黑,答案写在本试题卷上无效。
第一部分 信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 下列关于数据、信息和知识的说法,正确的是( )
A. 虚假的数据不能承载任何信息 B. 信息往往会随着时间推移而变化
C. 书本上的符号、文字、数字是信息 D. 不同的人接收同一信息所构建的知识是相同的
【答案】B
【解析】
【详解】本题考查数据、信息与知识。虚假的数据虽然不准确,但仍然可以承载信息,A选项错误。信息往往会随着时间推移而变化,这说明信息具有时效性,B选项正确。书本上的符号、文字、数字是数据,通过解读这些数据才能获得信息,C选项错误。不同的人接收同一信息所构建的知识可能会因为个人的理解和背景不同而有所不同,D选项错误。故答案为:B。
2. 对某图片进行数字化的过程,以下说法不正确的是( )
A. 数字图像包括矢量图形和位图图像 B. 图片数字化的过程包括采样、量化和编码
C. 数字图像的文件格式有BMP、JPEG、MP3、PNG 等 D. 数字化后的图片在计算机中的存储形式是二进制数据
【答案】C
【解析】
【详解】本题考查图片数字化。数字图像的文件格式有BMP、JPEG、MP3、PNG等,其中MP3是音频文件格式,与图片无关。故答案为:C。
3. 某电商系统在顾客登录系统时,可通过刷脸或指纹识别等方式实现身份认证。在浏览商品的过程中,系统利用大数据深入挖掘顾客的购物历史和浏览记录,智能推荐与顾客兴趣和需求高度匹配的商品,大大提高了购买转化率。下列关于数据管理与安全的说法,不正确的是( )
A. 安装杀毒软件不能完全防止系统被病毒入侵
B. 电商系统中身份认证信息存储在系统数据库中
C. 对电商系统的数据进行加密处理可以保证数据的完整性
D. 电商系统应定期进行数据备份,以应对潜在的数据丢失风险
【答案】C
【解析】
【详解】本题考查数据管理与安全。对电商系统的数据进行加密处理可以保证数据的机密性,但并不能保证数据的完整性。数据的完整性通常通过其他手段来保障,如数据备份、校验和等。故答案为:C。
4. 某电商系统在顾客登录系统时,可通过刷脸或指纹识别等方式实现身份认证。在浏览商品的过程中,系统利用大数据深入挖掘顾客的购物历史和浏览记录,智能推荐与顾客兴趣和需求高度匹配的商品,大大提高了购买转化率。下列关于数据与大数据的说法,正确的是( )
A. 大数据技术不强调对因果关系的探求 B. 电商系统中的大数据具有极高的价值密度
C. 处理大数据时会随机抽取部分样本进行研究 D. 通过用户的浏览记录就能精确预测用户的未来行为
【答案】A
【解析】
【详解】本题考查大数据。大数据技术强调对大量数据的分析和处理,而不一定追求因果关系的明确性,更关注数据的关联性和模式识别。A选项正确,因为大数据分析主要注重模式和趋势,而非因果关系的探求。B选项错误,大数据的价值密度并不一定极高,通常是从大量低价值密度的数据中挖掘出有价值的信息。C选项错误,大数据处理的优势在于能够处理全量数据,而非仅依赖抽样。D选项错误,虽然大数据可以提供较为准确的预测,但浏览记录仅是众多因素之一,不能完全精确预测用户行为。故答案为:A。
5. 设计算法计算班级技术成绩平均分,下列说法不正确的是( )
A. 计算平均分的过程可以采用循环结构
B. 该算法可以没有输入,但至少有一个输出
C. 该算法可以用自然语言、流程图、伪代码来描述
D. 可以设计不同的算法来求平均分,说明算法具有不确定性
【答案】D
【解析】
【详解】本题考查算法。虽然可以设计不同的算法来求平均分,但这些算法的目标和结果是确定的,即计算班级技术成绩的平均分。不同的算法可能采用不同的计算方法、数据结构或优化策略,但它们的最终目标是相同的,即求取平均分。因此,算法的目标性和确定性意味着算法不具有不确定性。故答案为:D。
6. 某算法的部分流程图如图所示,若输入a的值依次为:11,7,8,10,19,15,3,10,则输出的结果为( )
A. 45 3 B. 45 5 C. 55 3 D. 55 5
【答案】B
【解析】
【详解】本题考查流程图。程序运行过程如下所示:可知最后输出s的值为45,t的值为5。故答案为:B。
n
s
i
t
a
8
0
1
0
11
8
11
2
0
7
8
11
3
1
8
8
11
4
2
10
8
11
5
3
19
8
30
6
3
15
8
45
7
3
3
8
45
8
4
10
8
45
9
5
0
7. 下列表达式中的值与其他选项不同的是( )
A. 80//abs(3-8) B. len("2024")**2 C. 23%4*5+1 D. int(3.8)*4
【答案】D
【解析】
【详解】本题考查表达式。A选项:80//abs(3-8) = 80//5 = 16。B选项:len("2024")**2 = 4**2 = 16。C选项:23%4*5+1 = 3*5+1 = 15+1 = 16。D选项:int(3.8)*4 = 3*4 = 12。故答案为:D。
8. 有如下python程序段。
a = 15; b = 9
if a % 5 == 0:
print(1)
elif a % 5 == 0 and b % 3 == 0:
print(2)
else:
print(3)
则运行程序后,输出结果为( )
A. 1 B. 2 C. 3 D. 无输出
【答案】A
【解析】
【详解】本题考查if语句。a=15,能被5整除,则直接输出1,不运行后序程序。故选择A。
9. 有如下python程序段。
m = n = 0
for i in range(10):
if i % 3 == 0:
m += i
elif i % 3 == 1:
n -= i
运行程序后,下列说法正确的是( )
A. i的值为10 B. m+n的结果为-4 C. m-n的结果为30 D. m += i的执行次数为3
【答案】C
【解析】
【详解】本题考查程序分析。i能被3整除,则累加i给m。i取余数1,则累减i给n。运行结束后m=18,n=-12,则m-n为30。故选择C。
10. 下列程序无法将字符串s倒序输出的是( )
A.
res = ""
for i in s:
res = i + res
print(res)
B.
for i in range(len(s)-1-1,-1):
print(s[i], end="")
C.
for i in range(len(s)):
print(s[len(s)-i],end="")
D.
print(s[::-1])
A. A B. B C. C D. D
【答案】C
【解析】
【详解】本题考查字符串。使用range函数和索引正序遍历字符串,但在输出时索引使用了len(s)-i,会导致索引溢出,因为字符串的索引是从0开始的,所以正确的索引应该是len(s)-1-i,这样才能正确遍历字符串。故答案为:C。
11. 有如下Python程序段:
s = [3,5,2,7,4]
m1 = m2 = s[0]
i=1
while i<len(s):
if s[i] >= m1:
m2 = m1
m1 = s[i]
elif s[i] >= m2:
m2 = s[i]
i=i+1
print(m2)
执行上述程序后,输出的结果是( )
A. 7 B. 5 C. 4 D. 3
【答案】B
【解析】
【详解】本题考查Python程序。s=[3,5,2,7,4],m1=m2=3,i=1进入while循环:i=1,s[i]=5,5>=3,所以m2=3,m1=5;i=2,s[i]=2,2<5,且2<3,不更新m1和m2;i=3,s[i]=7,7>=5,所以m2=5,m1=7;i=4,s[i]=4,4<7,且4<5,不更新m1和m2循环结束后,m2的值是5。故答案为:B。
12. 现有包含数字0~9的字符串s,编写程序去除s中开头和结尾的连续0并输出结果,例如s=“00102000”,输出“102”。
s = input()
L = R = -1
for i in range(len(s)):
if s[i] != "0":
if ① :
L = i
R = i
print(s[② ])
则划线①②处的代码应为( )
A. ①L != -1 ②L:R B. ①L == -1 ②L:R C. ①L != -1 ②L:R+1 D. ①L == -1 ②L:R+1
【答案】D
【解析】
【详解】本题考查Python程序。划线处①应该是判断L是否等于-1,如果L等于-1,表示当前字符不是0,则将L更新为当前索引值i,故填入L == -1。而划线处②应该输出从L到R位置(包括R)的子字符串,故填L:R+1。故答案为:D。
二、非选择题(本大题共3小题,其中第13小题7分,第14小题9分,第15小题10分,共26分)
13. 数据解密。某文本加密算法加密后形成加密文本和密钥文本,密钥文本为加密文本每个字符在原文中的索引。例如:
● 加密文本:天我由我命由不
● 密钥文本:6,0,5,3,1,2,4
● 解密后,得到原文本:我命由我不由天
编写解密程序,输入加密文本和密钥文本,输出原文本
miwen = input("请输入密文:")
miyao = input("请输入密钥:")
miyao += "" #A 处
yuanwen = ""; num = 0
for i in ①____:
if "0"<=i<="9":
num = num * 10 + int(i) #B处
else:
yuanwen = yuanwen + miwen[num]
②____
print(yuanwen)
(1)若加密文本为:“成到马功”,密钥文本为“2,1,0,3”,则原文本为____。
(2)请完成划线处的填空。
(3)关于上述代码,下列说法正确的是____(单选,填字母)。
A.若将“A处”代码修改为miyao += "。",则程序运行结果不变
B.若将“B处”代码修改为num = num * 10 + i,则程序输出仍为密文
C.密钥中可能存在两个相同的数字
【答案】 ①. 马到成功 ②. miyao ③. num= 0 ④. A
【解析】
【详解】本题考查程序分析。(1)根据密钥可知,索引为2,明文为“马”;索引为1,明文为“到”;索引为0,明文为“成”;索引为3,明文为“功”。故原文为“马到成功”。(2)①根据代码for循环遍历密钥,in后面填写密钥。故填写miyao。 ②每遍历一次i值,就将原文累加到yuanwen,然后需要将num索引初始化为0。故填写num=0。(3)miyao+="。",分隔符不影响if语句的判断,取出一次密钥,解密一次。故选择A。
14. 学生成绩分析。学校某次模拟考试的技术成绩存储在文件“score.xlsx”文件中,部分数据如图a所示。现要对考试成绩进行数据处理与分析,请回答以下问题:
图a 图b
(1)若利用Excel软件对数据进行处理,要计算技术总分(G列),可以通过G2单元格中的公式向下自动填充得到,则G2单元格中的公式是____
(2)利用pandas模块分析数据,要筛选出技术总分前10的同学,实现程序如下
import pandas as pd
import matplotlib.pyplot as plt
# 设置中文字体 代码略
df = pd.read_excel("score.xlsx")
print(df1.head(10))
划线处可行的代码为____(单选,填字母)
A.df1=df.sort_values("技术", ascending=False)
B.df1=df.sort_values("技术", ascending=True)
C.df1=df.sort_values("技术")[0:10]
(3)在对数据进行简单处理后,使用matplotlib绘制如图b所示图表,实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
# 接上题
df2 = df.groupby(‘①____’, as_index=False)["技术"].mean()
plt.title("各班级平均分")
plt.bar(②____)
plt.show()
(4)根据分析结果可知,技术学科平均分最高的班级为____
【答案】 ①. =C2+D2 或 =$C2+$D2 ②. A ③. 班级 ④. df2["班级"],df2["技术"] ⑤. 技选3
【解析】
【详解】本题考查Python综合应用。
(1)要计算技术总分(G列),可以通过G2单元格中的公式向下自动填充得到。由于总分等于信息成绩(C列)加上通用成绩(D列),所以G2单元格中的公式应该是=C2+D2或者=$C2+$D2。这样在填充公式时,列索引会自动调整,行索引会相对于当前行而自动变化,从而计算每个学生的技术总分。故答案为:=C2+D2 或 =$C2+$D2。
(2)要筛选出技术总分前10的同学,可以利用pandas模块的sort_values()函数按照技术成绩进行降序排序,然后取前10行即可。正确的代码应该是选项A,即df1=df.sort_values("技术", ascending=False)。故答案为:A。
(3)在对数据进行简单处理后,使用matplotlib绘制如图b所示图表。首先需要对数据进行分组,计算各班级的平均分。因此,划线处①应该是“班级”,表示按班级进行分组,故答案为:班级。然后在绘制图表时,需要指定x轴和y轴的数据,即各班级和对应的平均技术分数。因此,划线处②应该是df2["班级"]和df2["技术"],故答案为:df2["班级"],df2["技术"]。
(4)根据分析结果可知,技术学科平均分最高的班级应该是技选3。故答案为:技选3。
15. 微信抢红包。每逢佳节,微信群中总会上演“抢红包”大戏。通过对游戏的深度参与,发现要实现抢红包游戏,需满足以下条件:
①所有人抢到的金额相加与总金额相等;
②每个人至少抢到1分钱;
③每个人抢到的金额随机;
假设总金额为m元,要分发给n个人,现设计如下算法:将金额视为一段区间,随机生成n-1不重复的点将这段区间划分为n段,每段区间的长度即每人抢到的红包额度。
(1)为方便运算,使问题在整数范围内解决,可将总金额乘以100,此时金额的单位为分。若将50元分发给18个人,则需在[1,5000)长度的范围内随机生成____个不重复的数。
(2)设计函数work(m,t),在指定区间[0,m]内随机生成不重复的整数,生成的整数存储在列表dot中,可以将[0,m]划分成t个区间。代码如下:
函数与方法
功能
lst.append(x)
在列表lst队尾添加一个元素x
random.randint(1m)
在[1,m]范围内生成一个随机整数
import random
def work(m,t):
dot=[]
dot. append(0) #区间起点指定为0
i=1
while i<t:
x=random. randint(1,m)
while x in dot:
x=random. randint(1,m)
dot. append(x)
i=i+1
dot. append(m) #区间终点指定为m
return dot
以下与加框处代码功能相同的是____(单选,填字母)
A.
if x in dot:
dot. append(x)
i=i+1
B.
if x not in dot:
dot. append(x)
i=i+1
C.
if x in dot:
x=random. randint(1,m)
dot. append(x)
i=i+1
D.
if x not in dot:
dot. append(x)
i=i+1
(3)主程序。在对生成的序列进行排序后,计算序列内相邻两点之间的距离(表示每个红包的金额)。实现程序如下,请在划线处填入合适的代码。
m=float(input("请输入红包金额m="))
n=int(input("请输入红包个数n="))
a.sort() #对a进行升序排序
max,pos,i=0,0,1
while i<=len(a)-1:
red=①____
print("第", i, "个红包:", red/100)
if red>max:
max=red
②____
i+=1
print("手气最佳:", pos, ", 金额:", max/100, end="")
(4)加框处代码有误,请改正。____
【答案】 ①. 17 ②. B ③. a[i]-a[i-1] ④. pos=i ⑤. a=work(m*100, n)
【解析】
【详解】本题考查Python综合应用。
(1)为方便运算,将总金额乘以100后,金额的单位变为分。如果要将50元分发给18个人,则需在[1, 5000)的范围内随机生成17个不重复的数,这样可以将该区间划分为18段。故答案为:17。
(2)主要任务是在指定区间[0, m]内随机生成不重复的整数,生成的整数存储在列表dot中,需要将[0, m]划分成t个区间。根据提供的代码,应在循环内部,判断生成的随机数是否已经存在于dot列表中,如果存在,则重新生成,直到生成的随机数不在dot列表中为止。正确的写法是选项B,即如果生成的随机数不在dot列表中,则将其添加到dot列表中,否则重新生成。故答案为:B。
(3)在计算相邻两个红包之间的距离时,应该是当前红包的金额减去上一个红包的金额,即a[i]与a[i-1]的差值。因此,空1填写为a[i]-a[i-1]。在更新最大红包金额时,需要同时更新最大红包的位置。因为题目要求要输出手气最佳的位置,即抢到最大红包的位置,所以在每次更新最大红包金额时,将最大红包的位置pos更新为当前的索引值i。因此,空2填写为pos=i。函数work(m, t)用于在指定区间[0, m]内随机生成不重复的整数,生成的整数存储在列表dot中。而在题目中,要求金额在整数范围内解决,因此需要将总金额m乘以100,保证金额的单位为分。因此,函数调用时将总金额m乘以100。所以,空3填写为a=work(m*100, n)。
第1页/共1页
学科网(北京)股份有限公司
$$