必修1专题三、专题四检测卷(含解析)2026年浙江省高考选考信息技术总复习

资源下载
  1. 二一教育资源

必修1专题三、专题四检测卷(含解析)2026年浙江省高考选考信息技术总复习

资源简介

专题三、专题四 检测卷
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1.下列python表达式的值为50的是(  )
A.str(45)+"5" B.len("50")
C.int("45")+5 D.int("40"+"10")
2.下列Python表达式的值为整数6的是(  )
A.abs(float(-6)) B.str(6)
C.17%3**9∥2-2 D.abs(int(-5.8))
3.在python中,设x=5 834,能得到其百位数字8的表达式是(  )
A.x % 100 B.x∥10 % 10
C.x∥100 % 10 D.x∥100
4.与表达式not x<0 or y % 2 == 0具有相同功能的是(  )
A.x>=0 and y%2==1 B.x>=0 and y∥2==0
C.x>0 or y∕2==int(y∕2) D.x>=0 or y∥2==y∕2
5.已知列表a=[1,7,6,4,2,9,3,5],则表达式a[1]+a[3]+a[7]的结果为(  )
A.10 B.12 C.14 D.16
6.下列Python表达式中,值为True的是(  )
A.2**3==64**0.5 B.985>211 and not "book"<"pen"
C."Chat" in "chatGPT" D.len("Python")>6
7.将数学代数式表示成Python表达式,下列选项中正确的是(  )
A.(x**3+xy+3y**2)**1/ 3
B.(x**3+xy+3y**2)**(1/ 3)
C.[x**3+x*y+3*(y**2)]**(1/ 3)
D.(x**3+x*y+3*y**2)**(1/ 3)
8.变量r的值为0或1,若要对变量r的值进行0和1之间的转换运算,下列python语句中,无法实现此功能的是(  )
A.r=1-r B.r=abs(r-1)
C.r=(r+1)%2 D.r=r%2+1
9.已知list1=[2,"hello",True,round(3.46)],执行语句list1[1︰3]=["good"]后,列表list1中的内容为(  )
A.[2,"good",True,3] B.[2,"good",3]
C.[2,"hello",true,"good"] D.["good",3.46]
10.有如下Python程序段:
a=[5,6,3,4,7,1]
min=a[0]
s=20
for i in range(1,len(a)):
 if a[i]  min=a[i]
 s-=min
print(s)
执行该程序段后,输出的结果是(  )
A.-1 B.4 C.5 D.15
11.用Python算法控制结构描述“某商场根据会员积分p发放礼品:若积分大于500则送‘电影票’,若积分小于100则送‘小零食’,否则送‘饮料’”。下列选项正确的是(  )
A. if p>500:   a="电影票" if p<100: a="小零食" else: a="饮料" print(a) B. a="饮料" if p<100: a="小零食" elif p>500: a="电影票" print(a)
续 表
C. a="小零食" if p>100: a="饮料" elif p>500: a="电影票" print(a) D. a="电影票" if p<100: a="小零食" if p<=500: a="饮料" print(a)
12.给定一个正整数数组a和一个目标值target,找出数组中一个连续区间,其和等于目标值,输出其起始和结束下标。实现该功能的程序段如下:
a=[1,3,2,5,1,1,2,3]
target=8
i=j=s=0
while js+=a[j]
while        :
s-=a[i]
i+=1
if s==target:
print("找到目标区间:",i,j)
break
j+=1
程序中划线处应填入的正确代码为(  )
                                
A.sB.s>target and iC.s>target and iD.s==target and i二、非选择题(本大题共4小题,其中第13小题6分,第14小题6分,第15小题7分,第16小题7分,共26分)
13.“回文串”是一个正读和反读都一样的字符串。下列Python段的功能是:输入一个字符串,判断该字符串是否为回文串,若是则输出“Yes”,否则输出“No”。
s=input("请输入字符串:")
    ①   
j=len(s)-1
flag=True
while iif s [i]==s[j]:
i+=1
    ②   
