内容正文:
4.4运用循环结构描述问题求解过程2024—2025学年高中信息技术粤教版(2019)必修1
一、选择题
1.某算法的部分流程图如图所示,若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
2.有下列Python程序段:
s1="pytorch'';s2="python";s=""
i=0;j=0
while i<len(s1)and j<len(s2):
if s1[i]>s2[j]:
s=s+s1[i]
else:
j+=1
i+=1
执行以上程序段后,s中的值是( )
A."or" B."ch" C."on" D."to"
3.下列Python 程序用于计算0到100之间的偶数和,程序第2行下划线处应填入( )
1 s=0
2 for i in range(0, , ):
3 s =s+i
4 print(s)
A.100 1 B.100 2 C.101 1 D.101 2
4.有如下程序段:
n =Val(Text1. Text)
s=0
Do While n <> 0
x = n Mod 10
s=x+s
n=n\10
Loop
在文本框Text1中输入“20201119”,执行该程序段后,s的结果为( )
A.16 B.1119 C.2020 D.9
5.下列程序的输出结果是( )
listl=[3,4,8,6,9]
c=0;i=0
while i<len(listl):
if listl [i]%3==0:
c+=listl [i]
else:
c-=listl [i]
i+=1
print(c)
A.18 B.6 C.12 D.6
6.在 Python 语言中,在 while 语句后面的条件不满足时就退出循环,但是,如果我们想在循环的过程中直接退出循环体,使用的命令是( )
A.len B.end C.break D.del
7.以下程序代码段输出是( )
sum=0
for i in range(1,11):
sum + = i
print(sum)
A.45 B.55 C.66 D.75
8.如图所示的车牌,经过如下Python程序处理后,“cp.txt”文件得到的效果是( )
from PIL import Image
f=open(“cp.txt”,“w”) #以写入模式打卡“cp.txt”文件
im=Image.open(“cp.jpg”)
im=im.convert(“L”)
im=im.resize((90,21)) #将图片尺寸大小修改为90*21
pix=im.load() #读取所有像素点的颜色值
for j in range(im.size[1]):
ans=“”
for i in range(im.size[0]):
if pix[i,j]>=128:
r=“*”
else:
r=“”
ans+=r
ans=ans+“\r
” #“\r
”表示回车换行
f.write(ans)
f.close()
A.
B.
C.
D.
9.执行如下Python程序后,f2的值为( ).
A.3 B.4 C.5 D.6
10.有如下Python程序段:
import random
defselect(s,k):
for i in range(k):
j=i+1
if j< len(s):
s=s[:j]+s[j+1:]
else:
s=s[:len(s)-1]
connect(i,s,k)
def connect(i,s,k):
list1=''
if i< k-1:
listl=listl+s+'-'
else:
list1=listl+s
print(listl,end='')
s="hello"
k=random.randint(1,4)
select(s,k)
执行该程序段后,输出结果可能是( )
A.hllo- B.hllo-hll-hl C.hllo-hlo D.hllo-hlo-hl-1
11.以下Python程序的基本结构是( )
m=1
for I in range(1,5):
m=2*m
print(m)
A.选择结构 B.综合结构 C.顺序结构 D.循环结构
12.有如下Python程序段:
a=[2,1,3,4,5]
c=0
for i in range(2,5):
if a[i-2]+a[i-1]==a[i]:
c+=1
print(c)
该程序段运行后,显示的c的值是 ( )
A.1 B.2 C.3 D.4
13.有如下VB程序段:
Dim a(1 To 6) As Integer
Dim i As Integer, j As Integer, n As Integer
Randomize
For i = 1 To 6
a(i) = Int(Rnd * 50)
If a(i) < 25 And i Mod 2 = 0 Then
a(i) = 50 - a(i)
Else
a(i) = Int(Rnd * 10) * 2
End If
Next i
For i = 1 To 6 - 1
For j = 1 To 6 - i - 1
If a(j) > a(j + 2) Then
temp = a(j): a(j) = a(j + 2): a(j + 2) = temp
End If
Next j
Next i
执行上述程序段后,a数组的各元素可能是( )
A.4,2,8,27,16,35 B.2,4,8,16,27,35
C.2,4,8,16,25,35 D.4,2,8,25,16,35
14.有如下Python程序段:
x="技术选考"
y=""
for i in range(len(x)):
y=x[i]+y
程序段执行后,变量y的值为( )
A.技术选考 B."技术选考" C."考选术技" D.考选术技
15.某Python程序实现的功能是;运行程序输入一个四位整数,能够判断该四位整数是否存在数字重复的位。程序代码如下:
n = int(input(“请输入一个四位正整数:”))
f = [0] * 10
while n > 0:
y = n % 10
①
n=n // 10
if ② :
print(“没有重复的位。”)
else:
print(“有重复的位。”)
划线处的代码应填( )
A.① f[y] = 1 ② sum(f) < 4 #sum()将列表中所有元素求和
B.① f[y] += 1 ② sum(f) < 4
C.① f[y] = 1 ② sum(f) == 4
D.① f[y] += 1 ② sum(f) == 4
16.有如下Python程序段:
s1="abcdefgh"; s2="0213"; res=""
j=0; m=0
for i in range(len(s1)):
k=m+int(s2[j])
res+=s1[k]
j+=1
if j==4:
m=4
j=0
该程序段运行后,res的值为( )
A."acbdacbd" B."acbdegfh" C."acbdefgh" D."abcdefgh"
17.执行如下程序段后,输出的结果是( )
q=[6, 8, 9, 7, 4, 5, 2, 3]
pre=10
head, tail=0, len(q)
while head!=tail:
if pre>q[head]:
pre=q[head]
print (q [head], end=’ ’)
head+=1
A.6 8 9 B.6 4 2 C.6 5 3 D.6
18.某Python程序如下:
s="24SXqz"
e=""
for ch in s:
if ch>="0" and ch<="9":
c+=str(9-int(ch))
elif ch>="a" and ch<="z":
c+=chr((ord(ch) -ord("a")+3) %26+ord("a") )
else:
c=ch+c
print(c)
程序运行后,输出的结果是( )
A.XS24tc B.75SXtc C.XS75tc D.24SXtc
19.有如下Python程序段:
s = 0 ; i = 1
while :
s = s + i
i = i + 2
该程序段运行后,变量s的值等于9,则程序划线处的语句不可能的是( )
A.i < 5 B.i <= 5 C.i < 6 D.i <= 6
20.编写VB程序,计算斐波那契数列中第n项(n >= 3)的值,并在标签Label2中输出结果。(斐波那契数列是指这样的数列:1,1,2,3,5,8,13…。即:第1项和第2项的值均为1,从第3项开始,每一项的值是它前面两项之和),主要代码如下:
n = Val(Text1.Text)
f1 = 1: f2 = 1
For k = 3 To n
f = f1 + f2
①
②
Next k
Label2.Caption = "斐波那契数列第" + Str(n) + "项的值为" + Str(f)
代码中①②两处分别应为( )
A.①f2 = f1 ②f1 = f B.①f1 = f2 ②f2 = f
C.①f1 = f ②f2 = f1 D.①f2 = f ②f1 = f2
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.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。
2.A
【详解】本题考查的是Python循环语句。阅读程序可知,将s1中字符与s2中字符逐个比较,如果s1中字符
比s2中字符大,将s1中字符拼接在字符串s后面,否则下个循环s1中下一字符与s2中下一字符比较,直到s1或s2所有字符比较完。
"p"="p";
"y"="y";
"t"="t";
"o">"h",将"o"字符拼接在字符串s后面,s="o"
"r">"h",将"r"字符拼接在字符串s后面,s="or"
"c"<"h";
"h"<"o";
循环结束,故本题应选A。
3.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)。该程序用于计算0到100之间的偶数和,因此下划线处填101、2,故本题选D选项。
4.A
【详解】本题主要考查VB程序的执行。n=20201119,s=0,第一遍循环,x=20201119 mod 10=9,s=x+s=9,n=20201119\10=2020111;第二遍循环,x=2020111 mod 10=1,s=x+s=1+9=10,n=2020111\10=202011;第三遍循环,x=202011 mod 10=1,s=x+s=1+10=11,n=202011\10=20201;第四遍循环,x=20201 mod 10=1,s=x+s=1+11=12,n=20201\10=2020;第五遍循环,x= 2020 mod 10=0,s=x+s=0+12=12,n=2020\10=202;第六遍循环,x=202 mod 10=2,s=x+s=2+12=14,n=202\10=20;第七遍循环,x=20 mod 10=0,s=x+s=0+14=14,n=20\10=2;第八遍循环,x=2 mod 10=2,s=x+s=2+14=16,n=2\10=0,程序结束,故在文本框Text1中输入“20201119”,执行该程序段后,s的结果为16,故本题选A选项。
5.B
【详解】本题考查的是Python综合应用。由if语句可知,如果列表中的值能被3整除,则采用加法,否则采用减,故c=3-4-8+6+9=6。故选项B正确。
6.C
【详解】本题考查的知识点是Python循环语句。在Python中,可以使用break语句退出循环。continue语句用于跳过当前循环的剩余部分并进入下一次循环,故本题应选C。
7.B
【详解】本题主要考查Python程序循环结构。分析程序可知该程序实现1+2+3+...+10=55,故本题选B选项。
8.B
【详解】本题主要考查Python数据处理。分析程序可知,当像素点的颜色值pix[i,j]>=128时,填充“*”,反之无填充,图中灰色部分的像素点的颜色值均大于128,因此得到的效果图是 ,故本题选B选项。
9.C
【详解】本题主要考查Python循环结构。分析程序可知,该程序实现斐波那契数列各项的计算,即从第3项开始后一项是前2项的和,该数列为1、1、2、3、5、8等,变量i的范围0~2,即循环3次,循环后f2的值为5,故本题选C选项。
10.C
【详解】本题考查程序分析。程序随机生成1到4的随机数赋值给变量k,调用select函数删除特定的字母,调用connect函数输出。在connect函数中,累加给变量list1,输出list1。假设随机生成k=1时,执行函数select,结果为hllo。假设k=2时,同理结果为hllo-hlo。假设k=3时,结果为hllo-hlo-hl。假设k=4时,结果为hllo-hlo-hl-h。故选择C。
11.D
【详解】本题主要考查Python循环结构。分析程序可知,以下Python程序的基本结构是for循环结构,故本题选D选项。
12.B
【详解】本题主要考查Python程序的执行。分析程序可知,变量c用于统计列表a中前两项之和等于第三项的个数,a[0]+a[1]=a[2],a[1]+a[2]=a[3],故c的值为2,故本题选B选项。
13.A
【详解】本题主要考查VB程序设计的相关知识。VB中Rnd函数主要用于生成[0,1)之间的随机数,通过程序中a(i) = Int(Rnd * 10) * 2,可以判断数组中奇数位应该都为偶数,故B、C选项错误;通过随机数生成及后面的选择结构判断,数组元素不可能出现25,故D选项错误;A选项满足上述各条件,故A选项正确。
14.C
【详解】本题主要考查Python程序的执行。分析程序可知,该程序实现将字符串x中的字符,逆着保存到变量y中,x="技术选考",则程序段执行后,变量y的值为"考选术技",故本题选C选项。
15.C
【详解】本题主要考查Python程序的综合应用。用f[y]标记四位整数上y,该数不论出现几次,都赋值为1,即第一空填 f[y] = 1,如果sum(f)==4,说明没有重复的位,反之有重复的位,即第二空填sum(f) == 4,故本题选C选项。
16.B
【详解】本题主要考查Python程序的执行。分析程序,当j==4时,赋值m=4,j=0, 而k=m+int(s2[j]),res+=s1[k],即对s1字符串每4位一处理,而 s2="0213",即每4位中按照索引0、2、1、3的顺序从s1中截取字符,故该程序段运行后,res的值为"acbdegfh",故本题选B选项。
17.B
【详解】本题考查的是Python循环语句。该程序功能是,依次从列表q中从左到右取值跟pre中数值比较,如果比pre小,更新pre,并输出该值。10>6,更新pre=6,输出6;6>4,更新pre=4,输出4;4>2,更新pre=2,输出2。故输出的结果为:6 4 2,选项B正确。
18.C
【详解】本题考查程序分析。程序功能是遍历字符串每个字符,如果是数字字符,执行9减去该字符,转换成字符向后累计拼接到变量c。如果是小写字母字符,则按照26个字母周期向后移动3位,向后累计拼接到变量c。如果是大写字母字符,则向前累计拼接到变量c。故选项C为正确答案。
19.A
【详解】本题考查的是循环语句。由循环体可知s=1+3+5+……,要使变量s=9,则s=1+3+5,即i的值不超过6且要取到5,故循环条件为:i<=5或i<6或i <= 6,选项A正确。
20.B
【详解】本题主要考查VB程序的执行。f=f1+f2,接下来应该将f2的值赋给f1,将f的值赋给f2,故代码中①②两处分别应为①f1 = f2 ②f2 = f,故本题选B选项。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$