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

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

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

资源简介

专题五 检测卷
一、选择题( 本大题共 12 小题,每小题 2 分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1.下列语句中,输出结果为整数18的是(  )
A.print('1'+'8')
B.print(int('1'+ '8'))
C.print(2+32/2)
D.s="2018"; print(s[2:4])
2.下列Python 表达式结果最大的是(  )
A.9%5*3-3**3∥12 B.5**3%10+7%2**2
C.3721∥100-5628%100 D.int("1"+"9")-2**3
3.有如下程序段:
x=int(input("请输入一个正整数:"))
ans=""
while x>0:
  m=x%5
  ans=str(m)+ans
  x∥=5
print(ans)
该程序段执行后,输入30,输出的结果为(  )
A.011 B.11 C.110 D.1100
4.有如下Python程序段:
a=[3,5,2,4,1]
sum1=m=a[0]
for i in range(1,len(a)):
if a[i]m=a[i]
sum1+=m
                                
执行该程序后,sum1的值为(  )
A.6 B.9 C.11 D.15
5.小明和同学一起探究问题:寻找100及以内的所有素数并且输出。程序如下:
n=100
print(2,end="")
for i in range(3,n+1,2):         #①
  flag=True
  for j in range(3,int(i**0.5)+1,2):  #②
   if i % j == 0:
                    #③
    break
  if flag:
    print(i,end="")
下列说法中正确的是(  )
A.①中range函数中的步长应该改为1,否则不能实现输出所有素数
B.②中的int(i**0.5)+1可以改为i+1
C.③处可以填写flag=False
D.该程序运行后的结果会遗漏素数2
6.有如下Python程序段:
a=[6,9,4,10,5,3,7,2]
n=len(a)
m=int(input('请输入m:'))
ans=0
for i in range(n):
 if a[i]  m=a[i]
  ans+=m
print(ans)
执行该程序段时,输入m的值为5,则输出的结果为(  )
A.9 B.16
C.30 D.33
7.下列Python程序段的功能是:输入两个整数,通过计算,最终输出较大整数除以较小整数的余数。
a,b=eval(input("请输入两个整数:"))
if a  a,b=b,a
while a>=b:
    
print(a)
则程序段划线处应填入的语句为(  )
A.a=a+b B.a=a-b
C.b=a%b D.a=a∥b
8.定义如下函数:
def f(s):
  if len(s)<=2:
return s
  else:
return s[0]+s[-1]+f(s[1:-1])
执行print(f("123456"))后,输出结果为(  )
                                   
A.342561 B.162534
C.162543 D.342516
9.有如下Python程序段:
a=int(input("请输入正整数:"))
sum=s=0
while a>0:
  sum+=a%10
  a∥=10
  s=s+1
if s*sum==36:
 print("通过检验!")
else:
 print("不通过!")
如果该程序段执行后输出的结果是“通过检验!”,则输入的整数n可能是(  )
                                    
A.146 B.2040 C.1323 D.29
10.有如下Python程序段:
from random import randint
a=[0]*6
i=0
while i<6:
a[i]=randint(1,10)
if a[i]%2==i%2:
i=i-1
elif a[i]%2==0:
 a[i]=a[i]+1
i= i+1
执行该段代码后,列表a的值不可能为(  )
A.[5,3,1,11,9,3] B.[11,5,5,7,3,5]
C.[1,3,9,11,1,11] D.[9,7,7,5,9,3]
11.有如下Python程序段:
s="cbcbaabcbbc"
st=s[0]
for i in range(1,len(s)):
if len(st)==0 or s[i]!=st[-1]:
st=s[i]+st
else:
st=st[0:len(st)-1]
print(st)
执行该段代码后,输出结果为(  )
A.cbbc B.cbc
C.bc D.b
12.有如下 Python 程序段:
#生成5个10以内的随机正整数,保存在列表a中,代码略
b=[0] * 5
for i in range(1,5):
b[i]=a[i]-a[i-1]
temp,s=0,1
for i in range(5):
temp+=b[i]
while s<=i and temp>0:
temp-=b[s]
s+=1
print(a[s-1:i+1])
列表a由5个10以内的随机正整数组成,执行该程序段后,输出结果不可能为(  )
A.[9] B.[3,6]
C.[8,7,2] D.[2,2,2,2]
二、非选择题(本大题共3小题,其中第 13小题6分,第14小题10分,第15小题10分,共 26 分)
13.编写程序实现如下功能:统计某医院儿科100天中连续7天的日就诊人数最大差值,即任意连续7天内的日就诊人数最多与最少的差值。
实现上述功能的Python程序如下,请回答下列问题。
(1)100天内某时间段的日就诊人数为“15, 26, 55, 39, 16, 51, 23, 19, 58, 51”,则该时间段内连续7天日就诊人数的最大差值为    。(2分)
(2)请在程序划线处填入合适的代码。
#列表a中存储了100天的日就诊人数,代码略
ans=-1
for p in range(0,94):
  i=p
    ①  
  minrs=min(a[i:j])
  maxrs=max(a[i:j])
  if  ②  :
    ans=maxrs-minrs
print("连续7天日就诊人数最大差值为:",ans)
程序划线①处应填入的代码为:         ;(2分)
程序划线②处应填入的代码为:         。(2分)
14.某公司举办抽奖活动,设有一、二、三等奖。每张奖券印有3个互不相同的数字,每次在兑奖前公布中奖号码,兑奖时不考虑中奖数字的先后顺序,兑奖规则如下表所示。编程统计奖券获得的总奖金。
奖项 一等奖 二等奖 三等奖
兑奖条件 3个数字均匹配 2个数字匹配 1个数字匹配
奖金 500元 200元 100元
(1)某次中奖号码为3,1,8,则号码为1,6,3 的奖券可获得奖金    元。(1分)
(2)实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
# 输入中奖号码,依次存储到列表元素 win[0]至 win[2]中,代码略
rew=[0,100,200,500]
   ①  
n=int(input("输入奖券数量:"))
for i in    ②   :
cnt=0
# 输入奖券的号码,依次存储到列表元素 tic[0]至tic[2]中,代码略。
for j in range(3):
if tic[j] in win:
cnt+=1
    ③   
print("总奖金金额为:",mon)
程序划线①处应填入的代码为:        ;(3分)
程序划线②处应填入的代码为:        ;(3分)
程序划线③处应填入的代码为:        。(3分)
15.丑数是只包含质因数2、3、5的正整数,三位不重丑数是三位正整数且各位数字不重复的丑数。小林编写了一个Python程序寻找三位不重丑数,程序运行结果如下图所示。请回答下列问题:
(1)图中第一个三位不重丑数被模糊了,该数为      。(2分)
(2)Python程序代码如下,请在划线处填上合适的代码。
#判断正整数n是否只包含2、3、5三个质因子,是返回真,否返回假。
def check(n):
for i in range(2,6):
while n%i==0:
n=n∥i
  if   ①  :
   return True
  else:
return False
ans=0  #以下是主程序部分
a=[ ]
for i in range(100,1000):
f=[0]*10
temp=i
while temp!=0:
f[temp%10]=1
temp=  ② 
  if sum(f)==3:  #sum函数()用于计算列表f中数值的总和
if   ③  :
   ans+=1
   a.append(i)  #在列表a末尾添加一个元素
print("三位不重丑数有",a)
print("共有",ans,"个")
程序划线①处应填入的代码为:        ;(2分)
程序划线②处应填入的代码为:        ;(2分)
程序划线③处应填入的代码为:        。(2分)
(3)该程序段采用的算法是    (单选,填字母:A.解析算法/B.枚举算法)。(2分)
专题五 检测卷
一、选择题
1.B 2.D 3.C 
4.C 解析:本题主要考查的是循环结构。本题程序的功能是:每次将a[i]与m中的较小值累加到变量sum1中,因此sum1=3+3+2+2+1=11,故答案为C。
5.C 解析:本题采用枚举算法求100及以内的所有素数,素数必定为奇数,因此A选项错误;若将②中的int(i**0.5)+1改为i+1,则j的范围为[3,i,2],整数i必然能被自己整除,因此B选项错误;因为循环之前就输出了素数2,因此不会遗漏,故D选项错误;③处可以填写flag=False或flag=not flag,因此答案为C。
6.C 解析:本题的功能是将列表中的每个元素与m比较大小,将小的数保存在变量m中,并累加到ans中,因此ans=5+5+4+4+4+3+3+2=30,故答案为C。
7.B 解析:本题程序的功能是实现a%b的结果,其算法是让a不断地减去b,直到a8.B 解析:本题考查自定义函数和递归。当调用f函数时,实际传入值为字符串“123456”,即s的值变为“123456”,在自定义函数f中,是一个双分支结构,如果s的长度,即“123456”的长度如果小于等于2,返回s;否则返回首尾字符相连与再次调用函数f的结果。因此第一次调用函数时,返回结果为“1”+“6”+ f(“2345”),此时还需要再次调用函数f,f(“2345”)返回结果为“2”+“5”+ f(“34”),再次调用函数f,f(“34”)返回结果为“34”。故最后返回“1”+“6”+“2”+“5”+“34”=“162534”。故答案为B。
9.C 解析:本题程序的功能是判断整数a的各位数字之和与整数a的位数的乘积是否为36,若乘积为36,则输出信息“通过检验!”,否则输出信息“不通过!”,整数1323的各位数字之和为1+3+2+3=9,位数为4,它们的乘积为36,因此答案为C。
10.B 解析:本题程序的功能是随机生成6个[1,10]范围内的整数,要求偶数位置上的数为奇数,当奇数位置上的数为偶数时,则通过加1变为奇数,因此6个数全部为奇数,偶数位置上的数的范围为[1,10],奇数位置上的数的范围为[1,11]。B选项中,索引0的数不可能超过10,因此答案为B。
11.D 解析:本题程序的功能是将字符串s中的字符逆序拼接在st中,拼接过程为:若字符串中当前字符s[i]与st中最后一个字符相同时,则将删除st中最后一个字符,否则将s[i]拼接在st最前面。根据拼接方法模拟可知,最终st中的内容为"b",因此答案为D。
12.B 解析:本题主要考查程序的分析处理能力,涉及的算法模式为“滑动窗口”。列表 b 存储相邻差值:b[i]=a[i]-a[i-1](i从1到4),b[0]固定为0滑动窗口:temp累加b[0]到b[i]的和。通过while 循环动态调整窗口左边界s,使得temp<=0。输出子数组:a[s-1:i+1],即满足temp<= 0的子数组。如果没有满足条件的子数组,那么只会输出最后一个元素。子数组差值的累积和temp<=0,选项B不满足,选项C,D都满足。当9是最后一个元素且temp最终大于0时,就只输出9,选项 A满足这一条件,因此答案为B。
二、非选择题
13.(1)42
(2)①j=i+7 或 j=p+7 ②maxrs-minrs>ans 或 maxrs-minrs>=ans
解析:(1)该时间段内连续7天日就诊人数的最大差值为42。
(2)代码minrs=min(a[i··j])的功能是求列表中元素a[i]~a[j-1]中的最小值,根据此代码,可知j的位置为i+7,因此程序①处代码为j=i+7 ,因为i与p相等,因此也可以写为j=p+7;ans记录的是最大差值,当前连续7天内的最多日就诊人数与最少日就诊人数之差大于此前的最大差值ans时,更新ans的值,因此程序②处代码为maxrs-minrs>ans或maxrs-minrs>=ans。
14.(1)200
(2)① mon=0 ② range(n) ③ mon+rew[cnt]
解析:本题主要考查的是算法基础。
(1)有2个数字匹配(数字1和3),因此可获得奖金200元。
(2)总金额为mon,因此mon需赋初值0,故①处代码为mon=0;②处为枚举每张奖券情况,共有n张奖券,因此②处代码为range(n);列表rew中存储了0-3个数字匹配时的奖金,当前奖券匹配的数字个数为cnt,即当前奖券可获得奖金数为rew[cnt],总奖金数为mon=mon+rew[cnt],故③处代码为mon+rew[cnt]。
15.(1)108 (2)①n==1 ② temp∥10 ③check(i)或check(i)==True (3)B
解析:本题考查枚举算法。
(1)根据丑数定义(只含质因数 2、3、5)和各位数字不重复的条件,从 100 开始分析,108 = 22×33,且数字 1、0、8不重复,故该数为 108。(2) ① 在 check 函数中,若最终 n=1,说明 n 只含质因数 2、3、5,故填 n==1; ② 提取数字后,temp 应整除 10 继续处理下一位,填 temp∥10; ③ 需判断该数是否为丑数,即 check(i) 为真,填 check(i)或check(i)==True。(3)程序遍历 100 到 999 的所有数,逐一判断是否符合条件,这是枚举算法,故选 B。

展开更多......

收起↑

资源预览