内容正文:
2.3 周而复始的循环2024-2025学年高中信息技术教科版(2019)必修1
一、选择题
1.有如下Python程序段:
a=[99,85,74,68,53,42,34,27,20,13]
key=int(input("请输入一个整数:"));i,j,k,c=0,9,0,"N"
flag=False
while i<=j and flag==False:
m=(i+j+1)//2;k=k+1
if key==a[m]:
c="Y";flag=True
if key>a[m]:
j=m-1
else:
i=m+1
print(c,k)
执行该程序段后,下列说法正确的是( )
A.该程序段既能用于升序序列的查找,也能用于降序序列的查找
B.若输出k的值为2,则c的值一定为Y
C.若输入key的值为74,程序执行后变量i和j的值分别为0和4
D.输入两位任意正整数,k的值介于1和3之间
2.有如下Python程序段:
s=input("请输入待处理字符串:")
st=""
for i in range(len(s)):
ch=s[i]
if"0"<=ch<="9":
ch=str((int(ch)+3)%10)
st=st+ch
else:
if"A"<=ch<="Z":
ch=ch.lower()
st=st+ch
print(st)
执行程序后,输入字符串"Happy2024!",输出的结果( )
A.7535happy! B.4202Happy! C.!7535yppah D.happy5357!
3.有如下Python程序段:
import pandas as pd
s=pd.Series(range(70,100,10))
for i in s:
print(i)
该程序运行后输出的结果为( )
A. B. C. D.
4.字符串s由数字字符组成,且首位不为"0"。现需要在s中某一位置插入1位数字字符,得到新s,使新s的值最大。例如s串为"975463",插入字符"8"后,得到最大值"9875463"。实现该功能的程序段如下,方框中应填入的正确代码为( )
#输入字符串s,长度为n;输入字符串ch,长度为1,代码略。
i=0
while i<n:
st=s[0:i]+ch+s[i:n]
A.
if ch>=s[i]:
i+=1
else:
break
B.
if ch>=s[i]:
break
else:
i+=1
C.
if ch<s[i]:
break
else:
i+=1
D.
if ch>s[i]:
break
else:
i+=1
A.A B.B C.C D.D
5.打印显示如图所示的直角三角形。程序代码如下所示,则空缺部分应填入( )
For i in range(__________):
print('@'*i)
A.0,5,1 B.6,0,-1 C.1,6,1 D.5,0,-1
6.同虚框内程序功能相同的程序是( )
s=0
i=1
while i<=1000:
s=s+i
i=i+1
print(s)
A.
s=0
i=1
for i in range(1000):
s=s+i
i=i+1
print(s)
B.
s=1
i=1
for i in range(1001):
s=s+i
i=i+1
print(s)
C.
s=0
i=1000
while i>=1:
s=s+i
i=i-1
print(s)
D.
s=0
i=1000
while i>1:
s=s+i
i=i-1
print(s)
A.A B.B C.C D.D
7.下列代码的输出结果是( )
for i in range(1,6):
if i%2==1:
continue
else:
print(i,end=",")
A.2,4 B.1,2,34,5, C.2,4, D.1,3,5,
8.在Python语言中,下列关于while循环语句的叙述错误的是( )
A.可以将while循环的条件表达式写成:while False:
B.可以将while循环的条件表达式写成:while 1:
C.如果while的条件表达式写成;while True,则while循环体在不加干预的情况下会一直执行下去
D.while循环和for循环在任何情况下都是可以互换实现的
9.有如下Python程序段:
s=0
for i in range(1,10,1):
s=s+i
print(s)
执行该程序段后,变量s的值是( )
A.45 B.55 C.11 D.9
10.如图所示,是Python语言编写的输出金字塔的程序,它主要采用的程序结构是( )
A.顺序 B.循环 C.树型 D.选择
11.下列程序段不可以实现创建整数n以内的完全平方数列表功能的是( )
A. B.
C. D.
12.下列程序的输出结果是( )
y=1
for x in range(1,5):
y=y*x
print(y)
A.120 B.24 C.15 D.10
13.在micro:bit 主板上接上温湿度传感器,利用BXY编写代码,查看串口监视器,部分界面如图所示。其中部分代码如下:
from microbit import sleep
import dht11
while True:
temp,hum=dht11.read(1)
sleep(1000)
其中加框处代码为( )
A. B.
C. D.
14.有如下 Python 程序段:
import random
a = [0]*6
i = 0
x = int(input())
while i <= 5:
c = random.randint(1, 10)
if x % 2 == c % 2:
a[i] = c
i += 1
x = x//2
执行该程序段后,若要在列表 a 中产生 4 个偶数、2 个奇数,输入的 x 的值不可能的是( )
A.3 B.4 C.5 D.6
15.关于Python的for循环,以下描述正确的是( )
A.在循环体内可以使用循环变量参与运算
B.in后面可以是列表、字典
C.可以没有循环体
D.可以使用break语句结束循环
16.有如下程序,输入1101110后的运行结果为( )
s1=input(“请输入一串01组合”)
s2=len(s1)
s=0
for i in range(s2):
a=int(s1[i])
s=s*2+a
print(s)
A.110 B.111 C.220 D.110111
17.有如下Python程序段:
n=int(input(“请输入:”))
s = x = 0
while n != 0:
x = n % 10
s = x + s
n = n //10
print(s)
执行该程序段后,依据程序提示,输入“20220412”,则程序输出结果是( )
A.13 B.1119 C.2022 D.9
18.以下是实现正整数序列arr升序排列的程序代码段,则画线部分代码正确的是( )
arr=[7,4,2,13,6,5,3,6,17,1]
for i in range(1,len(arr)):
key=arr[i]
j=i
while :
arr[j]=arr[j-1]
j-=1
①j>0 and key<arr[j-1] ②j>=0 and key<arr[j-1] ③arr[j]=key ④arr[j-1]=key
A.①③ B.①④ C.②③ D.②④
19.有如下Python程序段:
import random
s="12345678"
g=""
for i in range(3):
n=len(s)
pos=random. randint(1,n-1)
g+=s[pos]
s=s[0:pos]+s[pos+1:n]
print(g)
在该程序段执行时,变量g的值可能为( )
A."542" B."138" C."336" D."15"
20.运行以下Python程序段,输出结果是( )
s=0
for i in range(1,6,2):
s=s+iprint(s)
A.2 B.3 C.4 D.9
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.D
【详解】本题考查二分查找。A选项错误,给定的程序段是用于升序序列的二分查找算法,如果要用于降序序列的查找,需要对程序进行修改。B选项错误,如果k的值为2,则意味着循环体执行两次,不一定能找到目标值,因此c的值可能是N。C选项错误,当输入key的值为74时,程序执行后变量i和j的值分别为3和4。D选项正确,由于二分查找算法的复杂度为O(log n),所以k的值介于1和3之间是合理的。故正确答案为选项D。
2.D
【详解】本题考查Python程序分析能力。if语句判断循环遍历的字符串,如果是数字0到9,则数字加3并取余数。如果是大写字母,则转换成小写字母。其它字符不变。以上处理结果逆序存放在st中,最后输出st。故选项D为正确答案。
3.A
【详解】本题主要考查Python程序的执行。range(start, stop, [step]),start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5;step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)。s=pd.Series(range(70,100,10)),因此生成的数据列表是[70,80,90],故本题选A选项。
4.D
【详解】本题考查的是Python综合应用。要使新s的值最大,则要依次从高位往低位比较,如果找到一位比要插入的字符小,跳出循环,则插入在该位的前面。不能找相等,如果相等的话,后续有字符比要插入的字符大,则插入后组成的字符不会最大,例s串为"975463",插入字符"4",如果找到相等的话,插入则新字符为:"9754463",不是最大,选项A逻辑不对,应改为:ch<=s[i];选项B不能找相等,选项C逻辑不对。故本题应选D。
5.C
【详解】本题主要考查Python程序的执行与调试。range(start, stop, [step]),start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5;step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)。由图可知,变量i的范围是1~5,每次递增1,故填1,6,1,故本题选C选项。
6.C
【详解】本题考查Python程序。原程序通过while循环计算从1到1000的整数和。具体执行过程是变量i从1开始递增到1000,并将每个i累加到变量s中。分析选项:A选项错误,for循环的范围是0到999,且有额外的i递增操作,代码错误。B选项错误,初始s值为1,for循环范围是0到1000,代码错误。C选项正确,while循环从1000开始递减到1,将每个i累加到变量s中,功能与原程序相同。D选项错误,while循环从1000开始递减到2,少加了1,代码错误。故答案为:C。
7.C
【详解】本题考查的是Python循环控制。range(1,6)生成序列1,2,3,4,5。由if语句可知如果i是奇数跳过,偶数则输出。 print(i,end=",")输出i的值,并以“,”结束。故本题应选C。
8.D
【详解】本题主要考查Python循环语句。可以将while循环的条件表达式写成:while False:;可以将while循环的条件表达式写成:while 1:;如果while的条件表达式写成;while True,则while循环体在不加干预的情况下会一直执行下去;while循环和for循环并非在任何情况下都是可以互换实现的,无法预先判断循环执行的次数时,就只能使用while循环,故本题选D选项。
9.A
【详解】本题主要考查Python程序的执行。分析程序,range(1,10,1)会产生1、2、……9这些数字,s=s+i的作用是把这些数字累加起来,1+2+3+……+9=45,故本题选A选项。
10.B
【详解】本题主要考查程序基本结构。分析程序,可知它主要采用的程序结构是循环结构,故本题选B选项。
11.C
【详解】本题主要考查Python程序的调试。分析程序,显然选项C中,只有当i*i=n时,才将i*i加到列表中,因此不可以实现创建整数n以内的完全平方数列表,故本题选C选项。
12.B
【详解】本题主要考查Python循环结构的应用。变量x依次取1~4,循环体是y=y*x=1*1*2*3*4=24,故输出结果是24,故本题选B选项。
13.B
【详解】本题主要考查Python综合应用。由图可知,先显示温度再显示湿度,排除选项C;温度的格式:数字后带符号“C”,排除选项D;湿度显示完后需要换行,排除选项A,故本题选B选项。
14.B
【详解】本题考查的是Python循环、选择语句。由if语句可知列表a中数值与x奇偶性相同。结合x = x//2可知,当x=4时,x的奇偶性变化:偶、偶、奇、偶、偶、偶。因为列表a中数值与x奇偶性相同,故不满足列表a中产生 4 个偶数、2 个奇数。故本题应选B。
15.ABCD
【详解】本题考查Python循环结构。在for循环中,循环变量会依次取列表、字典等可迭代对象中的元素,然后可以在循环体内使用这个循环变量进行运算或其他操作,A选项正确。for循环后面的in可以跟随列表、字典、字符串等可迭代对象,用于遍历这些对象的元素,B选项正确。在Python中可以创建一个空的for循环,没有循环体。这种情况下,循环变量将依次迭代可迭代对象中的元素,但循环体内不执行任何操作,C选项正确。在for循环中,可以使用break语句来提前结束循环,不必等到所有元素都被遍历完,D选项正确。故答案为ABCD选项。
16.A
【详解】本题主要考查Python程序的执行。分析程序可知,该程序实现将二进制数1101110通过“按权展开、逐项相加”的方法转换为十进制数110,故本题选A选项。
17.A
【详解】本题主要考查Python程序循环结构。分析程序可知,该程序实现将输入的数n各个位上的数进行累加求和,输入“20220412”,则程序输出结果是2+0+2+2+0+4+1+2=13,故本题选A选项。
18.A
【详解】本题主要考查Python程序的调试。分析程序可知,while程序实现将key,即索引i处的数字与之前的数进行比较,依次后移将key放到合适的位置,以使i及之前的整数呈升序排序,故第一空填j>0 and key<arr[j-1]。while循环结束后将key放到索引j处,故第二空填arr[j]=key,故本题选A选项。
19.A
【详解】本题考查Python程序执行与调试。s="12345678", n=len(s)=8, pos=random. randint(1,n-1)=random. randint(1,7),即pos是随机生成1~7之间的整数。然后执行g+=s[pos],再执行 s=s[0:pos]+s[pos+1:n],即s中去掉下标为pos的元素,一共循环3次,因此g中元素有3个,且没有重复,排除C、D选项。字符串索引从0开始,根据pos值可知取不到第一个元素"1",排除B选项,因此变量g的值可能为"542"。故选A。
20.D
【详解】本题主要考查Python程序的执行。range(start, stop, [step]),start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5;step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)。变量i的取值依次是1、3、5,故s=s+i=0+1+3+5=9,故本题选D选项。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$