浙江省五校联盟2023-2024学年高二下学期信息技术期中考试试卷
共 13 题 ; 21人浏览 ; 高二下学期
2024-05-30
一、选择题(共10题,共24分)
2. 阅读下列材料,回答第2-4题

某景区为提升景区管理与游客体验,设计了游客管理信息系统。该系统集成了游客信息管理、网上票务预订、数据分析等功能,旨在实现游客流量监控与资源优化分配。系统收集游客的活动数据并上传至服务器,结合人工智能、大数据和云计算技术,精准分析游客行为,为景区决策提供有力支持。同时,游客利用移动终端APP与景区客服机器人互动,享受个性化服务。

(1) 下列关于信息系统的组成和功能的说法,不正确的是(   ) A. 景区客服人员和游客均为该信息系统的用户 B. 该系统具有数据输入、处理、存储和传输等功能 C. 该系统的移动终端APP属于系统软件 D. 该信息系统体现了“跨越时空限制,服务随时随处”的优势
(2) 下列关于人工智能的说法,正确的是(   ) A. 符号主义认为智能特征可被符号精确地描述,从而被机器仿真 B. 深度学习是符号主义的典型代表 C. 强化学习是根据事先知道的最终答案进行相应调整的学习方法 D. 客服机器人通过大量数据训练提升服务水平,属于行为主义在人工智能中的应用
(3) 下列关于网络技术的说法,正确的是(   ) A. HTTP协议负责管理被传送内容的完整性 B. 不同的终端进行通信,必须连接到计算机网络 C. IP是网际协议,负责将信息从一个地方传送到另一个地方 D. 系统服务器与终端必须在同一个局域网中,该系统才能正常运行
单选题 普通
二、非选择题。(共3题,共15分)
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”,(选填:是/否)。
综合题 普通
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 ]

综合题 困难