内容正文:
4.4运用循环结构描述问题求解过程2024—2025学年高中信息技术粤教版(2019)必修1
一、选择题
1.在Python中,如下的代码输出结果是( )
x=0
for i in range(5,10,2):
x=x+i
print(x)
A.31 B.21 C.20 D.15
2.有如下 Python程序段:
import random
s="abcd"*2
k=random. randint(1,3)
for i in range(k):
s=s[1:]+s[0]
s=s[3:3+k]+s[:3]+s[3+k:]
该程序段执行后,变量s的值不可能的是( )
A.cdababcd B.cdadabbc C.abcdbcda D.bccdadab
3.在Python语言中,运行以下代码后,变量i的值是( )
i=0
while i<6:
print
i=i+1
A.0 B.6 C.1 D.7
4.有如下 Python 程序段:
import random
n=random.randint(50,100)
a=[]
for i in range(2,n+1):
while(n % i == 0):
a.append(i)
n = n // i
print(a)
上述程序执行后,输出结果不可能的是( )
A.[2, 2, 2, 2, 3] B.[2, 2, 5, 5] C.[2, 5, 5] D.[53]
5.在Python中运行下列程序,输出结果为( )
for i in range (1,6):
print("*", end="")
A.****** B.***** C.******* D.****
6.运行如下代码,输出结果是( )
i = 0
while i<10:
print(i,end='')
i = i+1
A.0123456789 B.123456789 C.12345678910 D.012345678
7.下列 Python 程序段的功能为查找列表a中的最大值。
#为列表a赋值,元素均为整型数据,代码略
(1)
for i in range(1,5):
if a[i]>max:
(2)
print(max)
划线处(1)、(2)的代码分别为( )
A.max=0 a[i]=max B.max=0 max=a[i]
C.max=a[0] max=a[i] D.max=a[0] a[i]=max
8.斐波那契数列是指这样一个数列:1, 1, 2, 3, 5, 8, 13, 21, 34……这个数列从第3项开始,每一项的值等于前两项之和。下列Python程序段的功能是求斐波那契数列的第n项的值。
n=int(input())
t1=t2=1
for i in range(3,n+1):
print("斐波那契数列第"+str(n)+"项的值为:"+str(t))
方框中的代码由以下三部分组成:①t1=t2 ②t2=t ③t=t1+t2
下列选项中代码顺序正确的是( )
A.①②③ B.①③② C.③②① D.③①②
9.有如下 python 程序段:
列表 a 的初始值略…
for i in range(6):
if (i+1)%2!=0:
if a[i]%10 >5:
a[i]=a[i]//10
else:
a[i]=a[i]%10
else:
a[i]=a[i-1]+1
程序运行后 a[0]到 a[6]的值分别是 2,3,4,5,0,1,则 a[0]到 a[6]各元素的初始值可能是( )
A.26,1,4,2,8,3 B.12,1,14,2,11,3 C.15,1,2,3,4,5 D.29,1,40,2,3,30
10.某算法的部分流程图如图所示,若n的值为8,key的值为40,数组元素a[0]至a[n-1]依次存放10,20,30,40,50,60,70,80,执行这部分流程后,输出c的值为( )
A.-2 B.-1 C.0 D.1
11.有如下Python程序段:
import random
a=[]
for i in range(6):
a.append(random.randint(1,10))
for i in range(5):
if i%2==0 and a[i] < a[i+1]:
a[i],a[i+1]=a[i+1],a[i]
else:
a[i]-=1
print(a)
运行该程序后,输出结果不可能的是( )
A.[7, 3, 3, 4, 9, 4] B.[8, 8, 10, 5, 7, 8] C.[9, 4, 9, 4, 8, 7] D.[7, 2, 9, 7, 4, 5]
12.阅读并理解下面的Python程序代码,程序运行结果是( )
(1) for w in['荷塘月色','背影','匆匆']:
(2) print(w,'是朱自清的代表作!')
(3) print('这些都是我喜欢的作品!')
A. B.
C. D.
13.在text1文本框内输入字符串,单击去重按钮,将字符串后面相同的字符删除,并在text2中输出经过删除的字符串。程序界面如图所示。请在下面划线处填入合适的代码。
Private Sub Command1_Click()
Dim s As String, s1 As String, c As String
s = Text1.Text
For i = 1 To Len(s)
c = Mid(s, i, 1)
s1 = (1)
For j = (2)
If c <> Mid(s, j, 1) Then
s1 = s1 + Mid(s, j, 1)
End If
Next j
(3)
Next i
Text2.Text = s
End Sub
A.(1)s1 = Mid(s, 1, 1) (2)i + 1 To Len(s) (3)s1 = s
B.(1)s1 = Mid(s, 1, 1) (2)i To Len(s) (3)s1 = s
C.(1)s1 = Mid(s, 1, i) (2)i To Len(s) (3)s = s1
D.(1)s1 = Mid(s, 1, i) (2)i + 1 To Len(s) (3)s = s1
14.下列程序段执行后,变量s的值是( )
s=0
For i=1 To 10
s=s+i
Next i
A.55 B.50 C.60 D.45
15.运行以下Python代码,实现统计列表a中小于60的数的个数,程序划线处应填入( )
a=[12,56,79,90,75,33,29,100,66,1]
n=0
m=60
for i in range(10):
if :
n+=1
print("个数",n)
A.a[i+1]<n B.a[i]<n C.a[i+1]<m D.a[i]<m
16.有如下Python程序段:
a=[0]*10
for i in range(16):
j=0;a[j]=a[j]+1
while a[j]==3:
a[j]=0
j=j+1
a[j]=a[j]+1
执行该程序后,数组a中各元素之和为( )
A.2 B.3 C.4 D.5
17.有如下 Python 程序段:
a=input('请输入一串英文字符串:')
s=''
sum=0
for ch in a:
s=s+str(ord(ch)-ord(‘A’)-1)
for ch in s:
sum+=int(ch)
print(sum)
若输入字符串为‘ZBIX’(不包含前后引号),则输出结果为( )
A.8 B.13 C.17 D.4
18.有如下程序段,若输入的字符串是“AB12CCC222GGBD”程序运行结果为( )
s=input("请输入字符串")
count=0
for i in s:
if i>="0" and i<="9":
count+=1
print(count)
A.9 B.5 C.6 D.7
19.有Python程序段如下:
s="I2024!";s1=""
for i in range(len(s)):
c=s[i]
if "A"<=c<="Z":
c=chr(ord(c)-ord("A")+ord("a"))
elif "a"<=c<"2":
c=chr(ord(c)-ord("a")+ord("A"))
sl=c+sl
print(sl)
程序运行后,输出的值是( )
A.!4202Ti B.It2024! C.iT2024! D.4202Ti
20.有如下Python程序段:
def f(x):
return x[::-1] #对x逆序输出
s = 'CPU'
while len(s) > 0:
print(f(s),end=" ")
s = s[:len(s) - 1]
执行该程序段后,输出结果为()
A.UPC PC C B.CPU PU U C.UPC D.U
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.B
【详解】本题主要考查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依次取5、7、9,循环结束后x=x+i=0+5+7+9=21,故本题选B选项。
2.A
【详解】本题考查的是随机函数及循环语句。初始s="abcdabcd",k取值为1或2或3。
若k为1,循环执行一次后,s="bcdabcda",s=s[3:3+k]+s[:3]+s[3+k:]="a"+"bcd"+"bcda"="abcdbcda",对应选项C;
若k为2,循环执行一次后,s="cdabcdab",s=s[3:3+k]+s[:3]+s[3+k:]="bc"+"cda"+"dab"="bccdadab",对应选项D;
若k为3,循环执行一次后,s="dabcdabc",s=s[3:3+k]+s[:3]+s[3+k:]="cda"+"dab"+"bc"="cdadabbc",对应选项B。
故选A。
3.B
【详解】本题主要考查Python程序的执行。循环条件是i<6,当i=6时,循环结束,故本题选B选项。
4.A
【详解】本题主要考查Python程序执行与调试。分析程序可知,变量n随机生成[50,100]之间的整数,该程序通过嵌套循环求n的因子,将n的因子保存在列表a中,选项A中2*2*2*2*3=24,不在[50,100]范围内,故不可能,选A选项。
5.B
【详解】本题主要考查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)。故输出结果为*****,故本题选B选项。
6.A
【详解】本题主要考查Python程序的执行。循环结构中,先输出i再执行i递增1,i的初值为0,循环条件是i<10,故输出结果为0123456789,故本题选A选项。
7.C
【详解】本题主要考查Python程序调试。分析程序可知,初始值将第一个元素a[0]赋给变量max,if判断条件中,如果a[i]>max,则更新max=a[i],故划线处(1)、(2)的代码分别为max=a[0]、 max=a[i],故本题选C选项。
8.D
【详解】本题考查Python程序。这段程序是用来计算斐波那契数列的第 n 项的值的。程序中首先定义了 n,然后使用 t1 和 t2 来表示斐波那契数列的前两项,初始值都为 1。接下来通过一个循环从第 3 项开始计算,循环中,需要根据斐波那契数列的规律,正确的代码顺序应该是:③(更新 t 为 t1 + t2) → ①(将 t2 的值赋给 t1) → ②(将 t 的值赋给 t2)。这样才能保持计算的正确性。故答案为D选项。
9.A
【详解】本题主要考查Python程序的综合应用。for循环第一次执行时i为0, 外if条件为真执行内if。假设a [i]为26,内if条件为真,a[i]= a[i]//10= 2符合题意;假设a [i]为12,内if条件为假,a[i]= a[i]%10= 2符合题意;假设a[i]为15,内if条件为假,a[i]= a[i]%10= 5不符合题意,排除选项C。假设a [i]为29,内if条件为真,a[i]=a[i]//10 = 2符合题意;for循环第二次执行时i为1,外if条件为假执行else部分。a[1]= a[i-1]+1=a[0]+1=3,剩下的ABD选项都符合题意。for循环第三次执行时i为2,外if条件为真执行内if。假设a [i]为4,内if条件为假,a[i]= a[i]%10= 4符合题意;假设a [i]为14,内if条件为假,a[i] = a[i]%10= 4符合题意;假设a [i]为40,内if条件为假,a[i]= a[i]%10= 0,不符合题意,排除选项D。for循环第四次执行时i为3,外if条件为假执行else部分。a[3]=a[i-1]+1=a[2]+1=5。剩下的AB选项都符合题意。for循环第五次执行时i为4,外if条件为真执行内if。假设a [i]为8,内if条件为真,a[i]= a[i]//10 = 0符合题意;假设a [i]为11, 内if条件为假,a[i] =a[i]%10= 1不符合题意,排除选项B,故本题选A选项。
10.D
【详解】本题考查程序分析。程序运行过程:
i=0,j=7,i<=j, m=3,不满足a[m]<key,则i=0, j=2, c=-1
i=0,j=2,i<=j, m=1,满足a[m]<key,则i=2, j=2, c=0
i=2,j=2,i<=j,m=2, 满足a[m]<key,则i=3, j=2, c=1
i=3, j=2,i<=j,不满足循环条件,退出循环,c=1,故选择D。
11.A
【详解】本题考查的是循环语句。阅读程序可知,列表索引为偶数同时比后一个元素小时,交换两数;其余情况列表元素值减1。如果原来列表索引为偶数的值比后一个大,这两个数都是执行else,执行后索引为偶数的值还是大于后一个;如果原来列表索引为偶数的值等于后一个,这两个数都是执行else,执行后索引为偶数的值还是等于后一个(特例:当原来a[4]=a[5],由于第二个for变量取值到4,a[5]不减1,这时a[5]-a[4]=1);如果原来列表索引为偶数的值比后一个小,索引为偶数执行if语句(使得索引为偶数的值大于后一个),后一个执行else,执行后索引为偶数的值大于后一个。总上所述,程序执行结果肯定:a[0]>=a[1],a[2]>=a[3]。选项A中a[2]=3,a[3]=4不满足a[2]>=a[3]。故本题应选A。
12.D
【详解】本题考查的是Python的循环语句。for循环依次把列表中的每个元素逐个迭代出来。冒号“:”代表下一行是循环的第一行,但是循环体在书写时需要缩进。在for循环中,从for语句末尾的冒号开始至其下面没有缩进的代码之间都是其包含的需要重复执行的部分。故本题应选D。
13.D
【详解】本题主要考查VB程序的执行。c是从i处截取的字符与后面的字符进行逐一比较,若不相等,将其值加到s1中,故s1的初值是第一个字符,即(1)处填s1 = Mid(s, 1, i),j是从i+1处取字符,故(2)处填i + 1 To Len(s),(3)处将去重后的字符串赋给s,即s=s1,故本题选D选项。
14.A
【详解】本题主要考查VB程序的执行。该程序通过for循环求1~10的累加,故s=0+1+2+3+4+5+6+7+8+9+10=55,故本题选A选项。
15.D
【详解】本题主要考查Python程序的调试。该程序实现统计列表a中小于60的数的个数,m=60,i是列表a的索引,故此处if判断条件是a[i]<m,故本题选D选项。
16.C
【详解】本题主要考查Python程序的执行。变量i的范围是0~15,因此外循环一共执行16次,依次带入执行,循环结束后列表a=[1, 2, 1, 0, 0, 0, 0, 0, 0, 0],因此数组a中各元素之和为1+2+1=4,故本题选C选项。
17.C
【详解】本题主要考查Python程序的执行。由代码“s=s+str(ord(ch)-ord(‘A’)-1)”以及输入字符串为‘ZBIX’得到字符串s=’240722’,第二个for循环实现sum变量将字符串s中的各个数字累加,即sum=0+2+4+0+7+2+2=17,故本题选C选项。
18.B
【详解】本题考查的 是Python循环结构。由 if i>="0" and i<="9"可知这是判断字符中为数字的个数。“AB12CCC222GGBD”中数字个数有5个,故本题应选B。
19.A
【详解】本题考查字符串处理及选择语句应用知识。由代码可知,将大写字母转化为相应的小写字母,而将小写字母转换为相应的大写字母,然后按照逆序进行连接。故可以排除C、D。由于最后的字符“!”未经if语句处理,但该字符也会被逆序连接到sl中。故选A。
20.A
【详解】本题考查的是自定义函数及循环语句。阅读程序可知,逆序输出字符串s,然后字符串s去除首字符,再次逆序输出,直到字符串s为空。 s = 'CPU',故输出:UPC PC C。选项A正确。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$