浙江省绍兴市2023-2024学年高二上学期信息技术期中考试选考试卷
试卷更新日期:2023-11-29 类型:期中考试
一、选择题(本大题共12小题,每小题2分,共24分。在每小题给出的四个选项中,只有一个符合题目要求,不选、多选、错选均不得分)
-
1. 下列关于数据和信息的说法,正确的是( )A、图形符号不是数据 B、信息不会因为被别人获取而发生耗损 C、信息具有载体依附性,不能脱离他反映的事物传播 D、信息可用模拟信号来表达,模拟信号是离散、不连续的信号2. 下列关于大数据的说法,不正确的是( )A、处理大数据时,一般采用分治思想 B、社交网络数据可采用图计算进行处理 C、速度快是大数据的特征之一,仅指数据的产生速度快 D、价值密度的高低与数据总量的大小成反比3. 下列关于信息的编码,说法不正确的是( )A、8位二进制数能表示的最大的十进制数是255 B、n进制数120是n进制数12的n倍 C、十进制数x刚好能整除8,则转换为二进制数后三位都为0 D、十六进制数E0H中的“E”对应的权值是1624. 相同像素大小的两幅图像,分别由黑白像素和 256 种颜色像素组成,其容量大小之比为( )A、1:8 B、1:1 C、1:128 D、1:2565. 某算法的部分流程图如下图所示,以下说法正确的是( )A、该流程执行后,变量s的值是42 B、该流程执行后,变量a的值是16 C、该流程用于计算并输出2-4+8-16的值 D、该流程完整执行1次,“a<32?" 共执行了5次6. 象限是平面直角坐标系中横轴和纵轴所划分的四个区域,每一个区域叫做一个象限。象限以原点为中心,x,y轴为分界线,原点和坐标轴上的点不属于任何象限。某同学根据输入的坐标点(x,y)来判断该坐标点的位置所在,以下实现该分类的Python程序段中正确的是( )A、if x==0 and y==0:
result="原点"
if x==0 or y==0:
result="数轴"
if x!=0 and y!=0:
result="象限"
B、if x==0 or y==0:result="数轴"
elif x==0 and y==0:
result="原点"
else:
result="象限"
C、if x!=0 and y!=0:result="象限"
elif x==0 or y==0:
result="数轴"
else:
result="原点"
D、if x!=0 and y!=0:result="象限"
if x==0 and y==0:
result="原点"
elif x==0 or y==0:
result="数轴"
7. 有如下Python程序段:n=int(input())
a=[0,0,0,0,0,0,0,0,0,0]
c=0
while n>0:
a[n%10]=a[n%10]+1
if a[n%10]==1:
c=c+1
n=n//10
print(c)
执行上述程序段,若输出c的值为4,则输入n的值可能为( )
A、1123 B、2373 C、14551 D、200458. 有如下Python程序段:s="13Ka5iSh79"
s1=""
for i in s:
if "0" <= i <= "9":
s1=i+s1
else:
s1+=i
print(s1)
执行该程序段后,输出的结果是( )
A、13Ka5iSh79 B、13579KaiSh C、97531KaiSh D、31Ka5iSh979. 有如下Python程序段:s="VictoryOnTheWay" #'A'的ASCII值为65,"a"的ASCII码值为97
mx=""
pre=0
for i in range(1,len(s)):
if ord(s[i]) < 97:
if mx<s[pre:i]:
mx=s[pre:i]
pre=i
print(mx)( )
A、Victory B、On C、The D、Way10. 有如下Python程序段:lst=[74,32,66,46,38,28,85]
k=1
for i in range(len(lst)-1):
if lst[i]*k < lst[i+1]*k:
print(lst[i],end=" ")
k=-k
执行完以上程序段后,输出的内容为( )
A、74 66 38 B、74 32 66 38 28 C、74 32 66 46 38 28 D、4611. lst1和lst2都是升序排序的列表,执行如下Python程序段:result=[]
i=0#用于遍历1st1
j=0#用于遍历1st2
while i<len(lst1) and j<len(lst2) :#①
if lst1[i]<lst2[j]:
result.append(lst1[i])
i+=1
else:
result.append(lst2[j])
j+=1
while i<len(lst1):
result.append(lst1[i]) #②
i+=1
while j<len(lst2):
result.append(lst2[j]) #③
j+=1
下列说法不正确的是( )
A、程序段①执行后,result可能与lst1相同 B、程序段①执行后,result可能与lst2相同 C、在一次程序运行中,②处代码和③处代码可能都被执行 D、程序执行后,列表result中的元素升序排序12. 有如下Python程序段:from random import random
a=[1]*5
i=1
while i<=4:
a[i]=int(random()*10)+1
if a[i]==a[i-1]//2 or a[i]==a[i-1]*2:
i+=1
执行该程序段后,数组a的值可能是( )
A、[1,2,1,2,1] B、[1,2,4,8,16] C、[2,1,2,1,2,] D、[8,4,2,4,8]二、非选择题(本大题共4小题,6+6+7+7,共26分)
-
13. 一个正整数,如果它能被7整除,或者它的十进制表示法中某一位上的数字为7,则称其为与7相关的数。现求所有小于等于n的与7无关的正整数的平方和。实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
n=int(input())
for i in range(n+1):
flag=False
if i%7==0:
flag=True
m=i
while :
if m%10==7:
flag=True
m//=10
if :
sum=sum+i*i
print(sum)
14. 检查数学表达式中的括号是否配对是计算机进行数学计算的重要环节。括号序列“()()”中的“(”与“)”是配对的,而序列“())(”中的括号则是不配对的。对于不配对的序列,可以将“(”括号修改为“)”,或者将“)”修改为“(”来实现配对。如图所示是括号序列“())(()”通过不同的方案所需要的修改次数,最少修改次数为2。编写程序,计算修改括号序列使其配对的最少次数。部分Python程序如下,请在划线处填入合适的代码。
s=input() #输入括号序列,序列中仅包含“(”、“)”两种字符,且长度为偶数
x=0
ans=0
for i in range(len(s)):
if s[i]=="(":
elif s[i]==")" and x>=1:
x-=1
elif s[i]==")" and :
ans+=1
x+=1
ans+=
print(ans)
15. 某货品仓库最多存储m件货物,只能从左右两侧取出,现要在移动其他货物次数尽可能少的情况下取出一件某类货物,取出后,其他货物按照原有顺序重新存入,货物间不留空隙。比如:仓库存储情况列表a=["0","A","A","B","B","A","0","0","0"],其中"0"表示空位,"A","B"表示位置上货物种类,现需从中取出一件B货物,则应从右侧取出,取完后,仓库存储列表更新为a=["0","A","A","B","A","0","0","0","0"]。
(1)、若要在上述实例中,再取出一件B货物,则应从(选填:左侧/右侧)取出。(2)、实现上述功能的部分Python程序如下,请在划线处填入合适代码。#读取仓库存储情况列表a,代码略
m=len(a)
kind=input("请输入需要取出的货物种类:")
left=0 #left记录从左侧取出此货物时需移动其他物品的次数
right=0 #right记录从右侧取出此货物时需移动其他物品的次数
i=0;j=m-1
t=[0,0] #t表示是否找到此货物
while i<=j and t!=[1,1]:
if :
i=i+1
elif a[i]!=kind:
left+=1
i=i+1
else:
t[0]=1
if a[j]=="0":
j=j-1
elif a[j]!=kind:
j=j-1
else:
t[1]=1
if left>right:
for k in range(j,m-1):
a[k]=a[k+1]
a[m-1]="0"
else:
for k in range():
a[k]=a[k-1]
a[0]="0"
print(a)
16. 某公路由于长期没有维修,路上出现了很多个坑。为了尽快填补好这些坑,交通管理部门决定对m处地段采取交通管制。将该公路看成一条直线,坑就是直线上的坐标点,坑所在的路段需要封控管制。例如某管制路段2~4,需封控2、3、4路段。交管部门为了减少管制路段的长度,希望将这n个坑分成m段(一段可以只有一个坑),使得这m段公路的总长度最小。请你根据n个坑的位置(位置已按照从小到大进行排序),计算管制路段最小的总长度。代码运行效果如题图所示。请回答下列问题:
(1)、上图所示的例子中,若将路段数量修改为5,则管制路段总长度为。(2)、实现上述功能的Python程序如下,请在划线处填入合适的代码。m=int(input("路段数量: "))
s=input("坑的坐标依次为:").split(',') #实现字符串“3,4,6”,转化为列表["3","4","6"]
n=len(s)
for i in range(n) :
s[i]=int(s[i])
flag=[False]*(n-1)
for i in range(1,m) :
k=-1
for j in range(n-1) :
if :
if k==-1 or s[j+1]-s[j]>s[k+1]-s[k]:
k=j
flag[k]=True
print("维修管制的路段依次为:")
dis,t=0,0
for i in range(n-1):
if flag[i]:
print(s[t],"~",s[i])
dis+=s[i]-s[t]+1
print(s[t],"~",s[n-1])
dis=
print("管制总长度为",dis)