第六节 Python循环结构的程序实现 同步练(含答案) 2025-2026学年高中信息技术 必修1 数据与计算

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

第六节 Python循环结构的程序实现 同步练(含答案) 2025-2026学年高中信息技术 必修1 数据与计算

资源简介

第六节 Python循环结构的程序实现
1. 运行如下程序,s的值为( D )
s=0
for i in range(5):
  if i==3:
    break
  s=s+i
print(s)
A. 15 B. 10
C. 7 D. 3
【解析】 本题主要考查Python程序的执行。i依次取0、1、2、3、4,当i=3时,退出循环,此时s=s+i=0+1+2=3,故运行完成后s的值为3。
2. 运行如下程序,输出的结果是( A )
sum=0
for i in range(2,11,4):
  sum=sum+i
print(sum,i)
A. 18 10 B. 17 11
C. 54 10 D. 65 10
【解析】 本题主要考查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)。sum=0,变量i依次取2、6、10,故sum=0+2+6+10=18,故输出的结果是18,10。
3. 某Python程序如下:
a=[18,2,-1,-7,16,-2,12,8]
k1,k2=1,1
for i in range(len(a)):
  if a[i]>a[k1]:
    k2=k1;k1=i
  elif a[i]>a[k2]:
    k2=i
程序运行后,变量k1,k2的值分别为( D )
A. 2,5 B. 4,0
C. 5,2 D. 0,4
【解析】 本题考查for语句及程序代码的分析理解能力。分析代码,可知k1是最大数的下标,k2是第二大数的下标,D正确。
4. 某Python程序如下:
s=0
n=100
while s<300:
  s+=n
  n-=10
程序运行后,n和s的值分别是( A )
A. 60,340 B. 70,400
C. 60,400 D. 70,340
【解析】 第一次循环,s=0,满足s<300这一条件,执行s+=n和n-=10,此时s和n的值分别为100、90;第二次循环,s=100,满足s<300这一条件,执行
s+=n和n-=10,此时s和n的值分别为190、80;第三次循环,s=190,满足
s<300这一条件,执行s+=n和n-=10,此时s和n的值分别为270、70;第四次循环,s=270,满足s<300这一条件,执行s+=n和n-=10,此时s和n的值分别为340、60;最后s=340不满足s<300这一条件,循环不执行,此时s和n的值分别为340、60。
5. 若k为整型,下列while循环执行的次数为( A )
k=1000
while k > 1:
  print(k)
  k=k//2
A. 9 B. 10
C. 11 D. 100
【解析】 本题主要考查Python程序的执行。循环条件是k>1,循环体k=k//2,因此1000//2=500,500//2=250,250//2=125,125//2=62,62//2=31,31//2=15,15//2=7,7//2=3,3//2=1,循环结束,一共循环了9次。
6. 阅读程序代码,若依次输入"p""y""t""h""o""n"" ",则输出的结果是( C )
s=""
x=input("请输入一个字符:")
while x!="":
  s=x+s
  x=input("请输入一个字符:")
print(s)
A. python B. p+y+t+h+o+n
C. nohtyp D. n+o+h+t+y+p
【解析】 本题主要考查Python程序的执行。分析程序可知,该程序将输入的字符逆向输出,因此若依次输入“p”“y”“t”“h”“o”“n”,则输出结果是nohtyp。
7. 运行如下程序,输出的结果是( A )
i=0
while i<10:
  print(i,end= )
  i=i+1
A. 0123456789 B. 123456789
C. 12345678910 D. 012345678
【解析】 本题主要考查Python程序的执行。循环结构中,先输出i,再执行i递增1。i的初始值为0,循环条件是i<10,故输出结果为0123456789。
8. 某Python程序如下:
s = "1010/1100/1111"
ans,t = 0,0
for i in s:
  if "0" <= i <= "1":
    t = t * 2 + int(i)
  else:
    ans += t
    t = 0
print(ans)
程序运行后,输出的结果是( C )
A. 12 B. 15
C. 22 D. 37
【解析】 本题考查循环语句的知识。由程序可知,将二进制数转换为十进制数,但是最后一组数“1111”由于后面没有其他符号,不能进入else分支,因此不能累加。故答案是10+12=22。
9. 输入数字1234,以下程序的输出结果是( C )
x=int(input())
s=0
while x !=0:
  t=x%10
  s+=t
  x//=10
print(s)
A. 1234 B. 123
C. 10 D. 12
【解析】 本题主要考查Python程序的执行。分析程序可知,该程序实现将输入的整数x的各个数位上的数字进行求和,x=1234,则s=1+2+3+4=10。
10. 下列Python程序可以实现统计某种递增序列的功能:
a=[3, 7, 2, 5, 8, 9, 4, 6, 1]
m, c=1, 1
for i in range(1, len(a)):
  if a[i]>=a[i-1]:
    c+=1
    m=max(m, c)
  else:
    c=1
