内容正文:
高二年级技术学科 练习
考生须知:
1.本卷共14页满分100分,考试时间90分钟;
2.答题前,在答题卷指定区域填写班级、姓名、考场号、座位号及准考证号并填涂相应数字。
3.所有答案必须写在答题纸上,写在试卷上无效;
4.考试结束后,只需上交答题纸。
第一部分 信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。在每小题给出的四个选项中,只有一个是符合题目要求的。)
1. 下列关于大数据及数据处理的说法,正确的是( )
A. 大数据分析的是全体数据,要求每个数据准确无误
B. 处理大数据时更加注重数据的相关性
C. 处理大数据一般采用并行思想
D. 大型购物网站对静态数据进行分析,从而实现实时广告推荐
【答案】B
【解析】
【详解】本题考查大数据及数据处理的基础知识。A选项:大数据分析虽面向全体数据,但并不要求每个数据准确无误,允许一定的不精确性存在,该说法错误;B选项:传统数据分析侧重探究因果关系,处理大数据时更加注重挖掘数据的相关性,该说法正确;C选项:处理大数据一般采用分治思想;D选项:大型购物网站实现实时广告推荐,需要分析用户动态产生的实时行为数据,并非静态数据,该说法错误。故答案为:B。
某物流管理系统可以利用车载终端实时监控货物的位置和运输状态,还可以自动化处理运输和仓储环节的信息,优化货物配送的路线和方案。用户安装并登录物流管理app后,可实时查看物流数据,物流数据通过文字、图像等形式呈现,并能进行及时的沟通和协调。物流管理系统同时提供智能语音客服和人工客服,智能语音客服对于一些简单的问题可以进行快速解答,缩短了客户的等待时间,当智能语音客服解决不了问题时,会自动转接人工服务来解决。阅读下列材料,完成下面小题。
2. 下列关于该系统中的数据的说法中不正确的是( )
A. 车载终端可存储未经数字化的数据
B. 若系统服务器遭到破坏,则其保存的信息可能会损坏
C. 系统中的图像数据属于非结构化数据
D. 系统可以自动化处理运输和仓储环节的信息,体现了信息的可加工处理性
3. 下列有关数据管理与安全的做法,合理的是( )
A. 定期备份服务器中的重要数据
B. 将系统中的物流信息公开以供研究
C. 为方便使用,将登录方式设置为无需口令即可登录
D. 对系统数据进行加密可提高数据的完整性
4. 下列关于该系统组成与功能的说法,正确的是( )
A. 系统的用户只有货车司机
B. 系统中的数据采集和数据处理功能均由车载终端负责实现
C. 手机APP是该系统的系统软件
D. 为减少系统对外部环境的依赖性,可以给服务器配置不间断电源
5. 为了提高智能语音客服回答问题准确率,下列方法不可行的是( )
A. 提高系统服务器性能 B. 收集更多的用户问题数据进行训练
C. 优化智能语音客服的算法 D. 对用户的语音数据进行降噪处理
6. 下列关于系统中的用户语音数据采集与数字化的说法中,不正确的是( )
A. 麦克风采集声音信号需要经过采样、量化、编码三个步骤
B. 为了节省存储空间,将可以将Wav的格式的音频转换为mp3格式
C. 录制用户语音时,音量越大,音频文件的容量也越大
D. 在声音信号数字化的过程中,量化位数越大,声音音质也越好
7. 用户登录物流管理app需要进行验证,如图所示流程图用于登录时密码验证。密码有三次输入机会,若连续三次输错密码,则结束输入并提示“机会己用完”,若三次以内(包含三次)输入正确的密码,则结束输入并提示“密码正确”。流程图①②处代码可以实现该功能的是( )
A. ① x == pw or n == 3? ②n == 3? B. ① x == pw and n == 3? ②n == 3?
C. ① x == pw or n == 3? ②x != pw? D. ① x == pw and n == 3? ②x != pw?
【答案】2. A 3. A 4. D 5. A 6. C 7. C
【解析】
【详解】1.本题考查数据与信息的基本概念。电子存储设备只能存储经过数字化的数据,车载终端作为电子设备无法存储未经数字化的数据,A选项说法错误;服务器存储介质遭到破坏时,其保存的信息有可能损坏,B选项说法正确;图像数据没有固定的结构规范,属于非结构化数据,C选项说法正确;系统对运输和仓储环节信息进行自动化处理、优化配送方案,体现了信息的可加工处理性,D选项说法正确。故答案为:A。
2.本题考查数据管理与安全。定期备份服务器中的重要数据,是防范数据丢失的合理安全做法,A选项正确;物流信息通常包含用户隐私、企业运营信息等敏感内容,不能随意公开,B选项错误;设置为无需口令即可登录,会极大降低系统安全性,容易引发数据泄露,C选项错误;对系统数据加密的作用是保护数据的保密性,不能提高数据的完整性,D选项错误。故答案为:A。
3.本题考查信息系统的组成与功能。该物流管理系统的用户包括寄收件用户、物流工作人员等,不只有货车司机,A选项错误;系统的数据处理功能主要由后台服务器完成,并非所有功能都由车载终端实现,B选项错误;物流管理APP是面向用户的应用软件,不属于系统软件,C选项错误;为服务器配置不间断电源,可以在外部供电中断时维持系统运行,减少系统对外部供电环境的依赖性,D选项正确。故答案为:D。
4.本题考查人工智能语音识别的应用。智能语音客服回答问题的准确率和训练数据集、算法模型、输入语音质量相关,提高服务器性能只能提升运算速度,无法提升回答问题的准确率,A方法不可行;收集更多用户问题数据训练模型、优化算法、对用户语音做降噪处理,都可以提升回答准确率,B、C、D方法可行。故答案为:A。
5.本题考查语音数据数字化。模拟声音信号转换为数字音频,需要经过采样、量化、编码三个步骤,A说法正确;Wav是无损无压缩音频格式,mp3是有损压缩格式,将Wav转换为mp3可以大幅节省存储空间,B说法正确;音频文件容量由采样频率、量化位数、时长决定,和录制音量大小无关,C说法错误;声音数字化过程中,量化位数越大,声音的精度越高,音质越好,D说法正确。故答案为:C。
6.本题考查流程图逻辑分析。根据题意,只要密码输入正确,或者达到3次输入机会,就需要结束循环进入输出,因此①的条件为x == pw or n == 3,排除B、D;循环结束后存在两种情况:密码正确,或3次输入全部错误,题目要求条件②为真时输出"机会已用完",为假时输出"密码正确",因此②的条件为x != pw:若条件成立,说明是因为输错密码达到3次退出循环,输出机会已用完;若条件不成立,说明密码正确,输出密码正确,符合需求。若②为n == 3,第三次输入正确时也会因n=3错误输出机会已用完,不符合要求。故答案为:C。
8. 已知字典dic={1:"Monday",2:"Tuesday",3:"Wednesday"},表达dic[1][3]+dic[2][5:]的值是( )
A. "day" B. "nda" C. "dda" D. "nay"
【答案】A
【解析】
【详解】本题考查字典和字符串切片的使用。首先,字典 dic 中,dic[1] 对应的值是字符串 Monday,dic[2] 对应的值是字符串 Tuesday。表达式 dic[1][3] 表示取字符串 Monday 的第 4 个字符(索引从 0 开始),即字符 d。表达式 dic[2][5:] 表示取字符串 Tuesday 从第 6 个字符开始到结尾的子串,即 ay。因此,dic[1][3]+dic[2][5:] 的值为 d+ay,结果是 day。故答案为:A。
9. 某自定义函数如下:
def func(x):
i=0;s=0;num=0
while i < len(x):
if "0" <= x[i] <= "9":
s = s*10 + int(x[i])
else:
num += int(s)
s = 0
i += 1
return num
调用自定义函数func("98a76t54"),执行后输出结果是( )
A. 228 B. 98 C. 174 D. 102
【答案】C
【解析】
【详解】本题考查Python自定义函数与字符串遍历、数字提取计算逻辑。函数func接收字符串参数x,初始化i=0(索引)、s=0(临时存储连续数字)、num=0(累加和),通过while循环遍历字符串每个字符;当字符是数字时,将s更新为s*10+当前数字(拼接连续数字),当字符非数字时,把s的值累加到num并重置s为0;遍历"98a76t54"时,先提取连续数字98,遇到a累加到num(num=98),再提取76遇到t累加(num=98+76=174),最后提取54,循环结束无后续非数字触发累加,最终返回num=174。因此,本题选择C选项。
10. 有如下Python程序段
a=[9,7,10,21,16,9,7,25]
n=len(a)
k=a[n-1]
p=0
for i in range(n-2,-1,-1):
if a[i]<=k:
p=i
k=a[p]
print(p,k)
该程序段执行后,运行结果是( )
A. 1 7 B. 6 7 C. 0 9 D. 7 0
【答案】A
【解析】
【详解】本题考查python最值问题。该程序段功能是找出a中最小的值及索引,若存在相同的最小值,则输出最小的索引(即p)及最小值(k),故最小值是7,索引是1。因此,本题选择A。
11. 有如下python程序段:
s=input()
m=0; n=0
for ch in s:
if "0" <= ch <= "6":
m=int(ch)
elif "a" <= ch <= "f":
n=(ord(ch)-ord("a")+2)%6
ans=m*6+n
print(ans)
程序运行后,若输出为26,则可能s输入的是( )
A. 8q3b5g B. 7k4e3c C. 5f6dg3 D. 2b6a4p
【答案】D
【解析】
【详解】本题考查Python程序设计相关内容。分析程序段,推知:程序的功能是将输入的一个字符(该字符需满足是数字0-6或者小写字母a-f),按照特定规则转换为一个0到41之间的整数并输出。分别将四个选项代入程序运行:“8q3b5g”输出结果为:33;“7k4e3c”输出结果为:22;“5f6dg3”输出结果为:23;“2b6a4p”输出结果为:26。故本题答案是D选项。
12. 列表a有n(n>=2)个正整数,相邻两数的差值为1,0或-1。求满足相邻两数具有相同差值的连续子序列中,子序列元素和的最大值。实现该功能的程序段如下,加框处应填写的正确代码是( )
state = a[1] - a[0]
maxv = t = a[1] + a[0]
for i in range(2n):
f = a[i] - a[i-1]
#
print(maxv)
A.
B.
if state == f:
t += a[i]
else:
state = f
t = a[i-1] + a[i]
if t > maxv:
maxv = t
if state == f:
t += a[i]
else:
state = f
t = a[i-1] + a[i]
if t > maxv:
maxv = t
C.
D.
if state == f:
t += a[i]
if state != f:
state = f
t = a[i-1] + a[i]
elif t > maxv:
maxv = t
if state == f:
t += a[i]
elif state != f:
state = f
t = a[i-1] + a[i]
elif t > maxv:
maxv = t
A. A B. B C. C D. D
【答案】B
【解析】
【详解】本题考查Python程序逻辑分析,最大连续子序列问题的代码实现理解。解析:题目要求找出相邻差值全部相同的连续子序列的最大元素和,初始化时state存储初始相邻差值,t存储当前子序列的元素和,maxv存储全局最大和。循环从第三个元素开始计算当前新差值f:若当前差值f和原有差值state相等,则当前元素可加入当前连续子序列,t累加a[i];若不相等,则相同差值的连续子序列中断,开启新子序列,更新state为f,当前t置为a[i-1]+a[i]。无论上述哪种情况,处理完当前t后都需要更新maxv,因此更新maxv不能嵌套在else分支中。A选项更新maxv在else内,差值相等时无法更新最大值,逻辑错误;C、D的多分支结构会导致差值相等时无法触发最大值更新,逻辑错误;只有B选项逻辑正确。故答案为:B。
二、非选择题(本大题共3小题,第13题10分,第14题7分,第15题9分,共26分)
13. 某高校将迎来100周年校庆,需要招募志愿者,其中7个院系对报名者进行了模拟测评选拔,测评结果保存在Excel文件“test.xlsx”中,如图a所示。小明用Python 程序进行如下分析。
(1)在数据处理之前,需对数据进行整理,下列说法合理的是___________(多选,填字母)。
A. 数据中格式不一致,需要进行格式转换
B. 数据中的异常数据应该直接删除或忽略
C. 数据中的缺失数据可以用任意值填充
D. 数据中的重复数据须在审核后进行合并或删除
(2)读取Excel文件“test.xlsx”中的数据,计算每个人的总分,60分及以上为合格,运行程序并显示总分成绩不小于60分的报名者信息,代码如下:
import pandas as pd
df=pdread_excel("test.xlsx")
df. #将数据中的"十六"修改为16
df [‘总分’]=df.sum(axis=1) #将每个人的总分求和并存在"总分"列
print() #输出总分不小于60分的报名者信息
①加框处应填入的代码是___________(单选,填字母)
A. at[4, "十六"]=16 B. at[5, "在线测试"]=16
C. at[5, "十六"]=16 D. at[4, "在线测试"]=16
②加框处应填入的代码是___________(单选,填字母)
A. df[[ "总分"]>=60] B. df[ "总分"]>=60
C. df[df[ "总分"]>=60] D. df[df[ "总分"]] >=60
(3)每个院系各有20位报名者参与测评,小明根据总分情况统计各院系合格人数并进行排名,取人数最多的前三名院系,结果如表所示,并绘制图表如图c所示代码如下,请选择合适的代码填入划线处(单选)。
院系 人数
6 经济学院 15
0 人文学院 14
5 物理学院 11
import matplotlib.pyplot as plt
plt.rcParams[‘font.sans-serif’]=[‘SimHei’] #用来正常显示中文标签
dfn=df[[‘院系’, ‘总分’]] #取df对象中的两列数据进行处理
dfn =①___________
dfn.rename(columns={‘总分’: ‘人数’},inplace=True) #将列名"总分"改为"人数"
dfn =②___________
dfn =③___________
print(dfn)
plt.title("合格人数最多的院系")
plt.bar(④___________)
plt.show()
程序中①②③④处可选的代码有:
A. dfn.groupby("院系",as_index=False).count()
B. dfn.groupby("总分",as_index=False).count()
C. dfn.sort_values("人数",ascending=False)
D. dfn.sort_values("人数",ascending=True)
E. dfn.head(3)
F. dfn.index,dfn.人数
G. dfn.院系,dfn.人数
【答案】(1)AD (2) ①. D ②. C
(3) ①. A ②. C ③. E ④. G
【解析】
【详解】(1)本题考查数据预处理基础知识。数据整理时,若数据格式不一致,需要进行格式转换才能开展后续计算,对应选项说法正确;异常数据需要先分析产生原因,不能直接删除或忽略,否则会影响最终结果的准确性,对应选项说法错误;缺失数据需要结合数据场景和分布选择合理值填充,不能使用任意值填充,对应选项说法错误;重复数据需要审核确认后,根据实际需求进行合并或删除,对应选项说法正确。故答案为:AD。
(2)①本题考查pandas中DataFrame的索引访问规则。从图a可知,Excel表头行号为1,目标数据"十六"在Excel的第6行,pandas的DataFrame行索引从0开始计数,因此行索引为 6 - 2 = 4;该数据位于"在线测试"列,因此修改语句为 df.at[4, "在线测试"]=16。故答案为:D。②pandas筛选DataFrame中满足条件的行的标准语法为 df[条件表达式],本题条件是总分不小于60,条件表达式为 df["总分"]>=60,因此正确写法为 df[df["总分"]>=60]。故答案为:C。
(3)①本题考查pandas的数据分组统计操作。本题目标是按院系分组统计每个院系的合格人数,因此需要按"院系"列分组后统计数量,对应代码 dfn.groupby("院系",as_index=False).count()。故答案为:A。②分组统计得到各院系合格人数后,需要按照合格人数降序排序,让人数最多的排在最前方,ascending=False表示降序排序,对应代码 dfn.sort_values("人数",ascending=False)。故答案为:C。③排序后只需要取合格人数最多的前三名,调用 head(3) 即可获取排序后的前3行数据,对应代码 dfn.head(3)。故答案为:E。④plt.bar() 的核心参数为 plt.bar(x, height),其中x是x轴的类别,height是y轴的数值,本题x轴为院系名称,y轴为对应合格人数,因此参数为 dfn.院系,dfn.人数。故答案为:G。
14. 字符串处理。输入一个由大写字母和数字组成的字符串,如果字符串中存在连续三个或更多的相同字符,则将连续的多个字符删除,然后对组成的新字符串重新进行检测,重新上面步骤,直到全部字符检测完毕。如输入字符串“A11BBCCCB12D”,则处理过程如下:
A11BBCCCB12D→A11BBB12D→A1112D→A2D
实现上述功能的Python程序如下,请回答下列问题:
(1)如输入的字符串为“ABC12DDD2211CCB”,则处理后的字符串为___________;
(2)请在程序划线处填入合适的代码。
def cal (s,m):
x = y = m
while①___________:
x -= 1
while y + 1 < len(s)-1 and s[y] == s[y + 1]:
y += 1
return x, y
s = input("请输入字符串:")
i = 0
while i<len(s):
begin, end = cal (s,i)
if ②___________:
s = s[:begin] + s[end+1:]
③___________
i = i + 1
print("处理后的字符串为:", s)
【答案】(1)ABB (2) ①. x - 1 >= 0 and s[x] == s[x-1] ②. end-begin >= 2 或 end-begin+1 >= 3 ③. i = begin - 1
【解析】
【详解】本题考查Python字符串处理与流程控制,核心是连续重复字符删除逻辑的理解与应用。
(1)处理输入字符串ABC12DDD2211CCB过程:原串找到连续3个DDD删除,得到ABC122211CCB;删除后原有的1个2和后续2个2凑成连续3个2,删除后得到ABC111CCB;检测到连续3个1,删除后得到ABCCCB;再检测到连续3个C,删除后得到最终结果ABB。
(2)①处:cal函数作用是查找当前位置所在连续相同字符的左右边界,初始x为当前位置m,需要向左扩展找左边界,循环条件为左边界未越界且左侧字符和当前字符相同,因此填入:x - 1 >= 0 and s[x] == s[x-1]。②处:得到连续区间[begin, end]后,仅当连续字符个数≥3时才删除,即区间长度满足end-begin+1 ≥3,等价于end-begin ≥2,故此处应为:end-begin >= 2 或 end-begin+1 >= 3。 ③处:删除连续字符后,删除位置前的字符可能和新字符串对应位置的字符连成新的连续相同字符,需要从删除位置的前一位重新开始检测,因此重置i的值,故此次应为:i = begin - 1。
15. 某数据序列data中的元素均为小于128的正整数。现在要对data进行加密,处理过程分“变换”和“掺杂”两步。
“变换”处理方法是用指定的n组序列R0、R1…Rn-1依次对data进行变换。利用Ri对data进行变换的过程是:在data中查找所有与Ri相同的子序列,将找到的每个子序列中的每个元素x按照奇偶分别变换,若x为奇数则元素值改变为255-x,若x为偶数则元素值改变为127+x,变换后的子序列不再参与后续的变换。如data为[5,2,1,3,8,7,1,5,2],指定的两组序列为[5,2]、[3,8,7],“变换”处理后的 data 为[250,129,1,252,135,248,1,250,129]。
“掺杂”处理的过程是:按照data中元素的个数,随机分割成若干段,如data中有9个元素,若数据分割表为[4,2,3],则表示将data分割为三组,第一组4个数据、第二组2个数据、第二组3个数据,分别在每组数据的后面插入1个随机的杂质数据。
请回答下列问题:
(1)若data中有7个元素,数据分割表为[4,3],经过“掺杂”处理后,则插入杂质数据的个数为___________(填数字)个。
(2)定义如下check(data, x, r, m)函数,函数功能判断data中从索引x位置开始的m个元素与序列r是否相同。
def check(data,x,r,m):
for i in range(x,x+m):
return False
return True
若data为[6,7,1,8,168,211,10],x为2,r为[1,8,7,1],m为4,调用check(data, x, r, m)后,则加框处语句执行的次数为___________(填数字)次。
(3)实现加密功能的部分Python程序如下,请在划线处填入合适的代码。
def trans(data, x, m): # "变换"处理
for i in range (x, x+m):
if data[i] % 2 == 1:
data[i] = 255 - data[i]
else:
data[i] = 127 + data[i]
def insert(data,n): # "掺杂"处理
seg = []
x = 0
while x < n:
y = random.randint(3,6)
seg.append(y) # 在列表seg末尾增加元素y
x += y
seg[-1] -=①___________
res = [0]*(n+len(seg))
x = 0
y = 0
for i in seg:
for j in range (i)
②___________
x += 1
y += 1
res[x] = random. randint(1,254) # 生成1~254之间的随机整数
x += 1
return res,seg
# 读取待加密数据存入data,读取指定的若干组用于变换的序列存入rs,代码略
import random
n = len(data)
for r in rs:
m = len(r)
x = 0
while③___________:
if check(data,x,r,m):
trans(data,x,m)
x += m
else:
x += 1
res,seg=insert(data,n)
#输出加密后的序列res及数据分割表seg,代码略
【答案】(1)2 (2)3
(3) ①. x-n ②. res[x]=data[y] ③. x+m <= n
【解析】
【详解】本题考查Python数组操作、循环逻辑、函数调用与加密算法实现 。
(1)data有7个元素,数据分割表为[4,3],掺杂规则为每一段数据后面插入1个杂质数据,分割表包含两段数据,因此插入杂质数据的个数为2 。
(2)check函数用于判断data中从索引x开始的m个元素与序列r是否相同,循环执行range(x,x+m),本题中x=2,m=4,循环i=2、3、4、5,第一次i=2,data[2]=1与r[0]=1相等,不执行return False,第二次i=3,data[3]=8与r[1]=8相等,不执行return False,第三次i=4,data[4]=168与r[2]=7不相等,执行return False,循环直接终止,因此加框处语句执行次数为3 。
(3)①处代码作用是修正最后一段的长度,循环生成分段时x会累加超过n,需要让所有分段的总长度等于原数据长度n,seg[-1]代表最后一段,减去x-n就能让总长度刚好等于n,因此填x-n 。②处代码作用是将原数据data中的元素逐段复制到结果列表res中,外层遍历分段长度i,内层遍历分段内的每个元素,把data中对应位置的元素赋值给res,因此填res[x]=data[y] 。③处代码作用是控制子序列匹配的循环条件,保证从索引x开始能取到长度为m的子序列,不会超出列表的索引范围,避免程序报错,因此填x+m<=n。
第1页/共1页
学科网(北京)股份有限公司
$
高二年级技术学科 练习
考生须知:
1.本卷共14页满分100分,考试时间90分钟;
2.答题前,在答题卷指定区域填写班级、姓名、考场号、座位号及准考证号并填涂相应数字。
3.所有答案必须写在答题纸上,写在试卷上无效;
4.考试结束后,只需上交答题纸。
第一部分 信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。在每小题给出的四个选项中,只有一个是符合题目要求的。)
1. 下列关于大数据及数据处理的说法,正确的是( )
A. 大数据分析的是全体数据,要求每个数据准确无误
B. 处理大数据时更加注重数据的相关性
C. 处理大数据一般采用并行思想
D. 大型购物网站对静态数据进行分析,从而实现实时广告推荐
某物流管理系统可以利用车载终端实时监控货物的位置和运输状态,还可以自动化处理运输和仓储环节的信息,优化货物配送的路线和方案。用户安装并登录物流管理app后,可实时查看物流数据,物流数据通过文字、图像等形式呈现,并能进行及时的沟通和协调。物流管理系统同时提供智能语音客服和人工客服,智能语音客服对于一些简单的问题可以进行快速解答,缩短了客户的等待时间,当智能语音客服解决不了问题时,会自动转接人工服务来解决。阅读下列材料,完成下面小题。
2. 下列关于该系统中的数据的说法中不正确的是( )
A. 车载终端可存储未经数字化数据
B. 若系统服务器遭到破坏,则其保存的信息可能会损坏
C. 系统中的图像数据属于非结构化数据
D. 系统可以自动化处理运输和仓储环节的信息,体现了信息的可加工处理性
3. 下列有关数据管理与安全的做法,合理的是( )
A. 定期备份服务器中重要数据
B. 将系统中的物流信息公开以供研究
C. 为方便使用,将登录方式设置为无需口令即可登录
D. 对系统数据进行加密可提高数据的完整性
4. 下列关于该系统组成与功能的说法,正确的是( )
A. 系统的用户只有货车司机
B. 系统中的数据采集和数据处理功能均由车载终端负责实现
C. 手机APP是该系统系统软件
D. 为减少系统对外部环境的依赖性,可以给服务器配置不间断电源
5. 为了提高智能语音客服回答问题的准确率,下列方法不可行的是( )
A. 提高系统服务器性能 B. 收集更多的用户问题数据进行训练
C. 优化智能语音客服算法 D. 对用户的语音数据进行降噪处理
6. 下列关于系统中的用户语音数据采集与数字化的说法中,不正确的是( )
A. 麦克风采集声音信号需要经过采样、量化、编码三个步骤
B. 为了节省存储空间,将可以将Wav的格式的音频转换为mp3格式
C. 录制用户语音时,音量越大,音频文件的容量也越大
D. 在声音信号数字化的过程中,量化位数越大,声音音质也越好
7. 用户登录物流管理app需要进行验证,如图所示流程图用于登录时密码验证。密码有三次输入机会,若连续三次输错密码,则结束输入并提示“机会己用完”,若三次以内(包含三次)输入正确的密码,则结束输入并提示“密码正确”。流程图①②处代码可以实现该功能的是( )
A. ① x == pw or n == 3? ②n == 3? B. ① x == pw and n == 3? ②n == 3?
C. ① x == pw or n == 3? ②x != pw? D. ① x == pw and n == 3? ②x != pw?
8. 已知字典dic={1:"Monday",2:"Tuesday",3:"Wednesday"},表达dic[1][3]+dic[2][5:]的值是( )
A. "day" B. "nda" C. "dda" D. "nay"
9. 某自定义函数如下:
def func(x):
i=0;s=0;num=0
while i < len(x):
if "0" <= x[i] <= "9":
s = s*10 + int(x[i])
else:
num += int(s)
s = 0
i += 1
return num
调用自定义函数func("98a76t54"),执行后输出的结果是( )
A. 228 B. 98 C. 174 D. 102
10. 有如下Python程序段
a=[9,7,10,21,16,9,7,25]
n=len(a)
k=a[n-1]
p=0
for i in range(n-2,-1,-1):
if a[i]<=k:
p=i
k=a[p]
print(p,k)
该程序段执行后,运行结果( )
A. 1 7 B. 6 7 C. 0 9 D. 7 0
11. 有如下python程序段:
s=input()
m=0; n=0
for ch in s:
if "0" <= ch <= "6":
m=int(ch)
elif "a" <= ch <= "f":
n=(ord(ch)-ord("a")+2)%6
ans=m*6+n
print(ans)
程序运行后,若输出为26,则可能s输入的是( )
A. 8q3b5g B. 7k4e3c C. 5f6dg3 D. 2b6a4p
12. 列表a有n(n>=2)个正整数,相邻两数的差值为1,0或-1。求满足相邻两数具有相同差值的连续子序列中,子序列元素和的最大值。实现该功能的程序段如下,加框处应填写的正确代码是( )
state = a[1] - a[0]
maxv = t = a[1] + a[0]
for i in range(2,n):
f = a[i] - a[i-1]
#
print(maxv)
A.
B.
if state == f:
t += a[i]
else:
state = f
t = a[i-1] + a[i]
if t > maxv:
maxv = t
if state == f:
t += a[i]
else:
state = f
t = a[i-1] + a[i]
if t > maxv:
maxv = t
C.
D.
if state == f:
t += a[i]
if state != f:
state = f
t = a[i-1] + a[i]
elif t > maxv:
maxv = t
if state == f:
t += a[i]
elif state != f:
state = f
t = a[i-1] + a[i]
elif t > maxv:
maxv = t
A. A B. B C. C D. D
二、非选择题(本大题共3小题,第13题10分,第14题7分,第15题9分,共26分)
13. 某高校将迎来100周年校庆,需要招募志愿者,其中7个院系对报名者进行了模拟测评选拔,测评结果保存在Excel文件“test.xlsx”中,如图a所示。小明用Python 程序进行如下分析。
(1)在数据处理之前,需对数据进行整理,下列说法合理的是___________(多选,填字母)。
A. 数据中格式不一致,需要进行格式转换
B. 数据中的异常数据应该直接删除或忽略
C. 数据中的缺失数据可以用任意值填充
D. 数据中的重复数据须在审核后进行合并或删除
(2)读取Excel文件“test.xlsx”中的数据,计算每个人的总分,60分及以上为合格,运行程序并显示总分成绩不小于60分的报名者信息,代码如下:
import pandas as pd
df=pd.read_excel("test.xlsx")
df. #将数据中的"十六"修改为16
df [‘总分’]=df.sum(axis=1) #将每个人的总分求和并存在"总分"列
print() #输出总分不小于60分的报名者信息
①加框处应填入的代码是___________(单选,填字母)
A. at[4, "十六"]=16 B. at[5, "在线测试"]=16
C. at[5, "十六"]=16 D. at[4, "在线测试"]=16
②加框处应填入的代码是___________(单选,填字母)
A. df[[ "总分"]>=60] B. df[ "总分"]>=60
C. df[df[ "总分"]>=60] D. df[df[ "总分"]] >=60
(3)每个院系各有20位报名者参与测评,小明根据总分情况统计各院系合格人数并进行排名,取人数最多的前三名院系,结果如表所示,并绘制图表如图c所示代码如下,请选择合适的代码填入划线处(单选)。
院系 人数
6 经济学院 15
0 人文学院 14
5 物理学院 11
import matplotlib.pyplot as plt
plt.rcParams[‘font.sans-serif’]=[‘SimHei’] #用来正常显示中文标签
dfn=df[[‘院系’, ‘总分’]] #取df对象中的两列数据进行处理
dfn =①___________
dfn.rename(columns={‘总分’: ‘人数’},inplace=True) #将列名"总分"改为"人数"
dfn =②___________
dfn =③___________
print(dfn)
plt.title("合格人数最多的院系")
plt.bar(④___________)
plt.show()
程序中①②③④处可选的代码有:
A. dfn.groupby("院系",as_index=False).count()
B. dfn.groupby("总分",as_index=False).count()
C. dfn.sort_values("人数",ascending=False)
D. dfn.sort_values("人数",ascending=True)
E. dfn.head(3)
F. dfn.index,dfn.人数
G. dfn.院系,dfn.人数
14. 字符串处理。输入一个由大写字母和数字组成的字符串,如果字符串中存在连续三个或更多的相同字符,则将连续的多个字符删除,然后对组成的新字符串重新进行检测,重新上面步骤,直到全部字符检测完毕。如输入字符串“A11BBCCCB12D”,则处理过程如下:
A11BBCCCB12D→A11BBB12D→A1112D→A2D
实现上述功能的Python程序如下,请回答下列问题:
(1)如输入的字符串为“ABC12DDD2211CCB”,则处理后的字符串为___________;
(2)请在程序划线处填入合适的代码。
def cal (s,m):
x = y = m
while①___________:
x -= 1
while y + 1 < len(s)-1 and s[y] == s[y + 1]:
y += 1
return x, y
s = input("请输入字符串:")
i = 0
while i<len(s):
begin, end = cal (s,i)
if ②___________:
s = s[:begin] + s[end+1:]
③___________
i = i + 1
print("处理后的字符串为:", s)
15. 某数据序列data中的元素均为小于128的正整数。现在要对data进行加密,处理过程分“变换”和“掺杂”两步。
“变换”处理方法是用指定的n组序列R0、R1…Rn-1依次对data进行变换。利用Ri对data进行变换的过程是:在data中查找所有与Ri相同的子序列,将找到的每个子序列中的每个元素x按照奇偶分别变换,若x为奇数则元素值改变为255-x,若x为偶数则元素值改变为127+x,变换后的子序列不再参与后续的变换。如data为[5,2,1,3,8,7,1,5,2],指定的两组序列为[5,2]、[3,8,7],“变换”处理后的 data 为[250,129,1,252,135,248,1,250,129]。
“掺杂”处理的过程是:按照data中元素的个数,随机分割成若干段,如data中有9个元素,若数据分割表为[4,2,3],则表示将data分割为三组,第一组4个数据、第二组2个数据、第二组3个数据,分别在每组数据的后面插入1个随机的杂质数据。
请回答下列问题:
(1)若data中有7个元素,数据分割表为[4,3],经过“掺杂”处理后,则插入杂质数据的个数为___________(填数字)个。
(2)定义如下check(data, x, r, m)函数,函数功能判断data中从索引x位置开始的m个元素与序列r是否相同。
def check(data,x,r,m):
for i in range(x,x+m):
return False
return True
若data为[6,7,1,8,168,211,10],x为2,r为[1,8,7,1],m为4,调用check(data, x, r, m)后,则加框处语句执行的次数为___________(填数字)次。
(3)实现加密功能的部分Python程序如下,请在划线处填入合适的代码。
def trans(data, x, m): # "变换"处理
for i in range (x, x+m):
if data[i] % 2 == 1:
data[i] = 255 - data[i]
else:
data[i] = 127 + data[i]
def insert(data,n): # "掺杂"处理
seg = []
x = 0
while x < n:
y = random.randint(3,6)
seg.append(y) # 在列表seg末尾增加元素y
x += y
seg[-1] -=①___________
res = [0]*(n+len(seg))
x = 0
y = 0
for i in seg:
for j in range (i)
②___________
x += 1
y += 1
res[x] = random. randint(1,254) # 生成1~254之间的随机整数
x += 1
return res,seg
# 读取待加密数据存入data,读取指定的若干组用于变换的序列存入rs,代码略
import random
n = len(data)
for r in rs:
m = len(r)
x = 0
while③___________:
if check(data,x,r,m):
trans(data,x,m)
x += m
else:
x += 1
res,seg=insert(data,n)
#输出加密后的序列res及数据分割表seg,代码略
第1页/共1页
学科网(北京)股份有限公司
$