资源简介 4.4.2while循环的应用-粤教版(2019)高中信息技术必修一练习学校:___________姓名:___________班级:___________考号:___________一、选择题1.某查找算法的部分VB程序代码如下:i=1:j=8:k=0key=15Do While i<=jk=k+1m=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 Stringx = Val(Text1. Text): s =""Do While x<>0r=(x+1) Mod 2s=Str(r)+sx=x\2LoopText2. Text = sEnd 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 > 0r = x Mod 10If r Mod 2 = 1 Thenret = Mid(s1, r + 1, 1) & retElseret = ret & Mid(s2, r + 1, 1)End Ifx = x \ 10LoopText1.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 = 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) + 1Next ic = 0: L = 1: R = n: flag = False: Key = 11Do While L <= R And Not flagmid = Int((L + R) / 2 + 0.5)c = c + 1If a(mid) = Key Thenflag = TrueElseIf a(mid) > Key ThenR = mid - 1ElseL = mid + 1END IfLoop执行该程序段后,变量 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 = 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) 各元素不可能的值是( )A.6,13, 8,11, 6, 17 B.8,11,4,5,8,17C.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 Integeri=0:s=1Do While i <= 10If (1) Thens=s*2End Ifi=i+lLoop执行该程序后,输出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 <=jm=(i+j)\2n=n+1If key=d(m) Then Exit DoIf key > d(m) Then j=m-1 Else i=m+1LoopIf 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 StringDim n As Integer, b1 As Integer, b2 As Integer, v As Integer, i As Integers = ____________n = Len(s) : i = 1Do While i <= nc = Mid(s, i, 2)If c = "00" Thend = "东"ElseIf c = "01" Thend = "南"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 中显示的内容 是_____。【答案】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 IntegerDim n As IntegerFunction dq(s As String, L As Integer) As String '自定义对齐函数'在输入的字符串 s 前加若干空格,输出长度为 L 的字符串,代码略End FunctionPrivate Sub Command1_Click() '生成数字矩阵‘随机生成 n^2 个数字,存储在数组 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 Tok = 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 IfNext 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 StringDim n As Integer, t As Integer, v As Integern = Val(Text1.Text)s = ""Do While n > 0a = ___________n = _____________s =_____________LoopText2.Text = sEnd 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=0key=15Do While i<=jk=k+1m=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=32.有以下程序段: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 Stringx = Val(Text1. Text): s =""Do While x<>0r=(x+1) Mod 2s=Str(r)+sx=x\2LoopText2. Text = sEnd 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 14.有如下VB程序段:x = 4095 : s1 = "ABCDEFGHIJ" : s2 = "abcdefghij"ret=""Do While x > 0r = x Mod 10If r Mod 2 = 1 Thenret = Mid(s1, r + 1, 1) & retElseret = ret & Mid(s2, r + 1, 1)End Ifx = x \ 10LoopText1.Text = ret执行该程序段后,文本框 Text1 中显示的内容为( )A.JFae B.JFea C.eaJF D.EAfj5.( )是程序的基本控制结构。A.顺序结构 B.组合结构 C.循环结构 D.选择结构6.下列有while循环结构的说法不正确的是( )A.While循环格式一般为: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) + 1Next ic = 0: L = 1: R = n: flag = False: Key = 11Do While L <= R And Not flagmid = Int((L + R) / 2 + 0.5)c = c + 1If a(mid) = Key Thenflag = TrueElseIf a(mid) > Key ThenR = mid - 1ElseL = mid + 1END IfLoop执行该程序段后,变量 c 可能的值是( )A.1 或 2 B.2 或 3 C.3 或 4 D.4 或 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) 各元素不可能的值是( )A.6,13, 8,11, 6, 17 B.8,11,4,5,8,17C.8,9,8,17,10,11 D.6,13,6,9,4,910.有如下VB程序段:Dim i As Integer, s As Integeri=0:s=1Do While i <= 10If (1) Thens=s*2End Ifi=i+lLoop执行该程序后,输出s的值为64,则(1)处应填入( )A.i\4 = 2 B.Sqr(i) = Int (Sqr(i)) C.i Mod 2 = 1 D.i Mod 2 = 011.某对分查找算法的 VB 程序段如下:n=0:i=1:j=8 key=Val(Text1.Text)Do While i <=jm=(i+j)\2n=n+1If key=d(m) Then Exit DoIf key > d(m) Then j=m-1 Else i=m+1LoopIf 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 StringDim n As Integer, b1 As Integer, b2 As Integer, v As Integer, i As Integers = ____________n = Len(s) : i = 1Do While i <= nc = Mid(s, i, 2)If c = "00" Thend = "东"ElseIf c = "01" Thend = "南"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() '生成数字矩阵‘随机生成 n^2 个数字,存储在数组 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 Tok = 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 IfNext j List2.AddItem s②Next i End Sub16.输入一个十进制数n,转换成二进制,在划线处填空。实现上述功能的VB程序如下,请在划线处填入合适代码。Private Sub Command1_Click()Dim a As Integer, s As StringDim n As Integer, t As Integer, v As Integern = Val(Text1.Text)s = ""Do While n > 0a = ___________n = _____________s =_____________LoopText2.Text = sEnd Sub试卷第1页,总3页 展开更多...... 收起↑ 资源列表 4.4.2while循环的应用-粤教版(2019)高中信息技术必修一练习(原卷版).docx 4.4.2while循环的应用-粤教版(2019)高中信息技术必修一练习(解析版).docx