浙江省五校联盟2023-2024学年高二下学期信息技术期中考试试卷
试卷更新日期:2024-05-30 类型:期中考试
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
-
1. 下列关于数据和信息的说法不正确的是( )A、获取数据的方式有很多种,包括人工方式、传感器获取等 B、面对同样的信息,不同的人由于知识背景、经验等差异,可能形成不同的知识 C、虽然视频和文字在表现形式上不同,但它们所蕴含的信息在某些情况下可能是相同的 D、数据是信息经过存储、分析及解释后所产生的意义2. 阅读下列材料,回答第2-4题
某景区为提升景区管理与游客体验,设计了游客管理信息系统。该系统集成了游客信息管理、网上票务预订、数据分析等功能,旨在实现游客流量监控与资源优化分配。系统收集游客的活动数据并上传至服务器,结合人工智能、大数据和云计算技术,精准分析游客行为,为景区决策提供有力支持。同时,游客利用移动终端APP与景区客服机器人互动,享受个性化服务。
(1)、下列关于信息系统的组成和功能的说法,不正确的是( )A、景区客服人员和游客均为该信息系统的用户 B、该系统具有数据输入、处理、存储和传输等功能 C、该系统的移动终端APP属于系统软件 D、该信息系统体现了“跨越时空限制,服务随时随处”的优势(2)、下列关于人工智能的说法,正确的是( )A、符号主义认为智能特征可被符号精确地描述,从而被机器仿真 B、深度学习是符号主义的典型代表 C、强化学习是根据事先知道的最终答案进行相应调整的学习方法 D、客服机器人通过大量数据训练提升服务水平,属于行为主义在人工智能中的应用(3)、下列关于网络技术的说法,正确的是( )A、HTTP协议负责管理被传送内容的完整性 B、不同的终端进行通信,必须连接到计算机网络 C、IP是网际协议,负责将信息从一个地方传送到另一个地方 D、系统服务器与终端必须在同一个局域网中,该系统才能正常运行3. 下列关于计算机信息编码的说法,正确的是( )A、ASCII码用7位二进制编码,共128个字符,转换为十进制后编码范围是0~128 B、数字化过程只需要经过采样、编码两个过程 C、一段时长2分钟、采样频率44100Hz、量化位数8bit未压缩的立体声音频存储容量约为10MB D、数据在计算机内部是以二进制或十六进制方式进行存储和处理的4. 某算法的部分流程图如图所示,下列说法正确的是( )
A、若输入n的值为10,则输出k的值为6 B、若输入n的值为16,则“n≠1?”执行4次 C、若输入n的值为5,则输出k的值为2 D、该算法中只存在分支结构和循环结构5. 已知一个序列的出栈顺序为ACEGI,则该序列的入栈顺序可能是( )A、CEAGI B、AGEIC C、EICAG D、IGCAE6. 下列表达式的结果为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))7. 有如下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 ]8. 有如下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、39. 有如下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、h28w22g82o10. 有如下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]二、非选择题(本大题共3小题,第13题8分,第14题8分,第15题10分,共26分)。
-
11. 为支持公益事业,彩票中心设立了一个彩票项目。每张彩票上印有 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”,(选填:是/否)。12. 某校为了支持学生的学习进步,特设补弱支持,每位学生可以根据自身学习情况,从语数英物化生政史地技这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()
13. 在计算机的操作系统中,经常需要给应用程序“分配内存”和“释放内存”。若有大小为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 ]