内容正文:
2025学年第一学期高二期末测试卷
技术学科试卷
第一部分 信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、错选、多选均不得分)
1. 某会议为参会者提供智能眼镜,该眼镜配备高清摄像头、多麦克风阵列与智能系统,可实时采集视觉、语音数据,并实时传输给智能系统。通过智能系统实现视觉信息识别、语音识别、不同语言的无障碍实时交流等。下列关于该智能眼镜中数据和信息的说法,正确的是( )
A. 智能眼镜只能通过摄像头采集数据
B. 智能眼镜采集的所有数据表现形式相同
C. 智能系统对采集到的数据进行分析后可提取信息
D. 智能眼镜获取的信息随着时间的变化不会发生改变
2. 某会议为参会者提供智能眼镜,该眼镜配备高清摄像头、多麦克风阵列与智能系统,可实时采集视觉、语音数据,并实时传输给智能系统。通过智能系统实现视觉信息识别、语音识别、不同语言的无障碍实时交流等。在智能眼镜使用过程中,下列应用不涉及人工智能技术的是( )
A. 对不同语言进行实时翻译 B. 识别不同物品并显示相关信息
C. 使用高清摄像头拍照 D. 将语音实时转成文字
3. 某会议为参会者提供智能眼镜,该眼镜配备高清摄像头、多麦克风阵列与智能系统,可实时采集视觉、语音数据,并实时传输给智能系统。通过智能系统实现视觉信息识别、语音识别、不同语言的无障碍实时交流等。下列关于智能系统的说法,正确的是( )
A. 该系统可以处理未数字化的数据
B. 该系统只能处理结构化数据
C. 该系统在数据传输过程中可通过数据校验提高数据保密性
D. 该系统对数据实时处理结果为不同语言的无障碍交流提供支撑
4. 算式(11)2+(11010)2的运算结果是( )
A. (27)10 B. (28)10 C. (29)10 D. (30)10
5. 某市“智慧交通系统”通过遍布全城的摄像头、地感线圈、公交车GPS、市民手机APP,不间断地采集数据形成交通大数据,包括车流速度、拥堵路段、交通事故、信号灯状态等。数据中心以交通大数据为依据,实现动态调整红绿灯时长、预测拥堵趋势等功能,并为交通管理提供智能决策支持。下列关于交通大数据特征的说法,不正确的是( )
A. 交通大数据的数据体量大
B. 交通大数据的来源广,数据类型多
C. 交通大数据产生和处理速度快
D. 交通大数据中有很多有价值的数据,其价值密度高
6. 某市“智慧交通系统”通过遍布全城的摄像头、地感线圈、公交车GPS、市民手机APP,不间断地采集数据形成交通大数据,包括车流速度、拥堵路段、交通事故、信号灯状态等。数据中心以交通大数据为依据,实现动态调整红绿灯时长、预测拥堵趋势等功能,并为交通管理提供智能决策支持。下列关于交通大数据处理的说法,正确的是( )
A 处理大数据时,一般采用分治思想
B. 根据交通路况实时更新导航线路属于静态数据处理
C. 根据大数据预测的趋势一定正确
D. 大数据处理的结果不能实现可视化
7. 下列关于人工智能的说法,正确的是( )
A. 人工智能技术的发展只依赖于计算机技术
B. 人工智能的发展会代替人类所有岗位
C. 联结主义人工智能需要从海量数据出发进行训练
D. 无人驾驶仅通过符号主义人工智能就能实现
8. 下列关于数据编码的说法,正确的是( )
A. 扫描二维码获取信息是解码的过程
B. 使用数码相机拍照是数模转换的过程
C. 计算机中的字符只能以ASCII码的形式存储
D. 一幅1024*256、16色未压缩位图图像,其存储容量约为1.5MB
9. 回文串是指正着读和反着读都一样的字符串,如:“level”、“racecar”都是回文串。下列Python表达式中,能判断字符串s为回文串的是( )
A. s==s[:] B. s==s[::-1]
C. s==s[:-1] D. s[1en(s)//2::-1]==s[1en(s)//2::]
10. 用流程图描述“温度数据t大于45或者烟雾数据s大于40时报警,否则不报警”。st为1表示报警,为0表示不报警,下列流程图表述不正确的是( )
A. B.
C. D.
11. 有如下Python 程序段:
s=input()
res=0; f=1
for i in s:
if '0' <= i and i <= '9':
res=res+int(i)*f
else:
f=(ord(i)-ord('a'))%2
运行该程序段后,res的值为5,则输入s的值为( )
A. a123b4 B. 1a23b4 C. 12a3b4 D. 123ab4
12. 有如下Python程序段:
s="abcdefgh"; key=[1,0,2,3]
i=0; s_new= ""
while i < len(s)
if i <= 3:
s_new=s_new+s[key[i]]
else:
s_new=s[i]+s_new
i=i+1
运行该程序段后,s_new的值为( )
A. bacdfegh B. bacdefgh C. hgfedcab D. hgfebacd
二、非选择题(本大题共3小题,其中第13小题6分,第14小题10分,第15小题10分,共26分)
13. 某文具店售卖圆珠笔和笔记本,圆珠笔每支3元,笔记本每本8元。现要求编写Python程序,输入文具店当天售卖的圆珠笔和笔记本的总数count,总销售额money,计算并输出圆珠笔和笔记本的销量(输入保证有唯一解)。程序运行结果如表所示。
请输入文具店当天售卖的圆珠笔和笔记本的总数:150
请输入文具店当天售卖的圆珠笔和笔记本的总销售额:850
经计算:圆珠笔的销量为:70支笔记本的数量为:80本
(1)算法一。小明利用数学知识列方程,设圆珠笔销量为a,笔记本的销量为b,根据条件得:
a+b=count 解方程组可得:a=(8count-money)/5
3a+8b=money b=count-a
小明根据算法一编写的Python程序如下,补全程序中划线处语句:
count=int(input("请输入文具店当天售卖的圆珠笔和笔记本的总数:"))
money=int(input("请输入文具店当天售卖的圆珠笔和笔记本的总销售额:"))
a=(8*count-money)//5
b=__________
print("经计算:", "圆珠笔的销量为:", a, "支", "笔记本的数量为:", b, "本")
(2)算法二。小明利用其他算法解决该问题,编写的Python程序如下,补全程序中划线处语句:
count=int(input("请输入文具店当天售卖的圆珠笔和笔记本的总数:"))
money=int(input("请输入文具店当天售卖圆珠笔和笔记本的总销售额:"))
for a in range(count+1):
b=count-a
if__________:
print("经计算:", "圆珠笔的销量为:", a, "支", "笔记本的数量为:", b, "本")
break
(3)小明解决该问题采用的算法二为______(单选,填字母:A.解析算法/B.枚举算法)。
14. 某学校食堂进行了一次“食堂最受欢迎菜品”调查,教职工与学生共同参与投票,每人选择1款最喜爱的菜品,将投票数据存储在文件“toupiao.xlsx”中,部分数据如表所示。
投票编号
菜品选择
人群身份
1
红烧鸡腿
学生
2
酸辣土豆丝
3
肉丝炒面
学生
4
番茄炒蛋
教职工
5
红烧鸡腿
学生
6
酸辣土豆丝
学生
7
红烧鸡腿
学生
8
番茄炒蛋
教职工
9
清炒时蔬
教职工
10
肉丝炒面
学生
(1)观察如表所示数据,数据中存在的问题是________(单选,填字母:A.数据重复/B.数据缺失/C.逻辑错误)。
(2)统计投票数据,得到最受学生欢迎的前三个菜品,并绘制如图所示柱形图。实现上述功能的部分Python程序如下,请在划线处选择合适的代码(填字母)。
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel('toupiao.xlsx') #读取Excel文件中的数据
df ["票选数量"]=1 #增加“票选数量”列,该列数据初值均为1
①_________
②_________
③_________
④_________
#设置绘图参数,并显示如图所示的柱形图,代码略
①②③④处可选代码有:
A. df1=df [df.人群身份== "学生"] #筛选
B. df1=df1.groupby("菜品选择", as_index=False).count()#按"菜品选择"分组计数
C. df1=df1.groupby("人群身份", as_index=False).count()#按"人群身份"分组计数
D. df1=df1.sort_values("菜品选择", ascending=False).head(3) #降序排序
E. df1=df1.sort_values("票选数量", ascending=False).head(3)
F. plt.bar(df["菜品选择"], df["票选数量"]) #绘制柱形图
G. plt.bar(df1["菜品选择"] df1["票选数量"])
15. 某次投票选举活动,共5名选手参选。每个投票人可投票1次,可选若干选手(1表示投票,0表示未投票),若该投票人投票多次,最后一次投票有效,其余投票无效。小明收集、整理本次选举的所有投票数据,并存储在文件“sj.csv”中,数据已按投票人编号升序排序,相同编号按投票时间升序排序,部分数据如表所示。根据图中所示投票数据可知,编号为1的投票人投票给选手4,其余选手未被投票,选手1获得的票数为2。
请回答下列问题:
投票人编号
选手1
选手2
选手3
选手4
选手5
1
1
0
0
1
1
1
0
0
0
1
0
2
1
0
1
1
0
2
0
0
0
0
1
2
0
1
1
0
0
3
1
0
1
0
0
4
0
0
1
1
0
5
1
1
0
0
0
(1)根据上述规则和如表所示的投票数据,选手______(填数字)获得的票数最多。
编写Python程序,统计得票数最多的选手(输出选手编号,有并列时,一并输出),主程序如下:
'''读取文件“sj.csv”中的数据存入列表data,如data=[[1, 1, 0, 0, 1, 1], [1, 0, 0, 0, 1, 0], [2, 1, 0, 1, 1, 0], [2, 0, 0, 0, 0, 1], [2, 0, 1, 1, 0, 0], ...];data[i]包含6个数据项,其中data[i][0]存放投票人编号、剩余数据项依次存储选手1到选手5是否被投票,代码略'''
data=rmv(data) #去除无效投票
dic={}
for xp in data: #遍历每个投票人数据
dic=jp(xp, dic) #计票
xs=getmax(dic) #找到得票最多的选手xs
#输出得票最多的选手编号xs及其获得的票数dic[xs[0]]),代码略
(2)定义函数rmv(data),该函数功能是去除列表data中的无效投票并返回。请在划在划线处填入合适的代码。
def rmv(data):
i=1
k=0
while i <= len(data)-1:
if data[k][0] == data[i][0]:
data[k]=data[i]
else:
____________
data[k]=data[i]
i=i+1
data=data[:k+1]
return data
(3)定义函数jp(xp, dic),参数xp形如[1, 1, 0, 0, 1, 1],其每个元素的含义与data[i]中每个元素含义相同。该函数功能是统计列表xp的投票情况,存入字典dic中并返回,如dic={1: 5, 2: 6...},表示选手1目前得票5张,选手2目前得票6张。
def jp(xp, dic):
for i in __________: #依次遍历每位选手是否被投票
if xp[i]==1: #若选手i被投票
if i in dic:
dic[i]=dic[i]+1
else:
dic[i]=1
return dic
(4)定义函数getmax(dic),该函数功能是统计字典dic中最大键值所对应的键,并将该键存入列表xs并返回,若最大键值并列,则相应的键都存入xs。
def getmax(dic):
m=0; xs=[]
for i in dic:
if①_____:
m=dic[i]
②_____
elif dic[i]==m:
xs.append(i) #在列表xs末尾添加一个元素i
return xs
第1页/共1页
学科网(北京)股份有限公司
$
2025学年第一学期高二期末测试卷
技术学科试卷
第一部分 信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、错选、多选均不得分)
1. 某会议为参会者提供智能眼镜,该眼镜配备高清摄像头、多麦克风阵列与智能系统,可实时采集视觉、语音数据,并实时传输给智能系统。通过智能系统实现视觉信息识别、语音识别、不同语言的无障碍实时交流等。下列关于该智能眼镜中数据和信息的说法,正确的是( )
A. 智能眼镜只能通过摄像头采集数据
B. 智能眼镜采集的所有数据表现形式相同
C. 智能系统对采集到的数据进行分析后可提取信息
D. 智能眼镜获取的信息随着时间的变化不会发生改变
【答案】C
【解析】
【详解】本题考查数据采集与信息处理的基本概念。智能眼镜不仅通过摄像头采集视觉数据,还通过多麦克风阵列采集语音数据,因此选项A错误。智能眼镜采集的数据包括视觉和语音数据,这些数据的表现形式不同,选项B错误。智能系统对采集到的数据进行分析后,可以提取出有用的信息,这是数据处理的基本功能,选项C正确。智能眼镜获取的信息会随着时间和环境的变化而变化,选项D错误。故答案为:C。
2. 某会议为参会者提供智能眼镜,该眼镜配备高清摄像头、多麦克风阵列与智能系统,可实时采集视觉、语音数据,并实时传输给智能系统。通过智能系统实现视觉信息识别、语音识别、不同语言的无障碍实时交流等。在智能眼镜使用过程中,下列应用不涉及人工智能技术的是( )
A. 对不同语言进行实时翻译 B. 识别不同物品并显示相关信息
C. 使用高清摄像头拍照 D. 将语音实时转成文字
【答案】C
【解析】
【详解】本题考查人工智能技术的应用场景识别能力。选项A“对不同语言进行实时翻译”涉及自然语言处理和机器翻译技术,属于人工智能的应用;选项B“识别不同物品并显示相关信息”涉及计算机视觉技术,也是人工智能的应用;选项C“使用高清摄像头拍照”仅仅是一个硬件功能,不涉及人工智能技术;选项D“将语音实时转成文字”涉及语音识别技术,属于人工智能的应用。故答案为:C。
3. 某会议为参会者提供智能眼镜,该眼镜配备高清摄像头、多麦克风阵列与智能系统,可实时采集视觉、语音数据,并实时传输给智能系统。通过智能系统实现视觉信息识别、语音识别、不同语言的无障碍实时交流等。下列关于智能系统的说法,正确的是( )
A. 该系统可以处理未数字化的数据
B. 该系统只能处理结构化数据
C. 该系统在数据传输过程中可通过数据校验提高数据保密性
D. 该系统对数据实时处理的结果为不同语言的无障碍交流提供支撑
【答案】D
【解析】
【详解】本题考查智能系统的数据处理能力及其应用场景。智能系统通常需要处理数字化的数据,因为未数字化的数据无法直接被计算机系统处理,因此选项A不正确。智能系统不仅可以处理结构化数据,还可以处理非结构化数据,如图像和语音,因此选项B不正确。数据校验主要用于确保数据的完整性和准确性,而不是直接提高数据的保密性,因此选项C不正确。智能系统通过对视觉和语音数据的实时处理,能够实现不同语言的无障碍交流,这正是题干中所描述的功能,因此选项D正确。故答案为:D。
4. 算式(11)2+(11010)2的运算结果是( )
A. (27)10 B. (28)10 C. (29)10 D. (30)10
【答案】C
【解析】
【详解】本题考查二进制数转十进制数及二进制加法运算。先将二进制数转为十进制数,(11)₂=3,(11010)₂=26,两者相加3+26=29,对应选项为(29)₁₀。因此,本题选择C选项。
5. 某市“智慧交通系统”通过遍布全城的摄像头、地感线圈、公交车GPS、市民手机APP,不间断地采集数据形成交通大数据,包括车流速度、拥堵路段、交通事故、信号灯状态等。数据中心以交通大数据为依据,实现动态调整红绿灯时长、预测拥堵趋势等功能,并为交通管理提供智能决策支持。下列关于交通大数据特征的说法,不正确的是( )
A. 交通大数据的数据体量大
B. 交通大数据的来源广,数据类型多
C 交通大数据产生和处理速度快
D. 交通大数据中有很多有价值数据,其价值密度高
【答案】D
【解析】
【详解】本题考查交通大数据的特征。交通大数据通常具有以下几个特征:数据体量大、来源广泛且数据类型多样、产生和处理速度快、以及数据的价值密度低。选项A、B、C均正确描述了交通大数据的特征,而选项D中提到“交通大数据中有很多有价值的数据,其价值密度高”是不正确的,因为大数据的一个显著特征是价值密度低,即在大量数据中,真正有价值的信息所占比例较小。故答案为:D。
6. 某市“智慧交通系统”通过遍布全城的摄像头、地感线圈、公交车GPS、市民手机APP,不间断地采集数据形成交通大数据,包括车流速度、拥堵路段、交通事故、信号灯状态等。数据中心以交通大数据为依据,实现动态调整红绿灯时长、预测拥堵趋势等功能,并为交通管理提供智能决策支持。下列关于交通大数据处理的说法,正确的是( )
A. 处理大数据时,一般采用分治思想
B. 根据交通路况实时更新导航线路属于静态数据处理
C. 根据大数据预测的趋势一定正确
D. 大数据处理的结果不能实现可视化
【答案】A
【解析】
【详解】本题考查大数据处理的基本概念和应用能力。处理大数据时,通常采用分治思想,这是因为大数据量大且复杂,分治思想可以将大数据分成多个小块进行处理,提高效率和处理能力。选项A正确地描述了这一点。选项B错误,因为实时更新导航线路属于动态数据处理。选项C错误,因为大数据预测的趋势并不一定总是正确,可能受到数据质量和模型的影响。选项D错误,因为大数据处理的结果可以通过图表等形式实现可视化。故答案为:A。
7. 下列关于人工智能的说法,正确的是( )
A. 人工智能技术的发展只依赖于计算机技术
B. 人工智能的发展会代替人类所有岗位
C. 联结主义人工智能需要从海量数据出发进行训练
D 无人驾驶仅通过符号主义人工智能就能实现
【答案】C
【解析】
【详解】本题考查人工智能的基本概念及其发展特点。人工智能技术的发展不仅依赖于计算机技术,还涉及数学、神经科学、认知科学等多个领域,因此选项A不正确。人工智能的发展虽然会影响部分岗位,但不可能代替人类所有岗位,因为许多工作需要人类的创造力和情感判断,因此选项B不正确。联结主义人工智能是指通过模拟人脑神经网络进行学习和训练,这通常需要从海量数据中进行训练以提高模型的准确性和泛化能力,因此选项C正确。无人驾驶技术需要结合符号主义和联结主义人工智能来实现复杂的环境感知和决策,因此选项D不正确。故答案为:C。
8. 下列关于数据编码的说法,正确的是( )
A. 扫描二维码获取信息是解码的过程
B. 使用数码相机拍照是数模转换的过程
C. 计算机中的字符只能以ASCII码的形式存储
D. 一幅1024*256、16色未压缩位图图像,其存储容量约为1.5MB
【答案】A
【解析】
【详解】本题考查数据编码与解码、数模转换、字符编码及图像存储容量的计算。A. 扫描二维码获取信息是解码的过程。二维码本身是编码的信息,扫描二维码的过程是将编码的信息解码为可读信息的过程,因此该说法正确。B. 使用数码相机拍照是数模转换的过程。数码相机拍照是将光学模拟信号转换为计算机可存储的数字信号,属于模数转换(A/D转换),不是数模转换,说法错误。C. 计算机中的字符只能以ASCII码的形式存储。计算机中字符可以以多种编码形式存储,如ASCII、Unicode等,因此该说法错误。D. 一幅1024*256、16色未压缩位图图像,其存储容量约为1.5MB。16色意味着每个像素需要4位(2^4=16),图像总像素为1024*256,存储容量为1024*256*4位 = 1024*256*0.5字节 = 131072字节 = 128KB,因此该说法错误。故答案为:A。
9. 回文串是指正着读和反着读都一样的字符串,如:“level”、“racecar”都是回文串。下列Python表达式中,能判断字符串s为回文串的是( )
A s==s[:] B. s==s[::-1]
C. s==s[:-1] D. s[1en(s)//2::-1]==s[1en(s)//2::]
【答案】B
【解析】
【详解】本题考查字符串操作和回文判断的能力。选项B分析:s[::-1]中起始、结束省略,默认取整个字符串,步长为-1表示反向遍历,得到的就是原字符串反转后的结果。回文串的定义是正读反读相同,因此判断s == s[::-1]即可判断是否为回文串,该选项正确。A选项:s[:]就是原字符串本身,无论s是不是回文,该表达式恒为真,无法判断,错误。C选项:s[:-1]是去掉原字符串最后一个字符的子串,长度比原串小1,不可能和原串相等,错误。D选项:切片逻辑错误,无法正确匹配回文的前后半段,不能正确判断回文,错误。故本题应选B。
10. 用流程图描述“温度数据t大于45或者烟雾数据s大于40时报警,否则不报警”。st为1表示报警,为0表示不报警,下列流程图表述不正确的是( )
A. B.
C. D.
【答案】C
【解析】
【详解】本题考查流程图。当t>45并且s<=40时,会执行0→st;不报警,与题意不符,因此,本题选择C选项。
11. 有如下Python 程序段:
s=input()
res=0; f=1
for i in s:
if '0' <= i and i <= '9':
res=res+int(i)*f
else:
f=(ord(i)-ord('a'))%2
运行该程序段后,res的值为5,则输入s的值为( )
A. a123b4 B. 1a23b4 C. 12a3b4 D. 123ab4
【答案】B
【解析】
【详解】本题考查字符串处理和条件判断的能力。程序逻辑:初始值:res=0(结果变量),f=1(系数变量);遍历输入字符串每个字符。若字符是数字:res = res + 数字值 × f;若不是数字(字母):更新f = (ord(字母) - ord('a')) % 2,即a使f=0,b使f=1。选项A a123b4:第一个字符是a,更新f=0,后续数字1、2、3乘0不改变res,最后b更新f=1,加上4×1,最终res=4,不符合。选项B 1a23b4:初始f=1,第一个数字1得res=1×1=1;然后a更新f=0,2、3乘0不改变res;再b更新f=1,加上4×1,最终res=1+4=5,符合要求。选项C 12a3b4:前两个数字得res=1×1+2×1=3,最后加4×1得res=7,不符合。选项D 123ab4:前三个数字得res=1+2+3=6,最后加4×1得res=10,不符合。故选B。
12. 有如下Python程序段:
s="abcdefgh"; key=[1,0,2,3]
i=0; s_new= ""
while i < len(s)
if i <= 3:
s_new=s_new+s[key[i]]
else:
s_new=s[i]+s_new
i=i+1
运行该程序段后,s_new的值为( )
A. bacdfegh B. bacdefgh C. hgfedcab D. hgfebacd
【答案】D
【解析】
【详解】本题考查Python程序的字符串操作和循环控制能力。程序首先定义了字符串s和列表key,然后通过while循环和if条件语句对 s_new进行构造。初始化:s=abcdefgh,key=[1,0,2,3],i=0, s_new= ""。
i=0时,s_new=+s[1]=b.
i=1时,s_new=b+s[0]=ba.
i=2时,s_new=ba+s[2]=bac.
i=3时,s_new=bac+s[3]=bacd.
i=4时,s_new=s[4]+bacd=ebacd.
i=5时,s_new=s[5]+ebacd=febacd.
i=6时,s_new=s[6]+febacd=gfebacd.
i=7时,s_new=s[7]+gfebacd=hgfebacd.
循环结束,最终s≠w的值为hgfebacd。故答案为:D。
二、非选择题(本大题共3小题,其中第13小题6分,第14小题10分,第15小题10分,共26分)
13. 某文具店售卖圆珠笔和笔记本,圆珠笔每支3元,笔记本每本8元。现要求编写Python程序,输入文具店当天售卖的圆珠笔和笔记本的总数count,总销售额money,计算并输出圆珠笔和笔记本的销量(输入保证有唯一解)。程序运行结果如表所示。
请输入文具店当天售卖的圆珠笔和笔记本的总数:150
请输入文具店当天售卖的圆珠笔和笔记本的总销售额:850
经计算:圆珠笔的销量为:70支笔记本的数量为:80本
(1)算法一。小明利用数学知识列方程,设圆珠笔销量为a,笔记本的销量为b,根据条件得:
a+b=count 解方程组可得:a=(8count-money)/5
3a+8b=money b=count-a
小明根据算法一编写的Python程序如下,补全程序中划线处语句:
count=int(input("请输入文具店当天售卖的圆珠笔和笔记本的总数:"))
money=int(input("请输入文具店当天售卖的圆珠笔和笔记本的总销售额:"))
a=(8*count-money)//5
b=__________
print("经计算:", "圆珠笔的销量为:", a, "支", "笔记本的数量为:", b, "本")
(2)算法二。小明利用其他算法解决该问题,编写的Python程序如下,补全程序中划线处语句:
count=int(input("请输入文具店当天售卖的圆珠笔和笔记本的总数:"))
money=int(input("请输入文具店当天售卖的圆珠笔和笔记本的总销售额:"))
for a in range(count+1):
b=count-a
if__________:
print("经计算:", "圆珠笔的销量为:", a, "支", "笔记本的数量为:", b, "本")
break
(3)小明解决该问题采用的算法二为______(单选,填字母:A.解析算法/B.枚举算法)。
【答案】 ①. count-a ②. 3*a+8*b==money ③. B
【解析】
【详解】本题考查数学建模和编程能力。通过列方程组和编写Python程序解决实际问题。
(1)题干通过方程组推导已经得出a+b=count,变形后可得笔记本销量b = count - a。故答案为:count-a。
(2)算法二枚举所有可能的圆珠笔销量a,算出对应b后,需要验证总销售额是否等于输入的money;总销售额为圆珠笔总价+笔记本总价,Python中判断相等使用双等号==,因此条件为3 * a + 8 * b == money。
(3)枚举算法的核心是列举所有可能的情况,逐一验证是否符合条件;算法二逐个尝试所有可能的圆珠笔销量,找到符合条件的解,属于枚举算法。解析算法是通过数学推导直接用公式计算结果,对应本题的算法一,因此选B。
14. 某学校食堂进行了一次“食堂最受欢迎菜品”调查,教职工与学生共同参与投票,每人选择1款最喜爱的菜品,将投票数据存储在文件“toupiao.xlsx”中,部分数据如表所示。
投票编号
菜品选择
人群身份
1
红烧鸡腿
学生
2
酸辣土豆丝
3
肉丝炒面
学生
4
番茄炒蛋
教职工
5
红烧鸡腿
学生
6
酸辣土豆丝
学生
7
红烧鸡腿
学生
8
番茄炒蛋
教职工
9
清炒时蔬
教职工
10
肉丝炒面
学生
(1)观察如表所示数据,数据中存在的问题是________(单选,填字母:A.数据重复/B.数据缺失/C.逻辑错误)。
(2)统计投票数据,得到最受学生欢迎的前三个菜品,并绘制如图所示柱形图。实现上述功能的部分Python程序如下,请在划线处选择合适的代码(填字母)。
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel('toupiao.xlsx') #读取Excel文件中的数据
df ["票选数量"]=1 #增加“票选数量”列,该列数据初值均为1
①_________
②_________
③_________
④_________
#设置绘图参数,并显示如图所示的柱形图,代码略
①②③④处可选代码有:
A. df1=df [df.人群身份== "学生"] #筛选
B. df1=df1.groupby("菜品选择", as_index=False).count()#按"菜品选择"分组计数
C. df1=df1.groupby("人群身份", as_index=False).count()#按"人群身份"分组计数
D. df1=df1.sort_values("菜品选择", ascending=False).head(3) #降序排序
E. df1=df1.sort_values("票选数量", ascending=False).head(3)
F. plt.bar(df["菜品选择"], df["票选数量"]) #绘制柱形图
G. plt.bar(df1["菜品选择"], df1["票选数量"])
【答案】 ①. B ②. A ③. B ④. E ⑤. G
【解析】
【详解】本题考查数据处理和Python编程能力。
(1)观察如表所示数据,发现第二行的“人群身份”列为空,说明数据中存在缺失值。因此,数据中存在的问题是数据缺失。故答案为:B。
(2)统计投票数据,得到最受学生欢迎的前三个菜品,并绘制柱形图。实现上述功能的Python程序步骤如下:读取数据添加票选数量列后,第一步需要筛选出所有学生的投票数据,因此①选A(筛选人群身份为学生的记录)。筛选完成后,需要按菜品分组统计每个菜品的得票数,因此按菜品选择分组计数,②选B。分组计数得到每个菜品的票数后,需要按得票数降序排序,取出票数最高的前3个菜品,因此按票选数量排序取前3,③选E。最终用处理完成的前3个菜品的数据绘制柱形图,此处使用处理后的df1绘图,因此④选G。(F使用原始全量数据df绘图,不符合需求,因此排除)。
15. 某次投票选举活动,共5名选手参选。每个投票人可投票1次,可选若干选手(1表示投票,0表示未投票),若该投票人投票多次,最后一次投票有效,其余投票无效。小明收集、整理本次选举的所有投票数据,并存储在文件“sj.csv”中,数据已按投票人编号升序排序,相同编号按投票时间升序排序,部分数据如表所示。根据图中所示投票数据可知,编号为1的投票人投票给选手4,其余选手未被投票,选手1获得的票数为2。
请回答下列问题:
投票人编号
选手1
选手2
选手3
选手4
选手5
1
1
0
0
1
1
1
0
0
0
1
0
2
1
0
1
1
0
2
0
0
0
0
1
2
0
1
1
0
0
3
1
0
1
0
0
4
0
0
1
1
0
5
1
1
0
0
0
(1)根据上述规则和如表所示的投票数据,选手______(填数字)获得的票数最多。
编写Python程序,统计得票数最多的选手(输出选手编号,有并列时,一并输出),主程序如下:
'''读取文件“sj.csv”中的数据存入列表data,如data=[[1, 1, 0, 0, 1, 1], [1, 0, 0, 0, 1, 0], [2, 1, 0, 1, 1, 0], [2, 0, 0, 0, 0, 1], [2, 0, 1, 1, 0, 0], ...];data[i]包含6个数据项,其中data[i][0]存放投票人编号、剩余数据项依次存储选手1到选手5是否被投票,代码略'''
data=rmv(data) #去除无效投票
dic={}
for xp in data: #遍历每个投票人数据
dic=jp(xp, dic) #计票
xs=getmax(dic) #找到得票最多的选手xs
#输出得票最多的选手编号xs及其获得的票数dic[xs[0]]),代码略
(2)定义函数rmv(data),该函数功能是去除列表data中的无效投票并返回。请在划在划线处填入合适的代码。
def rmv(data):
i=1
k=0
while i <= len(data)-1:
if data[k][0] == data[i][0]:
data[k]=data[i]
else:
____________
data[k]=data[i]
i=i+1
data=data[:k+1]
return data
(3)定义函数jp(xp, dic),参数xp形如[1, 1, 0, 0, 1, 1],其每个元素的含义与data[i]中每个元素含义相同。该函数功能是统计列表xp的投票情况,存入字典dic中并返回,如dic={1: 5, 2: 6...},表示选手1目前得票5张,选手2目前得票6张。
def jp(xp, dic):
for i in __________: #依次遍历每位选手是否被投票
if xp[i]==1: #若选手i被投票
if i in dic:
dic[i]=dic[i]+1
else:
dic[i]=1
return dic
(4)定义函数getmax(dic),该函数功能是统计字典dic中最大键值所对应的键,并将该键存入列表xs并返回,若最大键值并列,则相应的键都存入xs。
def getmax(dic):
m=0; xs=[]
for i in dic:
if①_____:
m=dic[i]
②_____
elif dic[i]==m:
xs.append(i) #在列表xs末尾添加一个元素i
return xs
【答案】 ①. 3 ②. k=k+1或k+=1 ③. range(1, 6)或range(1,len(xp))或range(1,6,1) ④. dic[i]>m ⑤. xs=[i]
【解析】
【详解】本题考查数据处理和字典操作能力。
(1)规则:同一投票人最后一次投票有效,整理每个投票人有效票后统计得票:选手1:2票,选手2:2票,选手3:3票,选手4:2票,选手5:0票,因此得票最多的是3。故答案为:3。
(2)算法逻辑:用指针k记录有效投票的存储位置,原数据已按投票人编号排序,同编号连续: 若当前遍历的i和k编号相同,直接覆盖k位置(保留最后一次投票); 若编号不同,先让k后移一位(k += 1),再将当前i的投票存入新的k位置,因此划线处填k=k+1或k+=1。
(3)xp[0]存储投票人编号,xp[1]~xp[5]依次对应选手1~选手5的投票情况,因此遍历选手需要取索引1~5,即range(1,6)或range(1,6,1)(或range(1, len(xp)),因为xp长度固定为6)。
(4)算法逻辑:初始最大得票m=0,结果列表xs为空:若当前选手得票dic[i]大于当前最大m,说明找到更大的得票,更新最大得票m,清空原结果列表,将当前选手存入结果,因此①填dic[i] > m,②填xs = [i]; 若得票等于当前最大m,直接追加到结果列表即可,符合后续代码逻辑。
第1页/共1页
学科网(北京)股份有限公司
$