内容正文:
2.3 周而复始的循环
一、选择题
1.下列哪种结构,可是实现计算机自动完成重复性的工作( )。
A.顺序结构 B.选择结构 C.循环结构 D.组合结构
2.下面程序代码中n的值为( )
s=0
n=1
while s<15:
s=s+n
n=n+1
A.4 B.5 C.6 D.7
3.哪个选项关于循环结构的描述是错误的( )
A.条件循环和遍历循环结构都是基本的循环结构
B.死循环无法退出,没有任何作用
C.循环是程序根据条件判断结果向后反复执行的一种运行方式
D.循环是一种程序的基本控制结构
4.现有近似求ex的公式如下:
实现上述功能的Python程序段如下:
x=int(input("请输入x="))
n=int(input("请输入n="))
e=1;p=1;i=0
while i<n:
print(e)
方框处的代码由以下三部分组成:
①i=i+1 ②p=p*i ③e+=x**i/p
下列选项中,代码顺序正确的是( )
A.①③② B.①②③ C.③①② D.③②①
5.某算法的部分流程图如图所示。若输入n的值为100,则输出的k值为( )
A.3 B.4 C.9 D.10
6.执行下列Python程序段后,a的值是( )
a=76
while a<=90:
a=a+4
print (a)
A.88 B.92 C.90 D.94
7.有如下VB程序段:
a(1) = 1: a(2) = 1
b(1) = 1: b(2) = 2
For i = 3 To 5
a(i) = a(i - 1) + a(i - 2)
b(i) = b(i - 1) + a(i)
Next i
执行该程序段后,数组元素b(5)的值为( )
A.12 B.8 C.5 D.4
8.小曲使用Python编写了下面一个函数,如果执行fact(5)语句的值为( )
1 def fact(n)
2 i=1
3 f=1
4 while i<=n:
5 f=f*i
6 i=i+1
7 return f
A.1 B.120 C.24 D.720
9.下面语句执行后得到的结果是( )
for i in range(2,12,2):
print(i,end=" ")
A.2 4 6 8 10 12 B.2 4 6 8 10 C.4 6 8 10 D.4 6 8 10 12
10.有如下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"
11.在一次抽奖活动中,需要在8人中随机抽取3个幸运奖,对应的Python程序如下:
import random
xm=["A","B","C","D","E","F","G","H"] #用字母代表人名
hj=[""]*3;
bz=[False]*8
i=0
while i<=2:
n=random. randint(0,7)
print(h j)
程序加框处代码合适的是( )
A.if bz[n]==False:
hj[i]=xm[n]
bz[n]=True
i+=1
B.if bz[n]==True:
hj[i]=xm[n]
bz[n]=False
i+=1
C.if bz[i]==False:
hj[n]=xm[i]
bz[i]=True
i+=1
D.if bz[i]==True:
hj[n]=xm[i]
bz[i]=True
i+=1
12.输入345,输出结果正确的是( )
n=int(input("请输入一个整数:"))
s=0
while n!=0:
s=s+n%10
n=n//10
print(s)
A.14 B.13 C.12 D.11
13.设执行以下程序段时依次输入1、3、5,执行结果为( )
Dim a(4) As Integer
Dim b(4) As Integer
For K =0 To 2
a(K+1) =Val(InputBox("请输入数据:"))
b(3-K) =a(K+1)
Next K
Print b(K)
A.1 B.3 C.5 D.0
14.已知a="012345",b=["012",3,4,5],c={0:1,2:4,3:5},下列语句执行完毕后,s的值为5的是( )
A.s=0
for i in a[5]:
s=s+1
B.s=0
for i in range(b[2]):
s=s+1
C.s=0
while s<=c[2]:
s=s+1
D.s=0
while s>c[3]:
s=s+1
A.A B.B C.C D.D
15.已知字符串 s 是由字母和数字组成的,现要用 VB 程序实现如下功能,将字符串中的数字字符按照原有顺序移动到 s 的左边,字母字符按照原有顺序移动到字符串右边,如 s=“Su2cc0ess20”执行完程序后变成 s=“2020Success”,为实现上述功能,在横线处填入的代码应该是( )
m=0:k=0
For i = 1 To Len(s)
ch = Mid(s, i, 1)
k = k + 1
If ch >= "a" And ch <= "z" or ch >= "A" And ch <= "Z" Then
a(k) = ch
Else
m = m + 1: ①
Do While j > m
②
j = j - 1
Loop
③
End If
Next i
n = Len(s): s = ""
For i = 1 To n
s = s + a(i)
Next i
A.①j=k ②a(j)=a(j-1) ③a(m) = ch B.①j=k ②a(j)=a(j+1) ③a(j+1)=ch
C.①j=k-1 ②a(j)=a(j-1) ③a(m) = ch D.①j=k-1 ②a(j)=a(j-1) ③a(j+1)=ch
16.某Python序段如下,运行该程序段输出结果是( )
def isprime(x):
for i in range(2,x):
if x%i==0:
return False
return True
prime=[]
for i in range(2,11):
if isprime(i):
prime.append(i)
print(len(prime))
A.3 B.4 C.5 D.6
17.有如下Python程序:
import random
a=[0]*6
i=0
while i<6:
a[i]=random. randint (1, 10)
if a[i] in a[0: i]:
i-=1
i+=l
for i in range (6):
if i%2==0 and a[i]>a[i+1]:
a[i], a[i + 1]=a[i+1], a[i]
else:
a[i]+=a[i]%2
print(a)
执行此程序后,数组a中不可能的结果为( )
A.[4, 6, 4, 8, 7, 10] B.[3, 11, 6, 8, 1, 4] C.[1, 4, 4, 8, 6, 8] D.[4, 8, 2, 4, 6, 8]
二、填空题
18.在循环语句中, 的作用是提前结束本层循环, 的作用是结束本次循环进入下一次循环。
19.有如下程序段:
s=0
for i in range(1,11,2):
s=s+i
print(s)
该程序段运行后,s的值为 。
20.运行以下VB程序,输出结果是 。
Private Sub Command1_Click()
Dim s As Integer, x As Integer
s = 0
x = 20
For x = 20 To 1 Step -3
s = s + x
Next x
Print x
End Sub
21.阅读以下程序,写出程序运行结果。
def jc(n):
s=1
for i in range(2,n+1):
s=s*i
return s
total=jc(4) #调用jc函数
print(total)
程序运行后,其输出结果为
22.阅读下列程序,写出运行结果
sum=0
for k in range(1,11):
if k%2==0:
sum=sum+k
print(sum)
程序运行后输出结果是: 。
三、判断题
23.在for循环语句中,遍历结构不可以是字符串。( )
24.Python中这两个程序段运行后,虽然变量a中的值是相同的都是12,但程序执行后在屏幕上输出的内容是不完全相同的。( )
25.for循环与while循环任何时候都不可以相互替换。( )
26.下列Python程序段运行结束后,赋值语句sum=sum+i共被执行了9次。( )
27.下列程序段中,赋值语句s=s+i被重复执行了4次。
s=0
For i in range(3,10,2):
s=s+i ( )
四、操作题
28.若 1+2+3+4+...+n>500,请在屏幕上输出符合条件的 n 最小值。不要更改程序结构, 将题中的①②③填入正确的语句。
(1)序号①答案为
A. s > 500 B.s >= 500 C.s <= 500 D.s < 500
(2)序号②答案为
A.n =+ 1 B.n += 1 C.n+1 D.n++
(3)序号③答案为
A.n B.s C.n+1 D.n-1
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.C
【详解】本题考查循环结构的相关知识点
顺序结构、选择结构都执行一次,循环结构可以可是实现计算机自动完成重复性的工作。故本题选C选项
2.C
【详解】本题考查Python程序设计相关内容。该程序段通过累加的方式计算1+2+3+...的和,若和大于等于15则结束循环。循环体共执行5次,第5次时,s值为15,执行n=n+1后,n值为6,s<15不成立,结束循环。故本题答案是C选项。
3.B
【详解】本题考查程序设计循环结构相关内容。ACD选项说法正确。B选项,死循环是指程序中一段代码无限循环,导致程序无法终止,从而造成程序的崩溃或者系统崩溃。遇到死循环,我们可以通过按下Ctrl+Pause/Break的方法,结束死循环。在某些场景中,死循环也是有用的,比如作为服务器的主循环,持续监听并处理请求。选项说法错误。故本题答案是B选项。
4.B
【详解】本题考查Python程序执行与调试。根据while循环语句的结构,由于变量i的的初始值为0,所以在循环内需要先执行i=i+1,然后求表达式中的分母,p=p*i,最后执行累加表达式e+=x**i/p,所以选项B符合题意。故选B。
5.B
【详解】本题主要考查算法流程图执行。本题流程图为i<100时,判断Int(Sqr(i)) = Sqr(i)是否成立,成立则k自增1,否则i自增3,当i>=100时,输出k,i=0、9、36、81时,满足Int(Sqr(i)) = Sqr(i),因此B选项正确。
【点睛】
6.B
【详解】本题考查Python循环结构的应用。a初值是76,循环条件是a<=90,每次循环a递增4,因此当循环3次时,a=76+4*3=88,此时依然满足循环条件,再次进入循环,a=a+4=88+4=92,不再满足循环条件,退出循环,故执行完程序后,a的值是92。故选B。
7.A
【详解】本题考查循环语句和赋值语句。根据初值,以及循环, a(i) = a(i - 1) + a(i - 2),b(i) = b(i - 1) + a(i)得到结果。最后b(5)=12,故本题选A。
8.B
【详解】本题主要考查Python程序的执行。分析程序可知,该程序实现求n的阶乘,故如果执行fact(5)语句的值为5*4*3*2*1=120,故本题选B选项。
9.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)。 range(2,12,2)生成2~10偶数序列,故本题应选B。
10.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。
11.A
【详解】本题主要考查Python程序的执行与调试。数组bz标记每一个人是否被抽取,初始值均为False,表示均未被抽取,故首先判断bz[n]的值是否为False,如果是False,则更新hj[i]的值为xm[n],同时赋值bz[n]的值为True,表示已抽取,再i递增1,继续抽取下一个人,故本题选A选项。
12.C
【详解】本题考查的是Python循环语句。由循环体中代码s=s+n%10、 n=n//10可知,这是计算一个数的每位上数字之和,故输入345,则输出结果为:3+4+5=12,选项C正确。
13.A
【详解】本题主要考查循环结构执行。For循环中循环变量k依次为0,1,2,循环体中依次为a(1)=1,b(3)=1;a(2)=3,b(2)=3;a(3)=5,b(1)=5;跳出循环后,k=3,输出b(3)=1,因此A选项正确。
14.C
【详解】本题考查Python循环结构的应用。已知a="012345",b=["012",3,4,5],c={0:1,2:4,3:5},a[5]="5",b[2]=4,c[2]=4,c[3]=5,选项运行结果依次是:1、4、5、0。故选C。
15.A
【详解】本题考查VB程序段。题目要求,将字符串中的数字字符按照原有顺序移动到s的左边,字母字符按照原有顺序移动到字符串右边,又根据代码可知,当变量ch是字母时,将ch存放在数组元素a(k)中,即a(k)=ch。当ch是数字时,执行Else部分,根据选项和代码结构,可判断else部分的功能是将ch中的数字存放在数组元素a(m)中,如果a(m)中已经有字母存在,则需要将从a(m)至a(k)的数组元素向后移动一位。故由此判断,代码第一空填入j=k,代码第二空实现数组后移一位,填入a(j)=a(j-1),代码第三空将ch存入数组中,即a(m)=ch。故本题选A。
16.B
【详解】本题考查的是Python综合应用。阅读程序可知,这是求2到10之间素数的个数,2到10之间素数有:2、3、5、7,共4个。故本题应选B。
17.B
【详解】本题考查的是Python调试与运行。由a[i]=random. randint (1, 10)可知随机生成a[i]的值范围1~10,选项B中a[1]=11,故其只能通过 a[i]+=a[i]%2执行得到,执行该语句后a[i]的值范围2~10,不可能为11。故选B。
18. break continue
【详解】本题主要考查Python循环语句。在循环语句中,break的作用是提前结束本层循环,continue的作用是结束本次循环进入下一次循环。
19.25
【详解】本题主要考查循环结构。Python程序中,for循环结构初值为1,终值为10,步长值为2,循环体为s=s+i,该程序实现了1,3,5,7,9求和,因此结果为25。
【点睛】
20.77
【详解】本题考查VB程序段。
x=20,s=20,
x=17,s=37,
x=14,s=51,
x=11,s=62,
x=8,s=70,
x=5,s=75,
x=2,s=77
x=1,循环结束,最后x=77。
21.24
【详解】本题考查的是Python函数及循环语句。由s=s*i及 range(2,n+1)可知返回值是s=1*2*3*……n,total=jc(4)=1*2*3*4=24。
22.30
【详解】本题考查的是Python循环语句。sum=0,变量i的范围是1~10,如果是偶数,则执行sum=sum+i,故程序执行完,sum=sum+i=0+2+4+6+8+10=30。
23.错误
【详解】本题主要考查Python循环结构。在for循环语句中,遍历结构可以是字符串,也可以是列表等,故表述错误。
24.正确
【详解】本题考查的是Python循环语句。在for循环中,从for语句末尾的冒号开始至其下面没有缩进的代码之间都是其包含的需要重复执行的部分,对比这两个程序段,左边print(a)需要重复执行,而右边的print(a)在循环结束后执行一次,故程序执行后在屏幕上输出的内容是不完全相同的。题干中的说法正确。
25.错误
【详解】本题考查循环。for 循环和 while 循环是两种不同类型的循环结构,它们用于不同的情况,但它们通常可以相互替换。for 循环通常用于已知循环次数的情况,例如遍历一个列表或迭代器中的元素。while 循环通常用于未知循环次数的情况,即当某个条件为真时继续执行循环。在某些情况下,可以使用 for 循环来模拟 while 循环,反之亦然,但这通常需要额外的控制语句。故说法错误。
26.正确
【详解】本题考查的是Python循环与选择语句。range(1,20)生成1~19的整数,阅读程序可知,只有i为1~19的偶数,才执行赋值语句sum=sum+i。故一共被执行了9次。题干中说法正确。
【点睛】
27.正确
【详解】本题考查的是Python的range函数。range(start, stop [,step]) ;start 指的是计数起始值,默认是 0;stop 指的是计数结束值,但不包括 stop ;step 是步长,默认为 1,不可以为 0 。range() 方法生成一段左闭右开的整数范围。range(3,10,2)生成的列表为[3,5,7,9],故题干中的说法正确。
28. C B D
【详解】本题主要考查Python循环结构的应用。(1) 1+2+3+4+...+n>500,该程序输出在屏幕上输出符合条件的 n 最小值,满足循环条件执行s=s+n,故while循环条件是s <= 500 ,选C选项。(2)每循环一次,n递增1,故此处填n=n+1或n+=1,故本题选B选项。(3)先执行s=s+n,再执行n=n+1,故符合条件的最小值是n-1,故本题选D选项。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$