2.3 周而复始的循环 练习(含答案) 2020—2021学年教科版(2019)高一信息技术必修1 数据与计算

文档属性

名称 2.3 周而复始的循环 练习(含答案) 2020—2021学年教科版(2019)高一信息技术必修1 数据与计算
格式 docx
文件大小 54.5KB
资源类型 教案
版本资源 教科版(2019)
科目 信息技术(信息科技)
更新时间 2022-01-12 09:54:31

图片预览

文档简介

2.3 周而复始的循环
一、选择题
1.有如下VB程序段:
s=""
For i=1 To 7 Step 2
  If i<=1Then
    k=1
  ElseIf i<=2 Then
    k=2
  End If
  If i<=3 Then k=3
  s=s+Str(k)
Next i
label1.Caption=s
该程序段运行后,标签label1上显示的内容是 (  )
A.1234 B.4321 C.2233 D.3333
2.设执行以下程序段时依次输入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
3.下列程序的功能是求1~x之间所有5的倍效之和
x=int(input("输入数字x:")
i=1
s=0
while i<=x:
if ① :
s=s+i
print(i,end=",")

print("s=",s)
则划线处应填入的语句是( )
A.①i%5==0 ②i=i+1
B.①i//5==0 ②i=i+1
C.①i%5==0 ②i=i+2
D.①i%5==0 ②i=i+3
4.字符串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.②①③
5.有如下VB程序段:
b=0
For a=1 To 10
b=a+b
a=a+3
Next a
c=a+b
执行该程序段后,变量c的值为( )
A.15 B.22 C.28 D.32
6.执行如下代码:
c=0
num=[1,2,3,4]
def fun(num):
for i in range(5):
c=i
num.append(c) # 列 表 添 加 元 素
return num
print(fun(num),c)
则程序执行后输出( )
A.[1,2,3,4,4]4
B.[1,2,3,4,5]5
C.[1,2,3,4,4]0
D.[1,2,3,4,5]0
7.有如下Python程序段:
import jieba
str="热烈庆祝建党100周年"
fc=jieba.lcut(str)
print(fc)
for i in fc[::1]:
print(i)
已知分词之后的文本输出fc为:['热烈庆祝', '建党', '100', '周年'],则程序运行结束后的结果是( )
A.周年100建党热烈庆祝
B.热烈庆祝建党100周年
C.热烈庆祝建党周年100
D.年周001党建祝庆烈热
8.下列Python程序段运行的结果是( )。
i=0
sum=0
while i<10:
if i%3==0:
sum+=i
i+=1
print("sum=",sum)
A.sum=9 B.sum=10 C.sum=18 D.sum=19
二、填空题
9.运行以下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
10.在使用循环时,当循环次数一定时一般使用__循环,当循环次数未知时一般使用_____循环
11.Python语言用于实现循环结构的语句有______语句和while语句。
12.阅读程序,写出运行结果
a=[0,0,0,0,0,0,0]
a[1]= 1
a[2]= 1
for i in range(3,7):
a[i]=a[i-1]+a[i-2]
print (a[6])
上述程序运行后,输出a[6]的值是______
13.下面的程序段运行后的结果为__________
s=0
for i in range(1,8,3):
s=s+i
print(s)
14.运行下列程序,正确的结果是_________________
s=0
for i in range (1 5):
s=s+i
print("i=",i,"s=",s)
三、判断题
15.While循环语句的循环体中必须有改变条件表达式值的语句,否则会形成死循环。 (_____)
16.下列程序段中,赋值语句s=s+i被重复执行了4次。
s=0
For i in range(3,10,2):
s=s+i (_____)
17.在循环中continue语句的作用是跳出循环的执行。(_____)
18.用户自定义函数是用户自己写的一段程序.一般包括函数名、参数、 返回值、函数体等四部分.其中,函数名和参数是必不可少的部分.(____)
四、简答题
19.定义函数的基本格式是: ______。
20.在“抗击疫情,‘宅’出精彩”征文活动中,每位选手可以提交一篇作品。活动以互评的形式展开:每位选手对m篇作品进行打分(本人作品回避),方法如下:
① 用1-n数字代表n个作品,打乱顺序后分配给n个选手。分配方案保存在数组a中,如图a存储了两组分配方案(n=5)。在第一个分配方案中把4号作品分配给1号参赛者,1号作品分配给2号参赛者(选手编号与序号错开)……。
4 1 5 2 3 a(1)~a(n)中存储第一个分配方案
2 3 4 5 1 a(n+1)~a(2*n)中存储第二个分配方案
↑第i列中的作品拿给i号参赛者打分
图a
②分配方案的形成方法: 将1~n之间的随机数字依次放到第1个位置、第2个位置……,随机数不能与位置号相同,并且要防止分配冲突,如前三个分配序号是“2 3 4”,那么在第4位上只能放“5”(如放“1”会导致第5个位置没有符合要求的数字,因此位置n-1需要判断数“n”是否已经分配,如果未分配,位置n-1放置数“n”),最终方案“2 3 4 5 1”。
③评m个作品需要m个分配方案。方案间要避免同一个人拿到重复的作品。如第16题图a第3行上的数据“5 1 2 3 4”不符合要求,因为会使第2号选手重复拿到1号作品。
小明依据上述方法设计了VB程序,功能如下:在文本框Text1和Text2分别输入参赛人数和每人打分的作品数量,单击“分配”按钮Command1,在列表框List1中输出结果。程序运行效果如图b所示。
请回答下列问题:
(1)n=5,m=3,a(1)~a(10)中的数据如图a所示,a(11)~a(15)的数据可能是 (单选,填字母:A.5 4 3 1 2/B.5 4 1 3 2/C.3 4 5 1 2)
(2)请在划线处填入合适的代码。
Dim n As Integer '总人数/总作品数
Dim m As Integer '每人分配篇数
Dim a(1 To 500) As Integer '数组a大小满足处理要求
Dim c(1 To 100) As Integer '数组c大小满足处理要求
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer
n = Val(Text1.Text): m = Val(Text2.Text)
Randomize
i = 1
Do While i <= m
For j = 1 To n
c(j) = 0 '本轮分配方案中还没有数字j, c(j)=0,否则c(j)=1
Next j
For j = 1 To n
If j = n - 1 And c(n) = 0 Then

Else
k = r(n, j)
End If
a((i - 1) * n + j) = k '分配数字k到当前方案的第j个位置上
c(k) = 1
Next j
If ② Then i = i + 1
Loop
s = ""
For i = 1 To n
s = "参赛者" & i & ":"
For j = 1 To m
s = s + Str(a((j - 1) * n + i))+ ","
Next j
List1.AddItem s
s = ""
Next i
End Sub
Function r(x As Integer, y As Integer) As Integer
'生成一个取值在[1,x]之间,可以放在y位置上的随机数,满足条件r<>y andc(r)=0
End Function
Function check(c As Integer) As Boolean
'本轮方案和前面几次的分配方案比较,如果有人分到了重复作品,返回FALSE
Dim p As Integer,f As Boolean
f = True
p = 1
For i = 1 To c * n
If ③ Then
f = False: Exit For
End If
p = p mod n +1
Next i
check = f
End Function
五、操作题
21.阅读下列程序,写出运行结果。
n= int(input("n=")) cnt = 0 while n > 1: cnt = cnt + 1 if n % 2 == 0: n = n / 2 else: n = 3 * n + 1 print(cnt) 程序运行后,输入:8
运行结果是:_____________
试卷第2页,共3页
试卷第1页,共1页
参考答案
1.D
2.A
3.A
4.B
5.C
6.C
7.B
8.C
9.77
10.for while
11.for
12.8
13.12
14.i=4 s=10
15.正确
16.正确
17.错
18.错
19.def 函数名(参数):
#函数说明
语句或语句组
return 返回值
20.(1)B
(2)①k= n ②check(i - 1) ③a(i) = a(c * n + p)
21.3
答案第1页,共2页