考点11 For循环与Do循环《Visual Basic程序设计》内蒙古(对口招生)计算机类 知识点讲解

2026-10-12
| 11页
| 1人阅读
| 0人下载
精品

内容正文:

内蒙古自治区(计算机类)对口招生 《Visual Basic程序设计》复习讲义 模块 6 循环结构程序设计 考点 11 For循环与Do循环 【考纲要求】 1. 掌握For循环; 2. 掌握Do循环。 【知识网络】 【知识和技能要点】 一、For循环 1. For…Next 循环结构的格式 当可以预知循环的次数时,使用 For…Next 循环较为方便。它的格式是:先写关键字 For 与循环变量,用等号连接初值,再用关键字 To 连接终值,必要时加上一个 Step 子句指定步长;下面书写循环体,最后以 Next 加上循环变量名结束。循环变量必须是数值型变量,循环计数变量不能是数组元素;初值、终值和步长可以是数值表达式,也可引用数组元素。例如 For i = a(0) To a(1) Step a(2);省略 Step 时步长默认为 1。 2. For…Next 循环的执行过程 执行时先把初值赋给循环变量,然后判断是否满足循环条件:步长的值大于 0 时,循环变量不超过终值就继续循环;步长的值小于 0 时,循环变量不小于终值才继续循环。每执行完一次循环体,遇到 Next 语句就把循环变量增加一个步长,再回到开头重新判断。需要留意的是,当初值与终值相等时,无论步长是正数还是负数,循环体都会被执行一次。 3. 循环次数的计算 For 循环的次数不必等到程序运行完才知道,可以用公式 n = INT((终值−初值)/步长+1) 事先算出来。例如 For i = 1 To 10 Step 2 中,i 依次取 1、3、5、7、9,共循环 5 次;For i = 10 To 1 Step −2 中,i 依次取 10、8、6、4、2,同样是 5 次。掌握了这个公式,就能在编写程序前判断循环次数是否合乎需要。 4. 累加与累乘的编程方法 累加问题的关键,是设置一个用来存放"和"的变量,在循环中依次把一个有规律变化的项加入其中。这个变量必须在循环开始之前清零,否则会把上次的结果带进来。累乘问题与累加的差别除了运算不同之外,用来表示积的变量其初值应当设为 1,因为 1 不影响相乘的结果。有些累加项或累乘项与循环变量没有关系,这时可以另设一个变量来表示它。 二、Do循环 1. Do While…Loop 与 Do Until…Loop Do…Loop 循环有两种写法把条件写在前面。一种是 Do While <条件>,条件为 True 时继续执行循环体,为 False 时退出循环;另一种是 Do Until <条件>,条件为 False 时继续执行,一旦条件变为 True 就退出。两者都是先判断条件再执行循环体,因此循环体有可能一次也不执行。编写时要在循环体内安排改变条件的语句,程序才能正常结束。 2. Do…Loop While 与 Do…Loop Until 另外两种写法把条件放在后面。Do 与 Loop While <条件> 配对时,程序先执行一次循环体,遇到 Loop While 再判断条件,为 True 则返回继续执行;Do 与 Loop Until <条件> 配对时,先执行一次循环体,条件为 False 时返回继续,变为 True 时结束。由于是先执行后判断,这两种格式的循环体至少要执行一次,适合那些无论如何都得先做一遍的场合。 3. While…Wend 循环结构 While…Wend 是另一种条件型循环,由关键字 While 与条件开头,循环体写在中间,最后以关键字 Wend 结束。执行时先计算条件的值,为 True 就执行循环体,遇到 Wend 再返回去重新测试条件,直到条件不成立为止。条件通常是关系表达式或逻辑表达式,也可以是数值表达式与字符表达式。循环体内一般应当有能够改变条件的语句,否则就会形成死循环;若一开始条件就不成立,循环体一次也不会执行。 4. 循环的嵌套 在一个循环体内再写一个完整的循环结构,就称为循环的嵌套;内嵌的循环中还可以继续嵌套,嵌套了几层就是几重循环。执行时,每执行一次外层循环,内层循环都要从头到尾完整地走一遍。写嵌套结构时要注意三点:内层循环应当完整地套在外层循环里面,两者不能互相交叉;内层与外层应当使用不同的循环控制变量;Exit For 与 Exit Do 只能退出它所在的最内层循环。 【真题】 2023年真题|第127题 执行下面的程序段后,for 语句的循环次数为________。 a = 5 for i = -3 to 3 step 2 a = a + 1 print a next i 【答案】4 【解析】For 循环的次数可以用公式 INT((终值-初值)/步长+1) 算出,代入得 INT((3-(-3))/2+1)=INT(4)=4。也可以把循环变量依次取值:i 从 -3 开始,每次增加步长 2,依次取 -3、-1、1、3,共 4 个值,所以循环体执行 4 次。 2022年真题|程序填空题第127题 在窗体上有一个命令按钮 Command1,单击 Command1 在窗体上打印出如下图形,请补充完善程序。 5 456 34567 2345678 123456789 程序代码如下: Private Sub Command1_Click() Dim a As String a = [5]________ For i = 1 To [6]________ Print Space(6 - i); Mid(a, 6 - i, 2 * i - 1) Next i End Sub 【答案】[5] "123456789";[6] 5 【解析】要打印的图形中出现的数字全部来自字符串 "123456789",因此应先把这一串字符赋给变量 a,故 [5] 处填 "123456789"。观察图形可知打印出来的共有 5 行,循环变量 i 应从 1 取到 5,故 [6] 处填 5;每一行先用 Space(6-i) 输出若干空格把起始位置右移,再用 Mid 从字符串的相应位置截取 2*i-1 个字符,恰好构成逐行加宽的效果。 2023年真题|第129题 下列程序是在窗体上打印数字金字塔的程序,请将程序补充完整。 Private Sub Command1_Click() For i = 1 To [4]________ Print Tab(30 - 3 * i); For j = 1 To [5]________ Print [6]________ Next j For k = i - 1 To 1 Step -1 Print [7]________ Next k Print Next i End Sub 【答案】[4] 9; [5] i; [6] j; [7] k; 【解析】数字金字塔共 9 行,外层的循环变量 i 应从 1 取到 9,故 [4] 处填 9。每一行的前半部分是上升的数字,个数与行号相同,即从 1 打印到 i,故 [5] 处填 i、[6] 处填 j(打印循环变量 j 的当前值)。后半部分是下降的数字,从 i-1 递减到 1,循环变量为 k,故 [7] 处填 k。 2025年真题|第128题 下面是在窗体上显示由 * 组成的正等腰三角形的程序。单击窗体上的按钮 Command1,弹出一输入框,用户输入三角形的高(星号的行数),确定后便在窗体上显示出一个等腰三角形。请补充完善程序。 Private Sub Command1_Click() Dim n As Integer, i As Integer, j As Integer Dim str As String str = InputBox("请输入三角形的高:", "输入") n = CInt(str) For i = 1 To [3]________ str = "" For j = 1 To [4]________ str = str & " " Next For j = 1 To [5]________ str = str & "*" Next Print [6]________ Next End Sub 【答案】[3] n;[4] n - i;[5] 2 * i - 1;[6] str 【解析】输入的高保存在变量 n 中,外层循环要逐行打印,故 [3] 处填 n。等腰三角形每行前面的空格数随行号增大而减少,第 i 行的空格数为 n-i,故 [4] 处填 n - i。每行中星号的个数为 2*i-1,故 [5] 处填 2 * i - 1。每行先拼出空格再拼出星号,结果存放在变量 str 中,最后把它输出,故 [6] 处填 str。 2026年真题|第128题 将 0.2mm 的白纸进行对折 n 次后,厚度可达 1m,单击窗体上的命令按钮 Command1 可完成计算 n 的值。程序设计如下,请补充完善程序。 Private Sub Command1_Click() Dim n As Single, h As Single h = 0.2 n = 0 Do While [8]________ n = [9]________ h = [10]________ [11]________ Print "0.2mm 的纸对折"; n; "次后厚度可达 1 米" End Sub 【答案】[8] h < 1000;[9] n + 1;[10] h * 2;[11] Loop 【解析】厚度以毫米为单位,1 米等于 1000 毫米,所以只要厚度还没有达到 1000 就要继续对折,[8] 处填 h < 1000。每对折一次,次数增加 1,故 [9] 处填 n + 1;厚度变为原来的两倍,故 [10] 处填 h * 2。Do While 循环必须以 Loop 结束,故 [11] 处填 Loop。程序运行后可算出对折 13 次时厚度达到 1638.4 毫米,超过 1 米。 【练习题】 一、填空题 1. For…Next 循环的格式中,用来指定循环变量步长的是________子句;若省略它,步长默认为________。 【答案】Step;1 【解析】Step 子句写在终值之后,用来指明循环变量每次改变的大小,例如 Step 2 表示每次增加 2。若省略这一子句,步长按 1 处理,循环变量每执行一次循环体就增加 1。 2. For 循环的循环次数可以用公式 n = ________ 计算。 【答案】INT((终值-初值)/步长+1) 【解析】For 循环的次数取决于初值、终值与步长三者,可以事先用公式算出。例如 For i = 1 To 10 Step 2,代入得 INT((10-1)/2+1)=INT(5.5)=5,与循环变量依次取 1、3、5、7、9 的结果一致。 3. 在 For 循环中可以用________语句提前退出循环;在 Do 循环中可以用________语句提前退出循环。 【答案】Exit For;Exit Do 【解析】Exit For 与 Exit Do 都能让程序提前跳出循环,常与 If 语句配合使用:在循环体里判断某个条件,一旦条件成立就立即退出。需要注意的是,它们只能退出所在的最内层循环。 4. Do While…Loop 循环在条件为________时继续执行;Do Until…Loop 循环在条件为________时继续执行。 【答案】True;False 【解析】两种写法把条件放在循环的开头:While 表示条件为真时继续循环,Until 表示条件为假时继续循环,二者对条件的处理正好相反。它们都是先判断后执行,初始条件不成立时循环体一次也不执行。 5. Do…Loop While 循环与 Do While…Loop 循环的区别是:前者先执行一次________,然后再判断条件。 【答案】循环体 【解析】Do While…Loop 把条件写在前面,先判断后执行;Do…Loop While 把条件写在 Loop 之后,先执行一次循环体再判断。因此后者的循环体至少会执行一次,适合无论如何都要先做一遍的场合。 6. 一个循环体内又包含另一个完整的循环结构,称为________。 【答案】循环的嵌套 【解析】在一个循环的循环体内再写一个完整的循环,就构成循环的嵌套,内嵌的循环中还可以继续嵌套,嵌套几层就叫几重循环。执行时每执行一次外层循环,内层循环都要从头到尾完整地执行一遍。 7. 在嵌套循环中,内层循环与外层循环应当使用不同的________。 【答案】循环控制变量 【解析】嵌套循环的内层与外层必须使用不同的循环变量,否则内层循环对循环变量的修改会干扰外层循环的判断,程序很容易出错。此外内层循环还必须完全包含在外层循环之中,不能相互交叉。 二、单项选择题 1. For 循环的格式中,Step 子句用来指定( ) A. 循环变量的初值 B. 循环变量的终值 C. 循环变量的步长 D. 循环的次数 【答案】C 【解析】Step 子句出现在终值之后,用来指定循环变量每次改变的幅度,也就是步长。初值由等号后面的数值给出,终值写在关键字 To 之后,循环的次数则由初值、终值与步长共同决定,并不直接在语句中写出。 2. 若 For 语句中省略 Step 子句,则默认的步长为( ) A. 0 B. -1 C. 由初值决定 D. 1 【答案】D 【解析】For 语句中省略 Step 子句时,循环变量每次增加 1。若步长取 0,循环变量始终不变,循环条件永远成立,会形成死循环;步长取 -1 时循环变量递减,与省略时的效果完全不同。 3. 关于 For 循环的执行条件,下列说法正确的是( ) A. 步长为正时,循环变量不超过终值时继续循环 B. 步长为正时,循环变量不小于终值时继续循环 C. 与步长的正负无关 D. 只有循环变量等于终值时才执行循环体 【答案】A 【解析】步长为正数时循环变量递增,只要它不超过终值就继续循环;步长为负数时循环变量递减,要不小于终值才继续循环。因此循环条件与步长的正负直接相关,并不是只有等于终值时才执行循环体。 4. 语句 For i = 1 To 10 Step 2 的循环次数是( ) A. 6 B. 5 C. 9 D. 10 【答案】B 【解析】循环变量 i 的初值为 1、终值为 10、步长为 2,依次取 1、3、5、7、9 五个值,因此循环体执行 5 次。用公式计算也能得到同样结果:INT((10-1)/2+1)=INT(5.5)=5。 5. 在 For 循环中,用来提前退出循环的语句是( ) A. Exit For B. Exit Do C. End D. Stop 【答案】A 【解析】Exit For 用于从 For 循环中提前跳出,通常与 If 语句配合,在满足某个条件时终止循环。Exit Do 用于 Do 循环,End 用于结束整个程序,Stop 用于暂停程序的执行,都不能用来退出 For 循环。 6. Do While…Loop 循环中,循环继续执行的条件是( ) A. 条件为 False B. 循环体已执行一次 C. 条件为 True D. 与条件无关 【答案】C 【解析】Do While…Loop 把条件写在 While 之后,程序先判断条件的值,为 True 时执行循环体,遇 Loop 再返回去重新判断,条件变为 False 时退出循环。因此条件为真是循环继续的前提。 7. Do Until…Loop 循环与 Do While…Loop 循环的区别在于( ) A. 前者在条件为 False 时继续循环 B. 前者在条件为 True 时继续循环 C. 两者完全相同 D. 前者不能使用 Exit Do 【答案】A 【解析】Do While…Loop 在条件为真时继续循环,Do Until…Loop 则相反,在条件为假时继续循环,条件一旦变为真就退出。两者对条件的处理正好相反,但都属于先判断后执行的写法,也都可以用 Exit Do 提前退出。 8. Do…Loop While 与 Do While…Loop 的主要区别是( ) A. 前者先判断条件再执行循环体 B. 两者完全相同 C. 前者不能嵌套 D. 前者先执行一次循环体再判断条件 【答案】D 【解析】两者的差别在于条件与循环体的先后:Do While…Loop 先判断条件再执行循环体,循环体可能一次也不执行;Do…Loop While 把条件写在 Loop 之后,先执行一次循环体再判断,循环体至少执行一次。 9. While…Wend 循环中,若循环体内没有改变条件的语句,则可能( ) A. 循环一次就结束 B. 形成死循环 C. 编译出错 D. 自动跳出循环 【答案】B 【解析】While…Wend 每遇到 Wend 就返回去重新测试条件,若循环体内没有任何语句能改变条件的取值,条件将永远保持原来的结果,循环便一直进行下去,形成死循环。因此在循环体内安排改变条件的语句十分必要。 10. 关于循环的嵌套,下列说法正确的是( ) A. 内层循环可以和外层循环交叉 B. 内层循环必须完全包含在外层循环中 C. 嵌套层数最多为两层 D. 内外层可以使用同一个循环变量 【答案】B 【解析】嵌套循环要求内层循环完整地包含在外层循环之中,不能出现两个循环相互交叉的情形,否则循环的起止配对被破坏,程序会出错。嵌套的层数并没有限制,但内层与外层必须使用不同的循环变量。 11. 在双重循环中执行 Exit For 语句,将( ) A. 退出所有各层循环 B. 只退出最外层循环 C. 结束整个程序 D. 只退出最内层循环 【答案】D 【解析】Exit For 与 Exit Do 只能终止它所在的那一层循环,也就是最内层循环;外层循环仍会继续执行。若确实需要一次性跳出所有各层循环,通常要借助标志变量或在每层循环中都安排相应的判断。 12. For 循环的循环次数可以用公式( )计算。 A. (终值-初值)/步长 B. INT((终值-初值)/步长) C. INT((终值-初值)/步长+1) D. 终值-初值+1 【答案】C 【解析】计算循环次数时要先用终值减初值、再除以步长,然后取整并加 1,即 INT((终值-初值)/步长+1)。只除以步长而不加 1 会漏算一个取值;写成终值减初值再加 1 则没有考虑步长的影响。 三、程序填空题 1. 下列程序计算 s = 1 + 2 + 3 + … + 100。请补充完整下列程序代码。 Private Sub Command1_Click() Dim i As Integer, s As Integer s = [1]________ For i = 1 To [2]________ s = s + [3]________ Next i Print s End Sub 【答案】[1] 0;[2] 100;[3] i 【解析】累加问题要把用来存放"和"的变量在循环之前清零,否则会把上次的结果带进来,故 [1] 处填 0。题目要求加到 100,循环变量 i 应从 1 取到 100,故 [2] 处填 100。每执行一次循环体,要把当前的循环变量值加入累加变量,故 [3] 处填 i。 2. 下列程序用 Do While…Loop 计算 1 + 3 + 5 + … + 99 的值。请补充完整下列程序代码。 Private Sub Command1_Click() Dim i As Integer, s As Integer i = 1 s = 0 Do While i [1]________ 100 s = s + i i = i + 2 [2]________ Print s End Sub 【答案】[1] <;[2] Loop 【解析】要累加的是 1 到 99 之间的奇数,循环变量 i 从 1 开始每次增加 2,只要它还没有达到 100 就继续累加,故 [1] 处填小于号 <。Do While 循环必须以 Loop 结束,故 [2] 处填 Loop;循环体内 i = i + 2 正是那个能够改变条件的语句,保证循环可以正常结束。 原创精品资源学科网独家享有版权,侵权必究 学科网(北京)股份有限公司 $

资源预览图

考点11 For循环与Do循环《Visual Basic程序设计》内蒙古(对口招生)计算机类 知识点讲解
1
考点11 For循环与Do循环《Visual Basic程序设计》内蒙古(对口招生)计算机类 知识点讲解
2
考点11 For循环与Do循环《Visual Basic程序设计》内蒙古(对口招生)计算机类 知识点讲解
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。