内容正文:
2.3 周而复始的循环
学校:___________姓名:___________班级:___________考号:___________
一、选择题
1.有如下VB程序段:
sl = "1324":s2="abcdefgh"
j = 1:m=0:c=" "
For i= 1 To Len (s2)
k =Val(Mid(sl,j,1))
c= c +Mid(s2,m +k,1)
j=j+1
If j>4 Then j= 1:m =m+ 4
Next i
执行该程序段后,变量c的值是( )。
A.acbdegfh B.acbdacbd C.acbdefgh D.abcdefgh
2.下列Python程序段:
a=[2,4,3,5,1]
min=a[0]
s=10
for i in range(1,5):
if a[i]<min:
min=a[i]
s-=min
print(s)
执行该程序段后,输出的结果是( )
A.1 B.3 C.6 D.9
3.在Python中,如下的代码输出结果是( )
x=0
for i in range(5,10,2):
x=x+i
print(x)
A.31 B.21 C.20 D.15
4.有如下Python函数mydel,功能是在非空列表lst中找第一个数据x并删除,划线处的正确代码为( )
def mydel(lst, x):
for i in range(len(lst)):
if lst[i]==x:
break
else:
return("找不到想删除的数据")
for j in range(① ):
lst[j]=lst[j+1]
lst.pop() #pop()方法的功能是删除列表最后一个数据
A.i, len(lst)-1 B.i, len(lst)-2 C.len(lst)-1, i, -1 D.len(lst)-2, i-1, -1
5.下面程序段的运行结果为( )。
For i=3 To 1 Step -1
Print Spc(5-i); '输出时前面空几格
For j=1 To 2*i-1
Print "*"; ' ";"一个完整的内循环时表示在同一行输出
Next j
Print '另一个循环开始时,换行
Next i
A. B. C. D.
6.有如下Python程序
s1="0312"; s2="ABCDEFGH"
m=0; c=""
for i in range(len(s2)):
k=int(s1[i%4])
m=4*(i//4)
c+=s2[k+m]
执行该程序段后,变量c的值是( )
A."ADBCADBC" B."ABCDEFGH" C."AHBGCFDE" D."ADBCEHFG"
7.关于以下程序代码,说法正确的是( )
A=1
b=0
while A<101:
b=b+A
A=A+1
print(b)
A.该程序的作用是求1到101的累加和
B.变量b的作用是累加计算1到100的和
C.该程序循环计算了101次
D.以上都不对
8.以下程序的输出结果是( )
sum =1
for i in range(4,0,-1):
sum+=i
print(sum)
A.11 B.15 C.16 D.10
9.下列程序的运行结果是( )
word=["my","apple","Label","Name","nose","nice"]
n=0
for ch in word:
if ch[1]=="a":
n=n+1
print(ch,end=" ")
print(n)
A. B. C.apple 1 D.Label Name 2
10.如图所示,是Python语言编写的输出金字塔的程序,它主要采用的程序结构是( )
A.顺序 B.循环 C.树型 D.选择
11.有如下python程序段,运行该程序段后,列表a中的值可能是( )
import random
a =[]
for i in range(6):
t= random.randint(1,11)
a.append(t+t%2)
for i in range(1,6):
j=i;k= a[j]
while a[j-1]<k and j>0:
a[j]= a[j-1]
j=j-1
a[j]= k
A.11,8,7,6,5,5 B.2,4,4,6,8,10 C.12,10,2,2,2,2 D.11,11,7,5,3,1
12.有如下VB程序段:
s = Text1.Text
ans = "": k = 5
i = k - 1: j = k + 1: n = Len(s)
Do While k > 1
If Mid(s, i, 1) = Mid(s, j, 1) Then
ans = ans + Mid(s, i, 1) :k = k - 1
End If
i = (n + i - 2) Mod n + 1
j = j Mod n + 1
Loop
Label1.Caption = ans
在文本框Text1中输入“mississippi”,执行程序后,标签Label1上显示的内容是( )
A.ssii B.ssis C.siis D.miss
13.字符串s1中保存了一个单词,字符串s2中保存了一句以空格结尾的句子,字符串s1和s2均由小写字母组成且s2中各个单词之间仅用空格隔开,下列程序能够统计单词s1在句子s2中出现的次数:
i=1:j=1:cnt=0
Do While j<= Len(s2)
If Mid(s1,i,1)<> Mid(s2,j,1)Then
Else
Do While i<=lens and j<=lens2
If Mid(s1, i, 1) =Mid(s2, j, 1)Then
Else
End If
Loop
lf i=len(s1)+1 And Mid(s2,j,1)=""then
cnt= cnt+1
End If
i=1
End If
Loop
方框中的代码分别是:①i=1:j=j+1 ②i=i+1:j=j+1 ③j=j+1
代码从上到下正确的顺序是()
A.①②③ B.③②① C.③①② D.②①③
14.有如下程序段:
import random
a = [0] * 6
for i in range(0,6):
a[i] = random.randint(1,5) * 2 + 1
i = 0
while i < 5:
if a[i] > a[i+1]:
a[i],a[i+1] = a[i+1],a[i]
else:
a[i] += 1
i += 1
print(a)
执行以上程序后,列表变量 a 可能的是( )
A.[1, 6, 10, 10, 10, 9] B.[3, 8, 7, 13, 3, 9]
C.[5, 10, 7, 7, 12, 11] D.[5, 10, 10, 7, 10, 8]
15.有如下程序段:
Dim s(1 To 81) As Integer, i As Integer, j As Integer, c As Integer, temp As Integer
c=0 : s(1) = 0
For i = 1 To 9
For j = 1 To i
temp = s(j * i)
s(j * i) = j * i
If temp <> s(j * i) And s(j * i) Mod 9 = 0 Then c = c + 1
Next j
Next i
该程序段运行后,变量 C 的值为( )
A.9 B.10 C.11 D.12
16.有如下Python程序段:
import random
q=[0]*8;head,tail=0,4
for i in range(4):
k=random.randint(0,10)
if k%2==0:
q[tail]=k%5
tail+=1
else:
head+=1
while head<tail:
print(q[head],end="")
head+=1
程序执行后,输出的结果可能为:( )
A.0 0 0 0 2 3 0 9 B.0 0 0 0 C.0 1 2 3 4 D.2 3
17.如下程序段,运行后,x的值为( )
x = 0
while x < 50:
x = (x + 2) * (x + 3)
A.0 B.72 C.50 D.168
18.函数range(6,10)生成的序列中元素的个数是( )
A.3 B.4 C.5 D.6
19.有如下Pyhton程序段:
def gcd(a,b):
c=a%b
while c > 0:
a,b =b,c
c=a%b
return b
a=int (input("请输入: "))
b=int (input("请输入: "))
gcd = gcd(a, b)
scm=a*b//gcd
print( gcd, scm)
运行该程序,输入a,b的值分别为16,12,则输出gcd,scm的值分别为( )
A.4,48 B.48,4 C.2,12 D.12,2
20.利用Python 打印5个#,代码及运行结果如下:
1 for i in :
2 print("#", end=",")
>>> %Run '五个#. py'
#,#,#,#,#,
则程序第1行横线处应该填( )
A.5 B.range(1, 5) C.(1, 5) D.range(5)
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.A
【详解】本题考查的是VB标准函数及循环语句。Mid(X,n,k) 取字符串 X 中第 n 个字符起长度 为 k 的子串,Val(X) 数字字串转换为数字,Len(X) 计算字符串的长度。阅读程序段可知,当i=1时,c= c +Mid(s2,m +k,1)= c +Mid(s2,1,1)="a";当i=2时,c= c +Mid(s2,m +k,1)="a"+ Mid(s2,3,1)="ac";当i=3时,c= c +Mid(s2,m +k,1)="ac"+ Mid(s2,2,1)="acb";当i=4时,c= c +Mid(s2,m +k,1)="acb"+ Mid(s2,4,1)="acbd";当i=5时,由于j>4,故j=1,m=m+4=4,c= c +Mid(s2,m +k,1)="acbd"+ Mid(s2,5,1)="acbde";当i=6时,c= c +Mid(s2,m +k,1)=" acbde "+ Mid(s2,4+3,1)="acbdeg";当i=7时,c= c +Mid(s2,m +k,1)=" acbdeg "+ Mid(s2,4+2,1)="acbdegf";当i=8时,c= c +Mid(s2,m +k,1)=" acbdegf "+ Mid(s2,4+4,1)="acbdegfh";循环结束,故选项A正确。
2.B
【详解】本题考查的是Python列表及循环。阅读程序可知,只有当 a[i]<min成立时,min值才发生变化,列表a中,只要最后一个元素1比2大。由 range(1,5)可知,循环执行了4次,前三次min值都为2,最后一次min值为1,s初始值为10,故经过循环执行s-=min后,s值为:10-2-2-2-1=3。选项B正确。
3.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选项。
4.A
【详解】本题考查的是Python循环语句。第一个循环跳出时,找到第一个数据x的索引号i, 由lst[j]=lst[j+1],可知删除的时候从i开始后面数据往前移,直到最后一个数据(索引号为:len(lst)-1)。故选A。
5.C
【详解】本题主要考查程序循环结构执行。题中外层循环Print Spc(5-i);用于输出空格,即第一行先输出2个空格,第二行输出3个空格,第三行输出4个空格;内层循环变量j终值依次为5,3,1,因此第一行输出5个*,第二行输出3个*,第三行输出1个*,因此C选项正确。
6.D
【详解】本题考查的是Python循环语句。由程序中c += s2[k+m]可知,从s2 中取值由k+m确定,k的取值依次为“03120312”,而m的取值依次为“00004444”,可知k+m的取值依次为“03124756”,所以答案为“ADBCEHFG”,故本题应选D。
7.B
【详解】本题主要考查Python循环结构的应用。分析程序,该程序的作用是求1到100的累加和,变量b的作用是累加计算1到100的和,该程序循环计算了100次,故本题选B选项。
8.A
【详解】本题主要考查Python循环结构。分析程序可知,sum=4+3+2+1+1=11,故本题选A选项。
9.D
【详解】本题考查的是Python循环语句。字符串的索引是从0开始,-1为从末尾开始的位置,故由ch[1]=="a"可知,查找word列表中单词第二字母为"a",end=" "表示输出时不换行,n是统计满足条件单词的个数,故程序的运行结果是:Label Name 2。选项D正确。
10.B
【详解】本题主要考查程序基本结构。分析程序,可知它主要采用的程序结构是循环结构,故本题选B选项。
11.C
【详解】本题主要考查Python程序的执行与调试。由 t= random.randint(1,11)可知t是1~11的整数,由a.append(t+t%2)可知a列表中的数字是2~12的偶数。由第二个for循环嵌套中条件a[j-1]<k and j>0,可知实现的是降序排列。选项AD中含有奇数,不符合;选项B是升序排序,不符合。故本题应选C。
12.A
【详解】本题考查VB综合应用。根据题意,循环判断,第一次循环判断Mid(s, i, 1)为i,Mid(s, j, 1)为s,不成立,执行后续语句,此时i=3,j=5,第二次循环判断,成立,执行语句,ans值为“s”,k为4,继续执行,此时i=2,j=5,第三次循环判断,成立,执行语句,ans值为“ss”,k为3,继续执行,此时i=1,j=5,第四次循环判断Mid(s, i, 1)为i,Mid(s, j, 1)值为是s,条件不成立,执行后续语句,以此类推,最后输出“ssii”。故选项A正确。
13.B
【详解】本题考查VB程序段。第一空,当If Mid(s1,i,1)<> Mid(s2,j,1)Then成立时,那么j变量向后移动一个位置,重新开始判断,故填入j=j+1。第二空,当 If Mid(s1, i, 1) =Mid(s2, j, 1)Then成立时,i和j都往后移动,故填入i=i+1:j=j+1。第三空,表示i回到s1的起始位置,重新检测,故填入i=1:j=j+1。结合上述分析,本题选B。
14.C
【详解】本题主要考查Python综合程序调试。a[i] = random.randint(1,5) * 2 + 1,a[i]是随机生成3、5、7、9、11之间的数,分析程序可知,第一次循环,a[0]是3、5、7、9、11之间的数,数组a的其余元素是0,while循环结束后,a[5]的值变为刚生成a[0]的值,其余元素值为0,排除选项D;对于选项B,若生成的a[2]=3,则while循环执行后,a[4]的值应是3+1=4,与选项不符,排除选项B;其次当a[0]<a[1]时,则a[0]递增1,a[1]的值大于2,故a[0]的值一定大于1,排除选项A,故本题选C选项。
15.A
【详解】本题考查数组、循环嵌套和枚举算法。外层共9次循环,第一次循环,s(j * i)=1*1=1;第二次循环,内层循环执行两次,s(j * i)的值分别为2、4;……;依次类推枚举s(j * i)的值如下图:
temp <> s(j * i) And s(j * i) Mod 9 = 0 temp 记录的是 s(j * i)上一次被赋值的量,只有当上一次未被赋值,且能被 9 整除时 C 才能自增 1,因此由表中能被 9 整除的项总计 12 个,有 3 项重复,因此答案为 9 个。最后一行数据为 9 的 1,2,3,4……9 的倍数的枚举,涵盖了表中所有能被 9 整除的情况,由此也能直接得出结论 C 为 9, 选项A正确
16.B
【详解】本题考查Python程序的分析。k=random. randint (0, 10),k随机生成0~10, 由q[tail]=k%5可知,q列表中不可能出现9,排除A选项;for循环一共循环4次,若q中有1、2、3、4,说明没有执行head+=1,则C应是00001234,排除C选项;如果k是连续生成0或10两个再生成两个奇数,选项B可能;选项D有2、3,则说明head+=1至多执行2次,因此输出结果一定有0,排除D选项。故正确答案选B。
17.B
【详解】本题主要考查Python循环结构的应用。x=0,第一遍循环,满足x<50,执行x=(x+2)*(x+3)=6;第二遍循环,满足x<50,执行x=(x+2)*(x+3)=8*9=72;第三遍循环,不满足x<50,输出x的值是72,故本题选B选项。
18.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(6,10)生成:6、7、8、9共4个。故选B。
19.A
【详解】本题主要考查Python程序的执行。分析程序可知,gcd(a,b)求a和b的最大公约数,scm求a和b的最小公倍数。运行该程序,输入a,b的值分别为16,12,则输出最大公约数gcd,最小公倍数scm的值分别为4和48,故本题选A选项。
20.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)。 打印5个#,则程序第1行横线处应该填range(5),故本题选D选项。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$