程序运行后,变量c和m的值分别是( B )
A. 1和1 B. 1和4
C. 2和4 D. 3和4
【解析】 该程序的作用是求最长连续递增子序列的长度。其中c用来存储当前连续递增子序列的长度,m用来存储最长连续递增子序列的长度。观察列表a可以知道最长连续递增子序列为2,5,8,9,故m的值为4;变量i最后取8,a[8]=1,a[7]=6,所以a[i]>=a[i-1]不成立,执行else语句,所以最后c的值为1。
11. 某Python程序如下:
s=0
x="0123456789"
i=0
while i<=len(x) -2:
  t=int(x[i:i+2])
  if t%3==0:
    s+=t
  i+=1
程序运行后,变量i和s的值分别为( B )
A. 8和135 B. 9和135
C. 8和144 D. 9和144
【解析】 程序运行过程如表所示,程序运行结束后,i=9,t=89,s=135。
i 0 1 2 3 4 5 6 7 8 9
t 1 12 23 34 45 56 67 78 89 退出循环
s 0 12 12 12 57 57 57 135 135
12. 小明用Python编写了一个找最大值的程序,程序功能如下:用户输入数字串,数据间用逗号分隔,最后以逗号结尾,程序执行后输出最大的数值。横线上应填入的代码为( B )
s=input("请输入数字串:")
i=j=max=0
c=t=""
while j  c=s[j]
  if c==",":
    t=s[i:j]
    if int(t)>max:
      max=int(t)
     ① 
   ② 
print(max)
A. ①i=i+1 ②j=j+1 B. ①i=j+1 ②j=j+1
C. ①j=j+1 ②i=i+1 D. ①j=i+1 ②i=i+1
【解析】 本题主要考查Python程序的调试。分析程序可知,若满足int(t)>max,则说明产生了最大值,则需要更新i的值为j+1,继续取下一个数字,i为该数字的起点;同时j递增1,继续下一轮的循环。
13. 运行如下程序,输出的结果是( A )
for s in "HelloWorld":
  if s=="W":
    break
  print(s, end="")
A. Hello B. World
C. HelloWorld D. Helloorld
【解析】 本题主要考查Python程序的执行。分析程序可知,当s等于字符W时,循环结束,因此输出的结果是Hello。
14. 运行如下程序,输出的结果是( A )
x=10
while x>=0:
  x-=1
  if x%2==0:
    print(x, end="")
A. 86420 B. 97531
C. 1097531 D. 1086420
【解析】 本题主要考查Python程序的执行。分析程序可知,该程序实现输出0和9之间的所有偶数,满足条件的数有8、6、4、2、0。(共20张PPT)
第六节 Python循环结构的程序实现
信息技术 必修1 数据与计算
算法的程序实现
第三章
必备知识练
1. 运行如下程序,s的值为(  )
s=0
for i in range(5):
  if i==3:
    break
  s=s+i
print(s)
A. 15 B. 10
C. 7 D. 3
【解析】 本题主要考查Python程序的执行。i依次取0、1、2、3、4,当i=3时,退出循环,此时s=s+i=0+1+2=3,故运行完成后s的值为3。
D
2. 运行如下程序,输出的结果是(  )
sum=0
for i in range(2,11,4):
  sum=sum+i
print(sum,i)
A. 18 10 B. 17 11
C. 54 10 D. 65 10
【解析】 本题主要考查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)。sum=0,变量i依次取2、6、10,故sum=0+2+6+10=18,故输出的结果是18,10。
A
3. 某Python程序如下:
a=[18,2,-1,-7,16,-2,12,8]
k1,k2=1,1
for i in range(len(a)):
  if a[i]>a[k1]:
    k2=k1;k1=i
  elif a[i]>a[k2]:
    k2=i
程序运行后,变量k1,k2的值分别为(  )
A. 2,5 B. 4,0
C. 5,2 D. 0,4
【解析】 本题考查for语句及程序代码的分析理解能力。分析代码,可知k1是最大数的下标,k2是第二大数的下标,D正确。
D
4. 某Python程序如下:
s=0
n=100
while s<300:
  s+=n
  n-=10
程序运行后,n和s的值分别是(  )
A. 60,340 B. 70,400
C. 60,400 D. 70,340
【解析】 第一次循环,s=0,满足s<300这一条件,执行s+=n和n-=10,此时s和n的值分别为100、90;第二次循环,s=100,满足s<300这一条件,执行s+=n和n-=10,此时s和n的值分别为190、80;第三次循环,s=190,满足s<300这一条件,执行s+=n和n-=10,此时s和n的值分别为270、70;第四次循环,s=270,满足s<300这一条件,执行s+=n和n-=10,此时s和n的值分别为340、60;最后s=340不满足s<300这一条件,循环不执行,此时s和n的值分别为340、60。
A
5. 若k为整型,下列while循环执行的次数为 (  )
k=1000
while k > 1:
  print(k)
  k=k//2