else:
flag=False
if   ③    :
print("Yes")
else:
print("No")
程序划线①处应填入的代码为:  ;(2分)
程序划线②处应填入的代码为:  ;(2分)
程序划线③处应填入的代码为:  。(2分)
14.小明在实验室搭建一套花园智能灌溉系统,分成若干个分区,每个分区灌溉阀门都能独立控制。当阀门关闭时,若传感器检测到土壤水分值持续20分钟低于10,则打开阀门;当阀门打开时,若土壤水分值高于40,或阀门持续30分钟处于打开状态,则关闭阀门。
实现上述功能的部分 Python 程序如下,请在划线处填入合适的代码。
n=5    #假设花园有5个分区
a=[0]*n #各分区土壤水分值
b=[0]*n #各分区灌溉阀门状态,0表示关闭,1表示打开
t=[0]*n
mmin,mmax = 10,40 #设置土壤水分值范围
while True:
  #从传感器获取各分区土壤水分值,保存在a中,代码略
  for i in range(n):
if    ①    :
  if a[i]t[i]+=1
else:
t[i]=0
if t[i]>=20:
    ②   
b[i]=1
else:
     ③    
if a[i]>mmax or t[i]>=30:
t[i]=0
b[i]=0
#延时1分钟,根据列表b的值,更新阀门状态,代码略
程序划线①处应填入的代码为:        ;(2分)
程序划线②处应填入的代码为:        ;(2分)
程序划线③处应填入的代码为:        。(2分)
15.编写一个查找替换功能的Python程序,功能如下:输入原文、查找内容和替换内容,对原文进行检索,若找到,则进行替换并统计替换的次数,最后输出替换后的结果;若找不到,则输出“查找内容不存在!”。程序运行界面如下图所示:
请输入原文:Life is like a fireworks,short and brilliant,brilliant and transient.
请输入查找内容:and
请输入替换内容:but
替换的次数为:2
替换后的结果为··Life is like a fireworks,short but brilliant,brilliant but transient.
实现上述功能的Python程序如下,请回答下列问题:
text=input("请输入原文:")
key=input("请输入查找内容:")
rep=input("请输入替换内容:")
result=""
count=i=0
n=len(text)
while i     ①  
  if key==s:
   result+=rep
   count+=1
      ②  
  else:
   result+=text[i]
   i+=1
result+=text[i:n]
if count>0:
 print("替换的次数为:"+   ③   )
 print("替换后的结果为:"+result)
else:
 print("查找内容不存在!")
(1)若原文内容为“We put the bed in the bedroom”(不包含引号),若查找内容为bed,替换内容为chair,则替换的次数为    。(1分)
(2)请在程序划线处填入合适的代码。
程序划线①处应填入的代码为: ;(2分)
程序划线②处应填入的代码为: ;(2分)
程序划线③处应填入的代码为: 。(2分)
16.用英文字母A~D对数字字符0~9进行编码,编码规则如下表所示:
数字字符 0 1 … 7 8 9
二进制值 0 0 0 0 0 0 0 1 … 0 1 1 1 1 0 0 0 1 0 0 1
对应编码 A A A B … B D C A C B
例如,数字字符串“718”的编码为“BDABCA”。
用Python程序实现上述编码,功能如下:输入待编码的一串数字字符,输出编码结果,程序运行界面如下图所示。
请输入数字字符串:718
编码结果为··BDABCA
实现上述功能的Python程序如下,请回答下列问题:
def dtob(x):
 st="
 for i in range(4):
   r=x%2
      ①  
  x=x∥2
 return st
code={'00':'A','01':'B','10':'C','11':'D'}
s=input('请输入数字字符串:')
result="
for i in range(len(s)):
     ②  
 if '9'>=ch>='0':
  ans=dtob(int(ch))
     ③  
 else:
   break
if result!=":
 print('编码结果为:',result)
else:
 print('输入有误!')
