4.4.2while循环的应用-粤教版(2019)高中信息技术必修一练习(解析版)

文档属性

名称 4.4.2while循环的应用-粤教版(2019)高中信息技术必修一练习(解析版)
格式 zip
文件大小 426.7KB
资源类型 教案
版本资源 粤教版(2019)
科目 信息技术(信息科技)
更新时间 2021-11-26 16:55:16

文档简介

4.4.2while循环的应用-粤教版(2019)高中信息技术必修一练习
学校:___________姓名:___________班级:___________考号:___________
一、选择题
1.某查找算法的部分VB程序代码如下:
i=1:j=8:k=0
key=15
Do While i<=j
k=k+1
m=Int((i+j)/2)
If keyLoop
数组元素a(1)到a(8)的数据依次是“14,15,15,17,28,30,37,40”,该程序执行完毕后,下列各变量的值不正确的是( )
A.i=4 B.m=2 C.j=3 D.k=3
【答案】B
【解析】
【分析】
【详解】
本题考查VB二分查找算法相关知识点
第一轮循环 k=1,m=4,key=15第二轮循环 k=2,m=2,key=15=a(2)=15 i=3
第三轮循环 k=3,m=3,key=15=a(3)=15 i=4
退出循环。程序执行完毕时,i=4,m=3,j=3,k=3
故本题选B选项
2.有以下程序段:
i = 1;
s = 0;
while i < 7:
s = s + i;
i = i + 1;
if i == 5:
break;
print("1-7的累加值为:",s);
程序运行后输出的结果为:( )
A.10 B.15 C.21 D.死循环
【答案】A
【解析】
【分析】
【详解】
本题主要考查程序的分析。程序中当i==5时,执行break跳出循环,因此本程序执行结果为1+2+3+4=10,A选项正确;其余选项均不符合题意。
3.有如下Visual Basic程序段:
Private Sub Command1_Click ()
Dim x As Integer,r As Integer, s As String
x = Val(Text1. Text): s =""
Do While x<>0
r=(x+1) Mod 2
s=Str(r)+s
x=x\2
Loop
Text2. Text = s
End Sub
该程序段运行后后,在文本框Text1中输入25,则文本框Text2显示的内容是( )
A.0 0 1 0 1 B.1 1 0 1 0 C.0 0 1 1 0 D.1 1 0 0 1
【答案】C
【解析】
【详解】
本题考查VB程序段。根据do while循环结构,以及r=(x+1) Mod 2,s=Str(r)+s,x=x\2三条语句可知,该循环的作用将十进制转换为二进制后的0转换为1,1转换为0。25二进制是11001,故转换后为00110,本题选C。
4.有如下VB程序段:
x = 4095 : s1 = "ABCDEFGHIJ" : s2 = "abcdefghij"
ret=""
Do While x > 0
r = x Mod 10
If r Mod 2 = 1 Then
ret = Mid(s1, r + 1, 1) & ret
Else
ret = ret & Mid(s2, r + 1, 1)
End If
x = x \ 10
Loop
Text1.Text = ret
执行该程序段后,文本框 Text1 中显示的内容为( )
A.JFae B.JFea C.eaJF D.EAfj
【答案】A
【解析】
【详解】
本题主要考查VB程序的执行。while循环中,r=x mod 10=4095 mod 10=5,5 Mod 2 = 1,ret=F,x=x\10=409;第二遍循环,r=x mod 10=409 mod 10=9,9 Mod 2 = 1,ret=JF,x=x\10=40;第三遍循环,r=x mod 10=40 mod 10=0,0 mod 2=0,ret=JFa,x=x\10=4;第四遍循环,r=x mod 10=4 mod 10=4,4 Mod 2 =0,ret=JFae,故执行该程序段后,文本框Text1中显示的内容为JFae,故本题选A选项。
5.( )是程序的基本控制结构。
A.顺序结构 B.组合结构 C.循环结构 D.选择结构
【答案】ACD
【解析】
【详解】
本题主要考查程序的基本控制结构。程序的基本控制结构有顺序结构、循环结构 、选择结构,故本题选ACD选项。
6.下列有while循环结构的说法不正确的是( )
A.While循环格式一般为:While(表达式):语句或者语句组
B.执行过程中表达式一般是一个关系表达式或逻辑表达式;
C.表达式为真执行循环体;为假退出循环。
D.表达式为假执行循环体;为真退出循环。
【答案】D
【解析】
【分析】
【详解】
本题考查while循环结构
While循环格式一般为:While(表达式):语句或者语句组;执行过程中表达式一般是一个关系表达式或逻辑表达式;表达式为真执行循环体;为假退出循环。故本题选D选项
7.有关循环结构的说法不正确的是( )。
A.循环结构是算法的基本结构之一
B.有的的程序设计中没有循环结构
C.循环结构在程序设计有可能会有嵌套出现
D.在PYTHON 程序设计语言中循环结构一般使用IF语句实现。
【答案】D
【解析】
【分析】
【详解】
本题考查循环结构的相关知识点
在PYTHON 程序设计语言中循环结构一般使用for或while语句实现。故本题选D选项
8.有如下 VB 程序段:
Const n = 10
Dim a(1 To n) As Integer
Dim mid As Integer, L As Integer, R As Integer Randomize
a(1) = 10
For i = 2 To n
a(i) = a(i - 1) +Int(Rnd * 2) + 1
Next i
c = 0: L = 1: R = n: flag = False: Key = 11
Do While L <= R And Not flag
mid = Int((L + R) / 2 + 0.5)
c = c + 1
If a(mid) = Key Then
flag = True
ElseIf a(mid) > Key Then
R = mid - 1
Else
L = mid + 1
END If
Loop
执行该程序段后,变量 c 可能的值是( )
A.1 或 2 B.2 或 3 C.3 或 4 D.4 或 2
【答案】C
【解析】
【分析】
【详解】
本题考查VB程序段。由a(i) = a(i - 1) +Int(Rnd * 2) +1可知。后一项为前一项加上1或者2。a(1)=10,则a(2)=11,或a(2)=12。若a(2)=11,key=11,下方对分查找执行3次可以找到,c=3。若a(2)=12,则key=11数组中不存在,无法找到,c=4。故本题选C。
9.有如下VB程序段: .
i = 1
Do While i < = 6
a(i) = Int(Rnd* 10) + 1
If a(i)Mod 2 = I Mod 2 Then
i=i-1
Else If I Mod 2 = 0 Then
a(i) =a(i – 1) + a(i)
End If
i=i+1
Loop
执行该程序后,a(1)-a(6) 各元素不可能的值是( )
A.6,13, 8,11, 6, 17 B.8,11,4,5,8,17
C.8,9,8,17,10,11 D.6,13,6,9,4,9
【答案】A
【解析】
【分析】
【详解】
本题考查的是程序阅读能力。根据随机函数值的范围,可知数组a(i)初始值的范围为【1,10】之间的整数。a(i) Mod 2 = i Mod 2如果成立,则需要偶数位置偶数值或奇数位置奇数值。第一个If中的i = i - 1,不满足条件要重新产生值,所以结果是奇数位置偶数值,偶数位置奇数值。第二个if语句执行条件是该位置为偶数时,其值是前一项和当前值求和,再替换当前值。A选项中的最后17应是通过: 6+a (6)得到,但a (6)值不超过10,所以6 + a(6)一定小于17,故选A。
10.有如下VB程序段:
Dim i As Integer, s As Integer
i=0:s=1
Do While i <= 10
If (1) Then
s=s*2
End If
i=i+l
Loop
执行该程序后,输出s的值为64,则(1)处应填入( )
A.i\4 = 2 B.Sqr(i) = Int (Sqr(i)) C.i Mod 2 = 1 D.i Mod 2 = 0
【答案】D
【解析】
【分析】
【详解】
本题考查了学生程序阅读能力。由s=s*2=1*2*2*2*2*2*2=64可知,选择语句共执行了6次。i从0到10,i\4 = 2只有一个满足,故选项A错误;Sqr(i) = Int (Sqr(i))只有4、9两个满足,故选项B错误;i Mod 2 = 1,只有1、3、5、7、9满足,故选项C错误;i Mod 2 = 0,只有0、2、4、6、8、10满足,共6次,故选项D正确。
11.某对分查找算法的 VB 程序段如下:
n=0:i=1:j=8 key=Val(Text1.Text)
Do While i <=j
m=(i+j)\2
n=n+1
If key=d(m) Then Exit Do
If key > d(m) Then j=m-1 Else i=m+1
Loop
If i<=j Then s=Str(m-n) Else s=Str(n)
数组元素 d(1)到d(8)的值依次为87,75,50,44,36,24,15,8,输入某个key值,运行该程序段后,变量s 结果为 2,则输入key的值是( )
A.75 B.36 C.24 D.15
【答案】B
【解析】
【分析】
【详解】
本题考查对分查找。分析代码,变量s=2,如果是执行分支s=n 得2,需满足i>j,并且n=2,变量n是查找次数,即没找到key (i>j说明未找到)而且只找2次,这是不可能的,因此推出 s=2,应该是执行了分支s=m-n得2。第一次m=4,n=1,不成立,第二次,m=2或m=6,n=2,不成立,第三次, m=1或m=3或m=5或m=7,n=3。 (因此在 m=5,n=3的时候,找到了key,此时满足m-n=2,即key=a(5)=36,所以答案选择B。)第四次,m=8,n=4,不成立。
二、判断题
12.在循环中continue语句的作用是跳出循环的执行。(_____)
【答案】错
【解析】
【详解】
本题主要考查continue语句的作用。break是跳出循环的执行,continue是用于终止本次循环,故表述错误。
三、简答题
13.列举Python程序设计语言中,for循环和while循环的基本的格式。
【答案】for 循环结构的基本格式:
for 循环变量 in 列表:
语句或语句组
While循环格式:
While(表达式):
语句或者语句组
【解析】
【分析】
【详解】
本题考查循环结构的基本格式
四、操作题
14.某种编码以 4 位二进制码为一组,每组前两位表示方向,后两位表示距离。编写一个程序,将 编码翻译成方向和距离,距离值为每组编码后两位二进制码转换为十进制数的值。具体功能如下: 在文本框 Text1 中输入连续多组编码,单击“翻译”按钮 Commandl,结果显示在列表框 List1 中。 程序运行界面如图所示。
(1)要使程序运行时,文本框 Text1 的 Width 属性值为 2020,可在 Form_Load 事件过程中添加语句____(单选,填字母:A.Width=2020 / B.Text1.Width = 2020 / C.Width. Text1=2020)。
(2)实现上述功能的 VB 程序如下,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim s As String, c As String, d As String
Dim n As Integer, b1 As Integer, b2 As Integer, v As Integer, i As Integer
s = ____________
n = Len(s) : i = 1
Do While i <= n
c = Mid(s, i, 2)
If c = "00" Then
d = "东"
ElseIf c = "01" Then
d = "南"
ElseIf c = "10" Then
d = "西"
Else
d = "北"
End If
b1 = Val(Mid(s, i + 2, 1))
b2 = Val(Mid(s, i + 3, 1))
v = _______________'计算距离值
List1.AddItem d + "" + Str(v)
i = ______________
Loop
End Sub
(3)若文本框 Text1 中输入的内容为“1010”,单击“翻译”按钮,列表框 List1 中显示的内容 是_____。
【答案】B ① Text1.Text 或 Text ② b1 * 2 + b2 或 其他等价答案 ③ i + 4 或 其他等价答案 西 2
【解析】
【详解】
本题考查VB相关知识。(1)文本框Text1的Width属性值为2020,可在Form_Load事件过程中添加语句Text1.Width=2020,选B。(2)第一空,变量s从Text1得到。(3)第二空,计算距离值,故填入b1*2+b2。(4)第三空,题干指出每组前两位表示方向,后两位表示距离,故i=i+4。(5)若文本框Text1中输入的内容为1010,前两位10代表西,后两位是数字2,故列表框List1中显示的内容是西2。
15.小奕同学基于排序算法设计了一个数字矩阵排序的程序。程序界面如下图所示,在文本框中输入矩阵大小,点击“生成”按钮 Command1,在左侧列表框 List1 中输出一个长宽均为指定大小的随机整数矩阵, 随机整数范围为[1,99]。点击“排序”按钮 Command2,结果输出在右侧列表框 List2 中,奇数行从左到右依次递增,偶数行从右至左依次递增,且保持输出矩阵的长宽不变。
(1)实现上述功能的 VB 程序如下,显示数据用的Additem 是一种 (单选,填字母:A.属性名/B.事件名/C.方法名/D.过程名)。
(2)请在划线处填入合适的代码。
(3)程序中加框处代码有错,请改正。
Dim a(1 To 100) As Integer
Dim n As Integer
Function dq(s As String, L As Integer) As String '自定义对齐函数'在输入的字符串 s 前加若干空格,输出长度为 L 的字符串,代码略
End Function
Private Sub Command1_Click() '生成数字矩阵‘随机生成 n^2 个数字,存储在数组 a 中,代码略
‘以一行 n 个,共 n 行的格式显示在 List1 中,代码略
End Sub
Private Sub Command2_Click() '数字矩阵排序
Dim i As Integer, k As Integer, j As Integer, s As String Dim f As Boolean
List2.Clear f= True
For i = 1 To n ^ 2 Step n s = ""
For j = i To
k = n ^ 2
Do While ①
If a(k) < a(k - 1) Then
t = a(k): a(k) = a(k - 1): a(k - 1) = t
End If
k = k - 1
Loop
If f = True Then
s = s + " " + dq(Str(a(j)), 2)
Else
s = " " + dq(Str(a(j)), 2) + s
End If
Next j List2.AddItem s