A. 9 B. 10
C. 11 D. 100
【解析】 本题主要考查Python程序的执行。循环条件是k>1,循环体k=k//2,因此1000//
2=500,500//2=250,250//2=125,125//2=62,62//2=31,31//2=15,15//2=7,7//2=3,3//2=1,循环结束,一共循环了9次。
A
6. 阅读程序代码,若依次输入"p""y""t""h""o""n"" ",则输出的结果是(  )
s=""
x=input("请输入一个字符:")
while x!="":
  s=x+s
  x=input("请输入一个字符:")
print(s)
A. python B. p+y+t+h+o+n
C. nohtyp D. n+o+h+t+y+p
【解析】 本题主要考查Python程序的执行。分析程序可知,该程序将输入的字符逆向输出,因此若依次输入“p”“y”“t”“h”“o”“n”,则输出结果是nohtyp。
C
7. 运行如下程序,输出的结果是(  )
i=0
while i<10:
  print(i,end= )
  i=i+1
A. 0123456789 B. 123456789
C. 12345678910 D. 012345678
【解析】 本题主要考查Python程序的执行。循环结构中,先输出i,再执行i递增1。i的初始值为0,循环条件是i<10,故输出结果为0123456789。
A
8. 某Python程序如下:
s = "1010/1100/1111"
ans,t = 0,0
for i in s:
  if "0" <= i <= "1":
    t = t * 2 + int(i)
  else:
    ans += t
    t = 0
print(ans)
程序运行后,输出的结果是(  )
A. 12 B. 15
C. 22 D. 37
【解析】 本题考查循环语句的知识。由程序可知,将二进制数转换为十进制数,但是最后一组数“1111”由于后面没有其他符号,不能进入else分支,因此不能累加。故答案是10+
12=22。
C
9. 输入数字1234,以下程序的输出结果是(  )
x=int(input())
s=0
while x !=0:
  t=x%10
  s+=t
  x//=10
print(s)
A. 1234 B. 123
C. 10 D. 12
【解析】 本题主要考查Python程序的执行。分析程序可知,该程序实现将输入的整数x的各个数位上的数字进行求和,x=1234,则s=1+2+3+4=10。
C
10. 下列Python程序可以实现统计某种递增序列的功能:
a=[3, 7, 2, 5, 8, 9, 4, 6, 1]
m, c=1, 1
for i in range(1, len(a)) :
  if a[i]>=a[i-1]:
    c+=1
    m=max(m, c)
  else:
    c=1
程序运行后,变量c和m的值分别是(  )
A. 1和1 B. 1和4
C. 2和4 D. 3和4
B
【解析】 该程序的作用是求最长连续递增子序列的长度。其中c用来存储当前连续递增子序列的长度,m用来存储最长连续递增子序列的长度。观察列表a可以知道最长连续递增子序列为2,5,8,9,故m的值为4;变量i最后取8,a[8]=1,a[7]=6,所以a[i]>=a[i-1]不成立,执行else语句,所以最后c的值为1。
11. 某Python程序如下:
s=0
x="0123456789"
i=0
while i<=len(x) -2:
  t=int(x[i:i+2])
  if t%3==0:
    s+=t
  i+=1
程序运行后,变量i和s的值分别为(  )
A. 8和135 B. 9和135
C. 8和144 D. 9和144
B
【解析】 程序运行过程如表所示,程序运行结束后,i=9,t=89,s=135。
i 0 1 2 3 4 5 6 7 8 9
t 1 12 23 34 45 56 67 78 89 退出循环
s 0 12 12 12 57 57 57 135 135
关键能力练
12. 小明用Python编写了一个找最大值的程序,程序功能如下:用户输入数字串,数据间用
逗号分隔,最后以逗号结尾,程序执行后输出最大的数值。横线上应填入的代码为(  )
s=input("请输入数字串:")
i=j=max=0
c=t=""
while j  c=s[j]
  if c==",":
    t=s[i:j]
    if int(t)>max:
      max=int(t)
     ① 
   ② 
print(max)
A. ①i=i+1 ②j=j+1 B. ①i=j+1 ②j=j+1
C. ①j=j+1 ②i=i+1 D. ①j=i+1 ②i=i+1
B
【解析】 本题主要考查Python程序的调试。分析程序可知,若满足int(t)>max,则说明产生了最大值,则需要更新i的值为j+1,继续取下一个数字,i为该数字的起点;同时j递增1,继续下一轮的循环。
13. 运行如下程序,输出的结果是(  )
for s in "HelloWorld":
  if s=="W":
    break
  print(s, end="")
A. Hello B. World
C. HelloWorld D. Helloorld
【解析】 本题主要考查Python程序的执行。分析程序可知,当s等于字符W时,循环结束,因此输出的结果是Hello。
A
14. 运行如下程序,输出的结果是(  )
x=10
while x>=0:
  x-=1
  if x%2==0:
    print(x, end="")
A. 86420 B. 97531
C. 1097531 D. 1086420
【解析】 本题主要考查Python程序的执行。分析程序可知,该程序实现输出0和9之间的所有偶数,满足条件的数有8、6、4、2、0。
A

展开更多......

收起↑

资源列表