内容正文:
模块素养综合卷(一)
[时间:45分钟 满分:50分]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
一、选择题(本大题共12小题,每小题2分,共24分。在每小题给出的四个选项中,只有一个是符合题目要求的。)
1.下列关于数据与信息的说法中,正确的是( )
A.信息在传播过程中可以暂时脱离载体
B.计算机中的字符以二进制形式存储,汉字以十六进制形式存储
C.在数据处理过程中会有新的信息产生,但其价值不变
D.信息不会因为被别人获取而发生损耗
D
【解析】 选项A,信息具有载体依附性,不能脱离载体,选项错误;选项B,计算机中的所有信息都是以二进制存储,选项错误;选项C,信息经过加工处理后,一般价值会更高,选项错误。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2.下列关于大数据的说法中,不正确的是( )
A.大数据支持动态跟踪,提高了数据分析的即时性,让决策更精准
B.大数据给生活带来便利的同时,也带来如信息泄露等安全问题
C.大数据的特征是数据量大、速度快、类型多、价值密度高
D.大数据蕴含着巨大的价值,在挖掘价值时不再追求数据的精确性
【解析】 大数据的特征是数据量大、速度快、类型多、价值密度低,选项C错误。
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
3.下列说法不正确的是( )
A.保护数据安全只需要做好防护上的安全
B.数据加密、数据校验可以提高数据的保密性和完整性
C.预防自然灾害引起的数据损坏,可以建立异地容灾系统
D.磁盘阵列是保护存储数据的介质的防护手段之一
【解析】 保护数据安全还要提高数据本身的安全,选项A错误。
A
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
4.下列关于数制和编码的说法中,正确的是( )
A.常见的字符编码有ASCII、Unicode 及各种汉字编码
B.16 色位图的每个像素至少用2 位二进制数进行编码
C.计算机只能处理数字信号,意味着不再需要模拟信号
D.若十六进制数末位为0,则该数转换为十进制数后,末位可能是奇数也可能是偶数
【解析】 常见的字符编码有ASCII、Unicode 及各种汉字编码,选项A正确。
A
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
5.已知BMP图像压缩为JPG格式的压缩比约为10∶1,将一幅1920×1024像素、16位色的BMP图像保存为JPG格式, 该JPG文件的存储容量约为( )
A.96KB B.30.4MB
C.380KB D.3.04 MB
【解析】 存储容量=1920×1024×16÷(8×1024)÷10≈380KB,选项C正确。
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
6.下列关于人工智能及其应用的说法中,不正确的是( )
A.符号主义人工智能是规则驱动的,包含知识库和推理引擎两个部分
B.联结主义人工智能只需少量训练数据便能学习到数据蕴含的概念或模式
C.跨领域人工智能能够举一反三、触类旁通,开展深度推理
D.人工智能改善人类生活、促进经济发展,但也可能威胁人类安全
【解析】 联结主义的代表是深度学习,它需要给定海量数据,从数据中学习隐性知识或隐含模式,选项B错误。
B
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
7.某算法的流程图如下, 输入s的值为“1101”, 执行该算法后, 下列说法正确的是( )
A.输出的结果是11
B.语句“i<len(s)?”共被执行了4次
C.该算法的功能是将二进制数转换成十进制数
D.交换“t←t*2+int(s[i])”与“i←i+1”,结果不会受影响
【解析】 该流程图实现将二进制数转换成十进制数,选项C正确。
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
8.当变量x为整数时,下列Python表达式与“x!=-1 and x!=1”不等价的是( )
A.x not in [-1,1]
B.not x in [-1,1]
C.not x==-1 or not x==1
D.not (x==-1 or x==1)
【解析】 选项C,not x==-1 or not x==1可以转换为x!=-1 or x!=1,与题干不等价,选项符合题意。
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
阅读下列材料,回答第 9至10题。
某校高二技术学考模拟试成绩存放在“技术成绩.xlsx”文件中,部分成绩如图1所示。徐老师编写了一个 Python程序,读取 Excel 文件中的考试成绩,并按图2中的规则对成绩划分等第。程序运行结果如图3所示。
图1 图2
图3
import pandas as pd
def grade(s): #返回成绩对应的等第
#
df=pd.read_excel(”技术成绩.xlsx”)
level=[]
for i in df.index:
lev=grade(________)#取出技术成绩作为参数
level.append(lev)
df['等级']=level
print(df)
9.若要在grade()函数中加框处填入代码,下列四个选项中不正确的是( )
A.s=s//10
c=chr(65+9-s)
if c>”E”:
c=”E”
elif c<”A”:
c=”A”
return C
B.s=s//10
c=chr(65+9-s)
if c>”E”:
c=”E”
else:
c=”A”
return C
B
C.if s>=90:
c=”A”
if 89>=s>=80:
c=”B”
if 79>=s>=70:
c=”C”
if 69>=s>=60:
c=”D”
if s<60:
c=”E”
return C
D.if s>=90:
c=”A”
elif s>=80:
c=”B”
elif s>=70:
c=”C”
elif s>=60:
c=”D”
else:
c=”E”
return C
【解析】 else表示只要c<=”E”,c都被赋值为“A”,选项B错误。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
10.若要在横线处填入代码,下列四个选项中正确的是( )
A.df.at[i,”技术”] B.df[i][”技术”]
C.df.at[”技术”,i] D.df[”技术”]
【解析】 取出成绩可以写为df.at[i,”技术”]或者df[”技术”][i],选项A正确。
A
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
11.使用UltraEdit 软件观察字符内码,部分界面如图所示:
使用Python 设计程序验证观察结果,代码如下:
s='CC F4 D5 BD 41 6C 70 68 61 47 6F 21'
n=len(s)
i=ch=en=0
while i<n-1:
t=s[i:i+2]
if t>'7F':
ch+=1;i+=6
else:
en+=1;i+=3
print(ch,en)
执行该程序段后,输出的结果是( )
A.2 8 B.4 4
C.4 6 D.8 16
【解析】 逐渐遍历内码(字符串),如果t>'7F',则代表为汉字编码,ch值加1,下标i后移6位(汉字占两个字节,这里是4个字符,再加两个空格),否则是ASCII编码,en值加1,下标i后移3位(英文占1个字节,这里是2个字符,再加1个空格),输出汉字字符数量和其他字符数量,选项A正确。
A
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
12.有如下Python程序段:
import random
n=random.randint(50,101)
a=[]
for i in range(2,n):
while n%i==0:
a+=[i]
n//=i
print(a)
执行该程序段后,输出的结果可能是( )
A.[3,3,3,3] B.[2,2,9]
C.[55] D. [5,15]
【解析】 随机数n 的值域为[50,101],外循环遍历了n 所有可能的因子,当找到n 的因子,将因子连接到列表a 中,同时分解n,不断分解直至不能被整除,则进入大循环取下一个因子。因此该程序在对随机数n 进行
A
质因分解,选项A,3×3×3×3=81,数据在[50,101]范围内,有可能;选项B的9 可以被分解为3×3,且2×2×9=36,数据不在[50,101]范围内,选项错误,同理选项C、D 都未完全分解,选项错误。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
二、非选择题(本大题共3小题,第13题6分,第14题10分,第15题10分,共26分)
13.某校学生高二技术学考模拟考试成绩存储在文件“学考模拟.xlsx”中,部分成绩如图1所示。小陈利用Python 编程统计出各班技术学科获得A 等的人数,并用图表呈现统计结果,如图2 所示。
图1
图2
实现上述功能的Python 程序代码如下:
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
df=pd.①____________________ (”学考模拟.xlsx”)
df1=df[df.学考等第=='A']
df2=df1.groupby(”班级”,as_index=True).count()
read excel (2分)
②________ #绘制图表
for a,b in zip(df2.index,df2.学考等第): #添加图表数字标签
plt.text(a,b+0.1,'%.0f'%b)
③_________________ (”各班技术学科获得A 等的人数”) #设置图
表标题
plt.show()
请回答下列问题。
plt.title (2分)
(1)请在程序中横线①处和③处填入合适的代码。
(2)程序中横线②处应填入的代码为______(单选,填字母)。
A.plt.bar(df2.班级,df2.学考等第)
B.plt.bar(df2.index,df2.学考等第)
C.plt.plot(df2.班级,df2.学考等第)
D.plt.plot(df2.index,df2.学考等第)
【解析】 (1)①由题目可知,使用Python 读取Excel 文件,格式为pd.read_excel(”filename.xlsx”)。③处是显示图表的标题,即plt.title
B
(”标题名”)。
(2)由图2可知,绘制的是垂直柱形图,即plt.bar(x,y),横坐标是班级且已作为index 索引,纵坐标是学考等第,故填plt.bar(df2.index,df2.学考等第)。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
14.如果集合a 的任意一个元素都是集合b 的元素,那么集合a 称为集合b 的子集。例如,集合a 的元素依次为[1,3,5],集合b 的元素依次为[1,2,3,4,5],集合a 的任意一个元素都是集合b 中的元素,所以集合a 称为集合b 的子集。编写Python 程序,用于判断集合a 是否是集合b 的子集,功能如下:程序运行时随机产生na个不重复的整数存储在集合a 中,随机产生nb 个不重复的整数存储在集合b 中。程序运行界面如图所示:
请回答下列问题。
(1)集合a 中元素为[3,6,7],集合b 中元素为[6,19,7,13,2,10,3],集合a _____________(填“是”或“不是”)集合b 的子集。
(2)请在横线处填入合适的代码。
import random
na=3;nb=10
#随机产生na 个不重复的整数存储在列表a 中,随机产生nb 个不重复的整数存储在列表b 中,代码略
是 (2分)
print(a);print(b)
①_____________________
i=0
while ② ______________________________________
_________________________________________ :
j=0
while j<nb:
flag=True (2分)
i<na and flag或i<na and flag==True
或i<3 and flag 或i<3 and flag==True (2分)
if ③_____________________:
break
j+=1
if j==nb:
flag=False
i+=1
if ④___________________________:
a[i]==b[j] (2分)
flag或flag==True (2分)
print(”a 是b 的子集”)
else:
print(”a 不是b 的子集”)
【解析】 (1)集合a 中元素为3,6,7,在集合b中都存在,因此集合a是集合b的子集。
(2)设置flag的值为True(由下面程序得知);遍历集合a中的每个元素,在集合b中进行查找,如果集合a的任一元素在集合b中无法找到,则设置flag为False。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
15.社区举行红歌比赛。本次比赛共设四首比赛曲目,每位选手随机抽选其中一首作为自己的参赛曲目。活动负责人统计了本次比赛的相关数据并存储于“match.csv”文件中,文件部分内容如图1 所示。
图1
图2
为分析本次比赛的结果情况,活动负责人编写了Python 程序。请回答下列问题。
(1)定义tj() 函数,功能为:读取文件file,返回每位参赛选手的总得分并填入数据表中(总得分=专家分*0.6+投票分*0.4)。函数代码如下,横线处应填入的代码为__________________________________________
_______________________________________________________。
import pandas as pd
def tj(file):
df.at[i,”专家分”]*0.6+df.at[i,”投票
分”]*0.4 或df[”专家分”][i]*0.6+df[”投票分”][i]*0.4 (2分)
df=pd.read_csv(file)
for i in df.index: # df.index 是df 对象的行索引
df.at[i,”总得分”]=________# at 方法根据行、列标签选择
单个值
return df
(2)为查找得到每首比赛曲目的选手最高总得分,部分Python 程序如下,请在横线处填入合适的代码。
df=①_________________________ #读取文件并计算总得分
tj(”match.csv”) (2分)
df=df.sort_values(”总得分”,ascending=False)
#根据总得分进行降序排序
dic={}
for m in [”曲目1”,”曲目2”,”曲目3”,”曲目4”]:
j=0
while j<=len(df)-1:
if②_____________________________________________________
________:
df.at[j,”参赛曲目”]==m 或df[”参赛曲目”][j]==m (2
分)
dic[m]=df.at[i,”参赛选手编号”]
break
③_________________
print(dic)
(3)统计每首参赛曲目的选手平均总得分,并绘制图表显示,如图2 所示。部分Python 程序如下,横线处应填入的代码为____________________。
import matplotlib.pyplot as plt
df1=df.groupby(”参赛曲目”,as_index=False).mean() #分组并求平均
j=j+1 (2分)
df1.总得分 (2分)
值
x=df1.参赛曲目
y=________#
plt.bar(x,y)
plt.xlabel(”曲目名称”)
plt.ylabel(”平均得分”)
plt.show()
【解析】 (1)由题干可知:总得分=专家分*0.6+投票分*0.4,故横线处填:df.at[i,”专家分”]*0.6+df.at[i,”投票分”]*0.4。
(2)①tj()函数对传入的文件求总分,此处调用函数,传入参数应为文件名,注意要加双引号,填:tj(”match.csv”)。
②对df 对象按总分降序排序后,要查找每首曲目的最高得分,可以从上向下依次遍历df 的每一行。本题利用双循环,外循环枚举曲目m,内循环从上到下遍历df,若找到某一行参赛曲目与m 相同,即为该曲目的最大值,此时添入字典dic 即可。②处填:df.at[j,”参赛曲目”]==m。
③空与while 循环有关,此处为循环变量的增加,j=j+1。
(3)由题意与图2 可知,Y 轴数据为总得分的平均值,即df1.总得分。
感谢聆听,再见!
$$