4.4.2while循环的应用-粤教版(2019)高中信息技术必修一练习(原卷版).docx
4.4.2while循环的应用-粤教版(2019)高中信息技术必修一练习学校:_姓名:_班级:_考号:_一、选择题1某查找算法的部分VB程序代码如下:i=1:j=8:k=0key=15Do While i<=j k=k+1 m=Int(i+j)/2) If key<a(m)Then j=m-1 Else i=m+1Loop数组元素a(1)到a(8)的数据依次是“14,15,15,17,28,30,37,40”,该程序执行完毕后,下列各变量的值不正确的是( )Ai=4Bm=2Cj=3Dk=32有以下程序段:i = 1;s = 0;while i < 7: s = s + i; i = i + 1; if i = 5: break; print("1-7的累加值为:",s);程序运行后输出的结果为:( )A10B15C21D死循环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=x2 Loop Text2. Text = sEnd Sub该程序段运行后后,在文本框Text1中输入25,则文本框Text2显示的内容是( )A0 0 1 0 1B1 1 0 1 0C0 0 1 1 0D1 1 0 0 14有如下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 10Loop Text1.Text = ret 执行该程序段后,文本框 Text1 中显示的内容为( )AJFaeBJFeaCeaJFDEAfj5( )是程序的基本控制结构。A顺序结构B组合结构C循环结构D选择结构6下列有while循环结构的说法不正确的是( )AWhile循环格式一般为:While(表达式):语句或者语句组B执行过程中表达式一般是一个关系表达式或逻辑表达式;C表达式为真执行循环体;为假退出循环。D表达式为假执行循环体;为真退出循环。7有关循环结构的说法不正确的是( )。A循环结构是算法的基本结构之一B有的的程序设计中没有循环结构C循环结构在程序设计有可能会有嵌套出现D在PYTHON 程序设计语言中循环结构一般使用IF语句实现。8有如下 VB 程序段:Const n = 10Dim a(1 To n) As IntegerDim mid As Integer, L As Integer, R As Integer Randomizea(1) = 10For i = 2 To na(i) = a(i - 1) +Int(Rnd * 2) + 1 Next ic = 0: L = 1: R = n: flag = False: Key = 11 Do While L <= R And Not flagmid = Int(L + R) / 2 + 0.5) c = c + 1If a(mid) = Key Then flag = TrueElseIf a(mid) > Key Then R = mid - 1ElseL = mid + 1 END If Loop执行该程序段后,变量 c 可能的值是( )A1 或 2B2 或 3C3 或 4D4 或 29有如下VB程序段: .i = 1Do While i < = 6a(i) = Int(Rnd* 10) + 1If a(i)Mod 2 = I Mod 2 Theni=i-1Else If I Mod 2 = 0 Thena(i) =a(i 1) + a(i)End Ifi=i+1Loop执行该程序后,a(1)-a(6) 各元素不可能的值是( )A6,13, 8,11, 6, 17B8,11,4,5,8,17C8,9,8,17,10,11D6,13,6,9,4,910有如下VB程序段:Dim i As Integer, s As Integeri=0:s=1Do While i <= 10If (1) Then s=s*2End Ifi=i+lLoop执行该程序后,输出s的值为64,则(1)处应填入( )Ai4 = 2BSqr(i) = Int (Sqr(i)Ci Mod 2 = 1Di Mod 2 = 011某对分查找算法的 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+1Loop 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的值是( )A75B36C24D15二、判断题12在循环中continue语句的作用是跳出循环的执行。(_)三、简答题13列举Python程序设计语言中,for循环和while循环的基本的格式。四、操作题14某种编码以 4 位二进制码为一组,每组前两位表示方向,后两位表示距离。编写一个程序,将 编码翻译成方向和距离,距离值为每组编码后两位二进制码转换为十进制数的值。具体功能如下: 在文本框 Text1 中输入连续多组编码,单击“翻译”按钮 Commandl,结果显示在列表框 List1 中。 程序运行界面如图所示。(1)要使程序运行时,文本框 Text1 的 Width 属性值为 2020,可在 Form_Load 事件过程中添加语句_(单选,填字母:AWidth=2020 / BText1.Width = 2020 / CWidth. Text1=2020)。(2)实现上述功能的 VB 程序如下,请在划线处填入合适的代码。Private Sub Command1_Click()Dim s As String, c As String, d As StringDim n As Integer, b1 As Integer, b2 As Integer, v As Integer, i As Integer s = _n = Len(s) : i = 1Do While i <= nc = Mid(s, i, 2)If c = "00" Then d = "东"ElseIf c = "01" Then d = "南"ElseIf c = "10" Thend = "西"Elsed = "北"End Ifb1 = Val(Mid(s, i + 2, 1)b2 = Val(Mid(s, i + 3, 1)v = _'计算距离值List1.AddItem d + "" + Str(v)i = _LoopEnd 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 IntegerDim n As IntegerFunction dq(s As String, L As Integer) As String '自定义对齐函数'在输入的字符串 s 前加若干空格,输出长度为 L 的字符串,代码略End FunctionPrivate Sub Command1_Click() '生成数字矩阵随机生成 n2 个数字,存储在数组 a 中,代码略以一行 n 个,共 n 行的格式显示在 List1 中,代码略End SubPrivate Sub Command2_Click() '数字矩阵排序Dim i As Integer, k As Integer, j As Integer, s As String Dim f As BooleanList2.Clear f= TrueFor i = 1 To n 2 Step n s = ""For j = i To k = n 2Do While If a(k) < a(k - 1) Thent = a(k): a(k) = a(k - 1): a(k - 1) = tEnd Ifk = k - 1LoopIf f = True Thens = s + " " + dq(Str(a(j), 2)Elses = " " + dq(Str(a(j), 2) + sEnd If Next j List2.AddItem s Next i End Sub16输入一个十进制数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 > 0a = _ n = _ s =_ Loop Text2.Text = s End Sub