内容正文:
专题达标训练(五) Python循环语句
一、单项选择题
1. 如下Python程序段
s=0
for i in range(0,11,2):
s+=i
print(s)
执行后,变量s的值是 ( )
A. 10 B. 9 C. 30 D. 55
2. 以下Python程序段中循环体执行的次数是 ( )
s=i=0
while s<10:
i+=1
s+=i*i
A. 1 B. 3 C. 2 D. 4
3. 在Python循环中,可以使用break语句终止循环,程序将跳出循环,执行循环后的语句,下面代码运行结果是( )
cnt =0
for i in range(1,6):
if i==4:
break
cnt=cnt+1
print(cnt)
A. 2 B. 4 C. 3 D. 5
4. 为使下面左右框内的Python程序段实现相同的功能,则右框内划线处填写的代码应该是 ( )
s=t=0
for t in range(0,7,2):
s+=t
s=t=0
while t<=6:
s+=t
________
A. t+=2 B. s+=2 C. t+=s D. t=s+2
5. 某两段Python程序分别如图所示:
n=int(input("n="))
s=0
for i in range(1,n+1,2):
s+=i
print(s)
n=int(input("n="))
s,i=0,1
while i<=n:
s+=i
i+=2
print(s)
当n的值为10时,关于该两段程序,下列说法不正确的是 ( )
A. 两段程序中i的初值相同 B. 两段程序都采用了循环结构
C. 两段程序的运算结果不相同 D. 左边程序实现了“1+3+5+7+9”和的运算
6. 以下程序段运行结果是( )
s = 0
for i in range(11):
if i % 2==0:
s = s + i
else:
s = s - i
print(s)
A 55 B. -5 C. 5 D. -55
7. 阅读下列Python程序,选出运行结果。
for i in range(1,11): #i控制*行数
for j in range(1,i+1): #j控制每行*的个数
print("*",end=" ") #输出*,end=" "表示输出结束后不换行
print ( ) #输出换行
运行结果是 ( )
A. B. C. D.
8. 有如下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
9. 读以下代码段,对其运行结果说法正确的是 ( )
s=0
for i in range(1,7,2):
s=s+i
print(s)
s=0
for i in range(1,7,2):
s=s+i
print(s)
s=0
for i in [1,3,5]:
s=s+i
print(s)
s=0
for i in [1,3,5]:
s=s+i
print(s)
①
②
③
④
A. ①②运行结果均输出9 B. ①③运行结果相同,②④运行结果相同
C. ②③运行结果均为换行输出1 4 9 D. ①④运行结果相同,②③运行结果相同
10. 以下对Python循环语句的描述错误的是 ( )
A. 循环语句的结束条件设置不合理会造成无限循环 B. 所有的for循环都可以用while循环改写
C. for循环一般用于循环次数已知的情况 D. for循环和while循环不能相互嵌套
二、填空题
11 阅读下列Python程序,写出运行结果
a=[5,2,8,7,3] #创建列表,各元素用逗号隔开,放在方括号内
a[0]=8 #修改列表第一个元素的值为8,注意列表的索引号
del a[1] #删除列表第二个元素
a.append(9) #在列表尾部添加一个数据元素9
print(a) #打印列表
运行结果:____。
12. 已知包含25项的数列:1,2/3,3/5,……24/47,25/49。
问题1:写出该数列的通项公式f(n)=①____
问题2:以下是计算S=1+2/3+3/5+……+24/47+25/49Python程序,请补全代码:
s=0
for i in r