-
1、 在Python语言中,用字典hero存储《水浒传》中的人物数据:hero={"天罡星":["宋江","卢俊义","吴用"],"地煞星":["朱武","黄信","孙立"]},下列表达式值为"吴用"的是( )A、hero[0][2] B、hero{"天罡星"}[2] C、hero["天罡星"][3] D、hero["天罡星"][2]
-
2、 在Python中,下列不能表示“x既能被3整除,又能被5整除”的表达式是( )A、x%15==0 B、x%3==0 and x%5==0 C、x//15==x/15 D、x//15==0
-
3、 12306网站于 2011年 6月 12日正式投入购票业务,在北京、上海、广州、武汉、西安、沈阳等多地设置了服务器,为社会提供车票发售、列车时刻查询等服务,近日访问量达到了 532亿次。在春运期间,12306根据以往的出行数据,预测客流趋势,优化运力调配,制定多项决策,以更好满足旅客的需求。下列关于大数据的说法正确的是( )A、使用批处理计算实时分析用户行为 B、12306网站中历年旅客流动数据属于流数据 C、需要分析旅客出行的原因以做出更准确的客流趋势预测 D、可以利用以往的出行大数据制定优化决策,说明大数据的价值高
-
4、 下列关于数据编码的说法,正确的是( )A、相对于一维条形码,二维码的信息存储量更大 B、数字信号转换成模拟信号的过程称为数字化 C、采样频率越高,量化的等级就越多 D、计算机以十进制处理和存储数据
-
5、 体感技术与自然语言交互是继键盘+鼠标、多点触控之后获得广泛应用的第三大类操作方式。体感技术使人们无须借助复杂的控制设备,直接使用肢体动作与数字设备和环境进行互动,并根据人的动作来完成各种指令,就像为计算机配备了一双精准有效的“眼睛”,为用户带来更刺激、更具现场感的愉悦学习体验。下列有关数据、信息和知识的说法不正确的是( )A、数据是对客观事物的符号表示 B、体感技术中所监测到的数据需要加以分析解释才能成为信息 C、体感技术的出现使得信息的传递可以不依附载体 D、人们可以借助体感交互获得信息
-
6、在计算机的操作系统中,经常需要给应用程序“分配内存”和“释放内存”。若有大小为1024B的内存,如1图所示:
使用列表["+",5]表示申请连续5B的内存,使用列表[2,2]表示回收位置2开始连续2B的内存。若指令集表示为:order=[["+",5],[2,2],["+",8],[8,3]]。随着指令集被执行,1024B连续的内存块会被分割成若干个占用内存和空闲内存。为方便起见,“占用内存”用1表示,“空闲内存”用0表示,故执行上述指令集后,内存占用情况如2图所示:
若将空闲块用链表组织起来,就可以快速查找空闲块和删除空闲块。把连续的空闲块定义为一个节点,每个节点由[空闲块起点, 空闲块长度, 下一个空闲块位置]三部分内容构成。根据2图内存占用情况,创建的空闲块链表如3图所示:
(1)、根据2图所示的内存占用情况,执行指令[4,4]后(连续空闲块要合并),内存中“空闲块”的数量变为个。(2)、根据内存占用情况列表allot,创建空闲块链表代码如下:def linkList(allot): #linkList函数功能:根据内存占用0/1列表allot,创建空闲块链表link
link = [ [-1,-1,-1] ] #链表包含一个空头节点
head = tail = 0 ; n = len( allot ) ; i = 0
while i < n :
if allot[ i ] == 0 :
j = i + 1
while j<n and allot[ j ] == 0:
j = j + 1
link.append( [ i , j – i , -1 ] )
link[ tail ][ 2 ] = ▲
tail = len( link ) - 1
else:
i += 1
return head , link
请在▲处填入合适的代码。
若将加框处的代码修改为i = j,是否影响程序的执行结果(选填:是/否)。
(3)、模拟上述内存操作的Python程序如下,请在划线处填入合适的代码。#通过文件读入内存分配表allot和指令集order,其代码略。
head , link = linkList ( allot )
for i in range( len( order ) ):
if order[ i ][ 0 ] == " + ": #必须分配连续的空闲块,且由第一个满足空间大小的节点分配
p = head ; q = link[ head ][ 2 ]
while :
p = q ; q = link[ q ][ 2 ]
if q == -1:
print( "内存不足!" )
else:
if link[q][1] == order[i][1]:
else:
link[ q ][ 0 ] = link[ q ][ 0 ] + order[ i ][ 1 ]
link[ q ][ 1 ] = link[ q ][ 1 ] - order[ i ][ 1 ]
else:
p = head ; q = link[ head ][ 2 ]
while q != -1 and link[ q ][ 0 ]<order[ i ][ 0 ]:
p = q ; q = link[ q ][ 2 ]
if link[ p ][ 0 ] + link[ p ][ 1 ] == order[ i ][ 0 ]: #前面节点合并
link[ p ][ 1 ] = link[ p ][ 1 ] + order[ i ][ 1 ]
else:
link.append([ order[ i ][ 0 ] , order[ i ][ 1 ] , q]) #添加节点
link[ p ][ 2 ] = len( link ) - 1
p = link[ p ][ 2 ]
if q != -1 and : #后面节点合并
link[ p ][ 1 ] = link[ p ][ 1 ] + link[ q ][ 1 ]
link[ p ][ 2 ] = link[ q ][ 2 ]
-
7、某校为了支持学生的学习进步,特设补弱支持,每位学生可以根据自身学习情况,从语数英物化生政史地技这10门科目中,选择不超过两门科目作为自己的补弱科目,这些选择的数据已存储于"student.xlsx"文件中,部分数据如1图所示:
1图
2图
(1)、首先,需要对数据进行整理,筛选出那些补弱科目数不符合学校规定(超出两门)的学生记录,以便通知他们重新选择补弱科目,Python程序如下:import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['KaiTi','SimHei','FangSong'] #设置中文字体
df = pd.read_excel( "student.xlsx" )
df_err = df[ ▲ ]
请在▲处填入合适的代码。
(2)、数据整理并修正后,分析各班各科目的选择人数,以及各科目选择人数占总人数比例。km = ["语文","数学","英语","物理","化学","生物","政治","历史","地理","技术"]
df1 = df . groupby( "班级" ) .
print( df1 ) #2图所示
#删除“姓名”和“科目数”列
df2 = df1 . drop(["姓名","科目数"] , axis = 1)
g = df2 . sum() #g为Series对象
#统计各科目的人数占总人数的比例
for k in km:
per = / len( df ) * 100
print(k , "比例为:" , round(per,2) , "%")
x =
y = g . values
plt.bar( x , y ) #3图所示
plt.title("各科补弱比例对比")
plt.show()
-
8、为支持公益事业,彩票中心设立了一个彩票项目。每张彩票上印有 7个各不相同的号码(号码范围从1到33)。每次开奖时,会随机生成一个由7个各不相同的号码构成的中奖号码。彩票的兑奖规则如下:“特等奖”彩票上的7个号码与中奖号码全部相同;“一等奖”有6个号码相同;“二等奖”有5个号码相同;“三等奖”有4个号码相同;“四等奖”有3个号码相同;“五等奖”有2个号码相同;“六等奖”有1个号码相同。兑奖时不考虑号码在彩票和中奖号码中出现的具体位置。例如,若中奖号码为23,31,1,14,19,17,18,而某张彩票的号码为12,8,9,23,1,16,7,则该彩票中得五等奖,因为其中有两个号码(23和1)与中奖号码相同。
彩票中心编写一个程序,功能为:随机生成7个不重复的中奖号码,并读取文件“彩票记录.txt”(该文件存储所有已售出的彩票号码),最后根据兑奖规则输出开奖结果,运行界面示例如下:
(1)、假设中奖号码为23,31,1,14,19,17,18,彩票为11,8,9,32,1,16,7,中奖结果为。(2)、实现上述功能的Python程序如下,请在划线处填入合适的代码。import random #随机生成7个[1,33]范围内不重复的中奖号码
flag= [ 0 ] * 34 ; data = [ 0 ] * 7
i = 0
while i < 7 :
t = random.randint( 1 , 33 )
if not flag[ t ]:
i = i + 1
flag [ t ] = 1
print("中奖号码:" , data)
#读取"彩票记录.txt"文件,存储到数组sale=[[12,8,9,23,1,16,7],[11,7,10,21,2,9,31]…],代码略。
#num[0]表示特等奖个数,num[i]表示i等奖个数
for i in range( len ( sale ) ) :
cnt = 0
for j in range ( 7 ) :
if sale[ i ][ j ] in data:
cnt += 1
num[] += 1
print("彩票开奖结果:")
for i in range( 7 ):
s="特等奖一等奖二等奖三等奖四等奖五等奖六等奖"
print(s[] , "产生:" , num[ i ] , "个")
(3)、上述加框处代码,能否修改为“num = [ 0 ] * 7”,(选填:是/否)。 -
9、有如下Python程序段:
import random
a = [ 0 ] *5 ; i = 0 ; flag = True
while i < 5 :
a[ i ] = random.randint( 1 , 8 )
if i % 2 == 1 :
a[ i ] = a[ i ] + a[ i - 1 ]
flag = not flag
elif a[ i ] % 2 == 0 and flag == False:
i -= 1
i += 1
执行该程序段后,列表a的值不可能的是( )
A、[5, 12, 1, 3, 2] B、[3, 11, 3, 10, 1] C、[4, 5, 5, 11, 7] D、[3, 4, 6, 7, 7] -
10、有如下Python程序段:
s = "Li20An24K04ao" ; i = 0
while i < len( s ) :
if "A" <= s[ i ] <= "Z" :
s = s[ : i ] + s[ i + 1 : ]
elif "0" <= s[ i ] <= "9" :
s = s[ : i ] + str( ( int(s[ i ]) + 8 ) % 10 ) + s[ i + 1 : ]
else :
s = s[ : i ] + chr( ( ord( s[ i ] ) – 95 ) % 26 + 97 ) + s[ i + 1 : ]
i = i + 1
执行上述程序后,s的值为( )
A、k08p0202co B、i08n0202cq C、i08p0202cq D、h28w22g82o -
11、 有如下Python程序段:
a = [ 5 , 4 , 2 , 1 , 3 , 6 ] ; q = [ 0 ] * 6 ; head = tail = 0
for i in range( len( a ) ):
if a[ i ] % 2 == 1 :
q[ tail ] = a[ i ] ; tail = tail + 1
elif head < tail :
head += 1
print( tail – head )
执行该程序段后,输出结果为( )
A、0 B、1 C、2 D、3 -
12、有如下Python段程序:
a = [ 6 , 12 , 9 , 20 , 8 , 11 , 4 ]
for j in range( 1 , len( a ) ) :
if a[ j ] < a[ j - 1 ] :
a[ j ] = a[ j ] + a[ j - 1 ] ; a[ j - 1 ] = a[ j ] - a[ j - 1 ] ; a[ j ] = a[ j ] - a[ j - 1 ]
执行该段程序后,列表a的值是( )
A、[ 4 , 6 , 12 , 9 , 20 , 8 , 11 ] B、[ 4 , 6 , 8 , 12 , 9 , 20 , 11 ] C、[ 6 , 9 , 12 , 8 , 11 , 4 , 20 ] D、[ 6 , 9 , 8 , 11 , 4 , 12 , 20 ] -
13、下列表达式的结果为True的是( )A、2024 % 1000 // 5 == 24 B、abs(int(-1.7) * 2) % 8 == 4 C、int(str(1010 + 90)[1 : 4]) // 25 == 4 D、(2 ** 2 > 2 * 2) and (not(3 ** 3 == 3 * 3))
-
14、已知一个序列的出栈顺序为ACEGI,则该序列的入栈顺序可能是( )A、CEAGI B、AGEIC C、EICAG D、IGCAE
-
15、某算法的部分流程图如图所示,下列说法正确的是( )A、若输入n的值为10,则输出k的值为6 B、若输入n的值为16,则“n≠1?”执行4次 C、若输入n的值为5,则输出k的值为2 D、该算法中只存在分支结构和循环结构
-
16、下列关于计算机信息编码的说法,正确的是( )A、ASCII码用7位二进制编码,共128个字符,转换为十进制后编码范围是0~128 B、数字化过程只需要经过采样、编码两个过程 C、一段时长2分钟、采样频率44100Hz、量化位数8bit未压缩的立体声音频存储容量约为10MB D、数据在计算机内部是以二进制或十六进制方式进行存储和处理的
-
17、阅读下列材料,回答第2-4题
某景区为提升景区管理与游客体验,设计了游客管理信息系统。该系统集成了游客信息管理、网上票务预订、数据分析等功能,旨在实现游客流量监控与资源优化分配。系统收集游客的活动数据并上传至服务器,结合人工智能、大数据和云计算技术,精准分析游客行为,为景区决策提供有力支持。同时,游客利用移动终端APP与景区客服机器人互动,享受个性化服务。
(1)、下列关于信息系统的组成和功能的说法,不正确的是( )A、景区客服人员和游客均为该信息系统的用户 B、该系统具有数据输入、处理、存储和传输等功能 C、该系统的移动终端APP属于系统软件 D、该信息系统体现了“跨越时空限制,服务随时随处”的优势(2)、下列关于人工智能的说法,正确的是( )A、符号主义认为智能特征可被符号精确地描述,从而被机器仿真 B、深度学习是符号主义的典型代表 C、强化学习是根据事先知道的最终答案进行相应调整的学习方法 D、客服机器人通过大量数据训练提升服务水平,属于行为主义在人工智能中的应用(3)、下列关于网络技术的说法,正确的是( )A、HTTP协议负责管理被传送内容的完整性 B、不同的终端进行通信,必须连接到计算机网络 C、IP是网际协议,负责将信息从一个地方传送到另一个地方 D、系统服务器与终端必须在同一个局域网中,该系统才能正常运行 -
18、下列关于数据和信息的说法不正确的是( )A、获取数据的方式有很多种,包括人工方式、传感器获取等 B、面对同样的信息,不同的人由于知识背景、经验等差异,可能形成不同的知识 C、虽然视频和文字在表现形式上不同,但它们所蕴含的信息在某些情况下可能是相同的 D、数据是信息经过存储、分析及解释后所产生的意义
-
19、某项活动有n个单位(编号1到n)参加,需将员工分成若干个小组,每个小组的人数上限为m,小组编号按新建次序从1开始编号。分组时,首先按单位编号次序依次在各单位内部分分组,每m人分配到一个新建小组中,不足m人的剩余员工暂不分配;然后按剩余员工人数由大到小的顺序,依次为各单位剩余员工分配小组。
若某单位剩余员工人数为k,则分配方法为:在已建的小组中查找空位数(该小组还可容纳的人数)大于或等于k的小组,如果找到的小组有多个,则选择空位数最少的小组,将此k人分配到该小组中;如果没有找到,则新建一个小组,将此k人分配到该小组中。
设n为5,m为20,各单位员工人数及单位内部的分组过程如图a所示,各单位剩余员工的分组过程如图b所示。
编写程序:给定各单位编号及员工人数,根据上述方法进行分组处理,按单位编号次序输出各单位所分配的分组编号。请回答下列问题:
(1)、由题意可知,若仅将图a中1号单位的员工人数修改为25,然后对图中5个单位重新分组,则1号单位所分配的分组编号为。(2)、定义如下bubble_sort(lst)函数,参数lst的每个元素由单位编号和剩余员工人数2个数据项组成。函数的功能是根据每个单位的剩余员工人数,对lst进行降序排序。def bubble_sort(lst):
n=len(lst)
for i in range(0, n-1):
return
调用该函数,若 lst 为[[1,0],[2,0],[3,18],[4,0],[5,19],[6,17]],请回答①和②两个问题。
①虚线框中的程序段第 1 次执行后,关于 lst 中的剩余员工人数,下列说法正确的是(单选,填字母)。
A.lst[0][1]数值最小 B.lst[0][1]数值最大
C.lst[5][1]数值最小 D.lst[5][1]数值最大
②虚线框中的程序段执行的次数为。
(3)、实现分组功能的部分 Python 程序如下,程序中用到的列表函数与方法如图 c 所示,请在程序中划线处填入合适的代码。函数与方法
功能
w.append(x)
在列表 w 末尾添加元素 x
x.w.pop()
将列表 w 末尾元素赋值给 x,并将其从 w 中删除
def group(data, m):
n=len(data)
a=[]
for i in range(n+1):
a.append([]) # a[i]初始化为空列表,存放编号为 i 的单位所分配的分组编号
gnum=0
for i in range(n): #各单位内部分组
while data[i][1]>=m:
gnum+=1
k=data[i][0]
a[k].append(gnum)
bubble_sort(data) #根据每个单位的剩余员工人数,对 data 进行降序排序
b=[]
for i in range(m):
b.append([])
i=0 #对剩余员工分组
while i<n and data[i][1]!=0:
while j<m and len(b[j])==0:
j+=1
if j<m:
v=b[j].pop()
else:
gnum+=1
v=gnum
a[data[i][0]].append(v)
i+=1
#输出各单位的分组编号,代码略
'''
读取小组人数上限存入 m;读取 1 至 n 号单位的数据,依次存入列表 data 的 data[0]至 data[n-1]中。
Data[i]包含 2 个数据项,data[i][0],data[i][1]分别存放单位编号及员工人数,代码略
'''
group(lst, m)
-
20、某学院举行运动会,比赛设跳高、100米等项目,每个项目分男子组和女子组。现要进行报名数据处理和比赛成绩分析。请回答下列问题:
图 a
图 b
(1)、运动会报名规则为:对于每个项目的男子组和女子组,每个专业最多各报5人(如“软件工程”专业在男子跳高项目中最多报5人)。软件工程专业的报名数据保存在DataFrame对象df中,如图a所示。若要编写Python程序检查该专业男子跳高项目报名是否符合规则,下列方法中,正确的是 ______ (单选,填字母)。A、从df中筛选出性别为“男”的数据dfs,再从dfs中筛选出项目为“跳高”的数据,判断筛选出的数据行是否超过5行 B、对df中数据按性别排序并保存到dfs中,再从dfs中筛选出项目为“跳高”的数据,判断筛选出的数据行是否超过5行 C、从df中筛选出项目为“跳高”的数据dfs,判断dfs中是否有连续5行以上的男生数据(2)、运动员比赛成绩的部分数据如图b所示。根据已有名次计算得,第1名至8名分别计9,7,6,5,4,3,2,1分,第8名之后计0分。实现上述功能的部分Python程序如下,请在程序中划线处填入合适的代码。import pandas as pd
import matplotlib.pyplot as plt
#读取如图 b 所示数据,保存到 DataFrame 对象 df1 中,代码略
f = [9, 7, 6, 5, 4, 3, 2, 1]
for i in range(0,len(dfl)):
rank = df1.at[i,"名次"] #通过行、列标签取单个值
score = 0
if rank <= 8:
df1.at[i,"得分"] = score
(3)、根据上述 df1 中的得分数据,统计各专业总分,绘制如图 c 所示的柱形图,实现该功能的部分 Python程序如下:df2 = dfl.groupby(" ▲ ",as_index=False).sum() #分组求和
#设置绘图参数,代码略
plt.bar(x,y) #绘制柱形图
①请在程序中划线处填入合适的代码。
②程序的方框中应填入的正确代码为 (单选,填字母)
A.x = df1["专业"]
y = df1["总分"]
B.x = df2["专业"]
y = df2["得分"]
C.df1["专业"] = "专业"
df1["总分"] = "总分"
D.Df2["专业"] = "专业"
Df2["得分"] = "得分"