(1)运行该程序,若输入的数字字符串为“5736”,则输出的编码结果为       。(1分)
(2)请在程序划线处填入合适的代码。
程序划线①处应填入的代码为:              ;(2分)
程序划线②处应填入的代码为:              ;(2分)
程序划线③处应填入的代码为:              。(2分)
专题三、专题四 检测卷
一、选择题
1.C 
2.C 解析:表达式abs(float(-6))的值为6.0,因此A选项错误;str(6)的值为'6',因此B选项错误;表达式abs(int(-5.8))的值为5,因此D选项错误;表达式17%3**9∥2-2的值为6,因此答案为C。
3.C 解析:本题主要考查的是Python运算符。A选项的结果为34,B选项的结果为3,D选项的结果为58,C选项的结果为8,因此答案为C。
4.D 
5.D 解析:在列表中,第1个元素的索引值为0,因此a[1]+a[3]+a[7]=7+4+5=16,故答案为D。
6.A 7.D 8.D 
9.B 解析:语句list1[1··3]=["good"]的功能是将列表list1中索引值为1,2的元素替换为"good",round(3.46)的值3,因此执行语句list1[1··3]=["good"]后,列表list1中的内容为[2,"good",3],答案为B。
10.C 解析:当i为1时,min=5,当i为2时,min=3,当i为3时,min=3,当i为4时,min=3,当i为5时,
min=1,因此s=20-5-3-3-3-1=5,故答案为C。
11.B 解析:本题考查Python程序分支结构。选项A中两个if语句是独立的,若p>500,执行第一个if赋值“电影票”,但第二个if仍会判断p<100为假,执行else,结果被改为“饮料”,逻辑错误;选项B中先默认a为“饮料”,再通过if-elif结构判断p的范围,p<100时改为“小零食”,p>500时改为“电影票”,逻辑完整正确;选项C中初值为“小零食”,但条件顺序错误,p>500时仍会先满足p>100而被赋值为“饮料”,导致高积分无法得到“电影票”;选项D中虽然p>500时能得到“电影票”,但当p<100时,先赋值为“小零食”,接着由于p<=500仍为真,第二个if又将a改为“饮料”,导致结果被覆盖,逻辑不符合题意。故答案为B。
12.C 解析:程序通过两个指针i和j构成滑动窗口,s为窗口内元素和。每次右移j增加新元素后,若s>target,应通过右移i缩小窗口以减小和,直到s≤target。因此,划线处需在s超出目标值且窗口不为空时收缩窗口,C选项(s>target and i二、非选择题
13.①i=0 ②j-=1或j=j-1 ③flag 或flag==True
解析:本题主要考查的是循环结构及算法基础。本题程序的功能是判断字符串是否为回文串。本题采用双指针的方法来判断头尾一对字符,变量i指向字符串的头部,j指向字符串的尾部,因此①处代码为i=0。每次比较头尾一对字符,若相同则i往后走一步,j往前走一步,因此②处代码为j-=1或j=j-1。最后根据逻辑变量flag的值来判断是否为回文串,当s[i]!=s[j]时,flag为False,因此③处代码为flag或flag==True。
14.①b[i]==0 ②t[i]=0 ③t[i]+=1
解析:本题主要考查的是双循环结构及算法基础。
划线①处表示阀门状态为关闭时的情况,因此①处代码为b[i]==0;当土壤水分值持续20分钟低于阈值时,则改变阀门状态,并重新开始计时长,因此②处代码为t[i]=0;当阀门打开时,阀门打开时长+1,因此③处代码为t[i]+=1。
15.(1)2 (2)①s=text[i··i+len(key)] ②i=i+len(key)或i+=len(key) ③str(count)
解析:(1)原文中有2个“bed”,因此答案为2。(2)程序①处的功能是取出原文中与查找内容key等长的字符串,起点为i,终点为i+len(key)-1,因此程序①处的代码为s=text[i··i+len(key)];程序②处表示将原文中的key替换为rep后i到达的位置,i应变化为i=i+len(key),因此程序②处代码为i=i+len(key),也可以写为i+=len(key);替换的次数存储在变量count中,输出时采用的是字符串“+”运算,因此将count转换为字符串,然后再拼接,故程序③处代码为str(count)。
16.(1)BBBDADBC
(2)①st=str(r)+st
②ch=s[i]
③result+=code[ans[0··2]]+code[ans[2··4]]或result=result+code[ans[0··2]]+code[ans[2··4]]或result+=code[ans[··2]]+code[ans[2··]]
解析:(1)5736对应的二进制为“0101,0111,0011,0110”,对应的编码为BBBDADBC。(2)根据代码“return st”,可知返回的二进制数为st,将每次得到的余数倒序拼接起来就是十进制数对应的二进制数,因此程序①处的代码为st=str(r)+st;本题的算法思想是将数字字符中的每个字符取出,接着将它转换为二进制数,然后取出二位二进制编码,从字典code中取出对应的编码,因此程序②处的代码为ch=s[i];程序③处的代码为result+=code[ans[0··2]]+code[ans[2··4]]或result=result+code[ans[0··2]]+code[ans[2··4]]或result+=code[ans[··2]]+code[ans[2··]]。

展开更多......

收起↑

资源预览