Next i End Sub
【答案】(1)C
(2)①k>=j+ 1 ②f=Not f
(3) i+n-1
【解析】
【详解】
本题考查VB综合能力。(1)additem是一种方法名。(2)第一空,DO While循环是冒泡排序的内循环,根据题干,每次排序排第i行的n个数据,从a(j)到a(j+n-1)的排序,故填入k>=j+1。(3)第二空,f代表奇偶行,奇数行f为True,偶数行反之,故填入f=Not f。(4)每次排序排第i行的n个数据,加框处改为i+n-1。
16.输入一个十进制数n,转换成二进制,在划线处填空。实现上述功能的VB程序如下,请在划线处填入合适代码。
Private Sub Command1_Click()
Dim a As Integer, s As String
Dim n As Integer, t As Integer, v As Integer
n = Val(Text1.Text)
s = ""
Do While n > 0
a = ___________
n = _____________
s =_____________
Loop
Text2.Text = s
End Sub
【答案】n mod 2 n\2 str(a)+s
【解析】
【详解】
本题考查进制转换。十进制转二进制,对于整数部分,用被除数反复除以2,除第一次外,每次除以2均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。(1)题目中变量a应该为n除以2得到的余数,故第一空填入n mod 2。(2)n在完成一次除法得到余数后,应该进行一次取整数部分,所以第二空填入n=n\2。(3)变量s是最后的结果,要注意每次得到的余数应该放在结果变量的前面,采用倒序相加,故第三空填入str(a)+s。
试卷第1页,总3页4.4.2while循环的应用-粤教版(2019)高中信息技术必修一练习
学校:___________姓名:___________班级:___________考号:___________
一、选择题
1.某查找算法的部分VB程序代码如下:
i=1:j=8:k=0
key=15
Do While i<=j
k=k+1
m=Int((i+j)/2)
If keyLoop
数组元素a(1)到a(8)的数据依次是“14,15,15,17,28,30,37,40”,该程序执行完毕后,下列各变量的值不正确的是( )
A.i=4 B.m=2 C.j=3 D.k=3
2.有以下程序段:
i = 1;
s = 0;
while i < 7:
s = s + i;
i = i + 1;
if i == 5:
break;
print("1-7的累加值为:",s);
程序运行后输出的结果为:( )
A.10 B.15 C.21 D.死循环
3.有如下Visual Basic程序段:
Private Sub Command1_Click ()
Dim x As Integer,r As Integer, s As String
x = Val(Text1. Text): s =""
Do While x<>0
r=(x+1) Mod 2
s=Str(r)+s
x=x\2
Loop
Text2. Text = s
End Sub
该程序段运行后后,在文本框Text1中输入25,则文本框Text2显示的内容是( )
A.0 0 1 0 1 B.1 1 0 1 0 C.0 0 1 1 0 D.1 1 0 0 1
4.有如下VB程序段:
x = 4095 : s1 = "ABCDEFGHIJ" : s2 = "abcdefghij"
ret=""
Do While x > 0
r = x Mod 10
If r Mod 2 = 1 Then
ret = Mid(s1, r + 1, 1) & ret
Else
ret = ret & Mid(s2, r + 1, 1)
End If
x = x \ 10
Loop
Text1.Text = ret
执行该程序段后,文本框 Text1 中显示的内容为( )
A.JFae B.JFea C.eaJF D.EAfj
5.( )是程序的基本控制结构。
A.顺序结构 B.组合结构 C.循环结构 D.选择结构
6.下列有while循环结构的说法不正确的是( )
A.While循环格式一般为:While(表达式):语句或者语句组
B.执行过程中表达式一般是一个关系表达式或逻辑表达式;
C.表达式为真执行循环体;为假退出循环。
D.表达式为假执行循环体;为真退出循环。
7.有关循环结构的说法不正确的是( )。
A.循环结构是算法的基本结构之一
B.有的的程序设计中没有循环结构
C.循环结构在程序设计有可能会有嵌套出现
D.在PYTHON 程序设计语言中循环结构一般使用IF语句实现。
8.有如下 VB 程序段:
Const n = 10
Dim a(1 To n) As Integer
Dim mid As Integer, L As Integer, R As Integer Randomize
a(1) = 10
For i = 2 To n
a(i) = a(i - 1) +Int(Rnd * 2) + 1
Next i
c = 0: L = 1: R = n: flag = False: Key = 11
Do While L <= R And Not flag
mid = Int((L + R) / 2 + 0.5)
c = c + 1
If a(mid) = Key Then
flag = True
ElseIf a(mid) > Key Then
R = mid - 1
Else
L = mid + 1
END If
Loop
执行该程序段后,变量 c 可能的值是( )
A.1 或 2 B.2 或 3 C.3 或 4 D.4 或 2
9.有如下VB程序段: .
i = 1
Do While i < = 6
a(i) = Int(Rnd* 10) + 1
If a(i)Mod 2 = I Mod 2 Then
i=i-1
Else If I Mod 2 = 0 Then
a(i) =a(i – 1) + a(i)
End If
i=i+1
Loop
执行该程序后,a(1)-a(6) 各元素不可能的值是( )
A.6,13, 8,11, 6, 17 B.8,11,4,5,8,17
C.8,9,8,17,10,11 D.6,13,6,9,4,9
10.有如下VB程序段:
Dim i As Integer, s As Integer
i=0:s=1
Do While i <= 10
If (1) Then
s=s*2
End If
i=i+l
Loop
执行该程序后,输出s的值为64,则(1)处应填入( )
A.i\4 = 2 B.Sqr(i) = Int (Sqr(i)) C.i Mod 2 = 1 D.i Mod 2 = 0
11.某对分查找算法的 VB 程序段如下:
n=0:i=1:j=8 key=Val(Text1.Text)
Do While i <=j
m=(i+j)\2
n=n+1
If key=d(m) Then Exit Do
If key > d(m) Then j=m-1 Else i=m+1
Loop
If i<=j Then s=Str(m-n) Else s=Str(n)
数组元素 d(1)到d(8)的值依次为87,75,50,44,36,24,15,8,输入某个key值,运行该程序段后,变量s 结果为 2,则输入key的值是( )
A.75 B.36 C.24 D.15
二、判断题
12.在循环中continue语句的作用是跳出循环的执行。(_____)
三、简答题
13.列举Python程序设计语言中,for循环和while循环的基本的格式。
四、操作题
14.某种编码以 4 位二进制码为一组,每组前两位表示方向,后两位表示距离。编写一个程序,将 编码翻译成方向和距离,距离值为每组编码后两位二进制码转换为十进制数的值。具体功能如下: 在文本框 Text1 中输入连续多组编码,单击“翻译”按钮 Commandl,结果显示在列表框 List1 中。 程序运行界面如图所示。
(1)要使程序运行时,文本框 Text1 的 Width 属性值为 2020,可在 Form_Load 事件过程中添加语句____(单选,填字母:A.Width=2020 / B.Text1.Width = 2020 / C.Width. Text1=2020)。
(2)实现上述功能的 VB 程序如下,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim s As String, c As String, d As String
Dim n As Integer, b1 As Integer, b2 As Integer, v As Integer, i As Integer
s = ____________
n = Len(s) : i = 1
Do While i <= n
c = Mid(s, i, 2)
If c = "00" Then
d = "东"
ElseIf c = "01" Then
d = "南"
ElseIf c = "10" Then
d = "西"
Else
d = "北"
End If
b1 = Val(Mid(s, i + 2, 1))
b2 = Val(Mid(s, i + 3, 1))
v = _______________'计算距离值
List1.AddItem d + "" + Str(v)
i = ______________
Loop
End Sub
(3)若文本框 Text1 中输入的内容为“1010”,单击“翻译”按钮,列表框 List1 中显示的内容 是_____。
15.小奕同学基于排序算法设计了一个数字矩阵排序的程序。程序界面如下图所示,在文本框中输入矩阵大小,点击“生成”按钮 Command1,在左侧列表框 List1 中输出一个长宽均为指定大小的随机整数矩阵, 随机整数范围为[1,99]。点击“排序”按钮 Command2,结果输出在右侧列表框 List2 中,奇数行从左到右依次递增,偶数行从右至左依次递增,且保持输出矩阵的长宽不变。
(1)实现上述功能的 VB 程序如下,显示数据用的Additem 是一种 (单选,填字母:A.属性名/B.事件名/C.方法名/D.过程名)。
(2)请在划线处填入合适的代码。
(3)程序中加框处代码有错,请改正。
Dim a(1 To 100) As Integer
Dim n As Integer
Function dq(s As String, L As Integer) As String '自定义对齐函数'在输入的字符串 s 前加若干空格,输出长度为 L 的字符串,代码略
End Function
Private Sub Command1_Click() '生成数字矩阵‘随机生成 n^2 个数字,存储在数组 a 中,代码略
‘以一行 n 个,共 n 行的格式显示在 List1 中,代码略
End Sub
Private Sub Command2_Click() '数字矩阵排序
Dim i As Integer, k As Integer, j As Integer, s As String Dim f As Boolean
List2.Clear f= True
For i = 1 To n ^ 2 Step n s = ""
For j = i To
k = n ^ 2
Do While ①
If a(k) < a(k - 1) Then
t = a(k): a(k) = a(k - 1): a(k - 1) = t
End If
k = k - 1
Loop
If f = True Then
s = s + " " + dq(Str(a(j)), 2)
Else
s = " " + dq(Str(a(j)), 2) + s
End If
Next j List2.AddItem s

Next i End Sub
16.输入一个十进制数n,转换成二进制,在划线处填空。实现上述功能的VB程序如下,请在划线处填入合适代码。
Private Sub Command1_Click()
Dim a As Integer, s As String
Dim n As Integer, t As Integer, v As Integer
n = Val(Text1.Text)
s = ""
Do While n > 0
a = ___________
n = _____________
s =_____________
Loop
Text2.Text = s
End Sub
试卷第1页,总3页