考点13 循环结构常用算法实例《Visual Basic程序设计》内蒙古(对口招生)计算机类 知识点讲解

2026-10-12
| 16页
| 2人阅读
| 0人下载
精品

内容正文:

内蒙古自治区(计算机类)对口招生 《Visual Basic程序设计》复习讲义 模块 6 循环结构程序设计 考点 13 循环结构常用算法实例 【考纲要求】 1. 掌握常用算法实例。 【知识网络】 【知识和技能要点】 一、累加与累乘类算法 1. 累加与累乘类算法的识别与变式 累加与累乘是最常见的两类循环算法:前者把若干个有规律变化的项加起来,后者把它们乘起来。求若干个数之和、求平均值属于累加,求阶乘、求若干个数之积属于累乘。有些题目的项本身就是一个分数,例如求 1 + 1/2! + 1/3! + … + 1/9!,这时要在循环中先算出某一项的阶乘,再取它的倒数加入总和,因而必须用双重循环:内层求阶乘,外层累加各项的倒数。 2. 嵌套循环中的累加 当每一项本身又是一段累加时,例如求 1 + (1+2) + (1+2+3) + … + (1+2+…+n),就要用双重循环来完成:内层循环算出当前这一项的值,每进入内层之前应当先把存放该项的变量清零;外层循环再把内层的每一项累加到总和之中。两层若混用同一个变量,前面的结果就会被后面的计算冲掉。 二、递推类算法 1. 递推(倒推)的思路 有些问题已知最后的结果,要求最初的量,例如"猴子吃桃""水缸取水",按正向推算往往无从下手,可以把过程倒过来逐次推算。倒推时要把已知的末态作为循环变量的初值,循环体中写出与正向过程相反的运算式,循环的次数由题目所述过程的次数决定。倒序循环时不要忘记把 Step 写成 −1,否则循环体一次也不会执行。 2. 递推中的运算式还原 递推题的空位多落在循环的初值、终值以及循环体的运算式上。写循环体时要先弄清正向运算与逆向运算的对应关系:正向若是"每次取出剩余量的一半再加一升",逆向就要把剩余量先加一、再乘以二;正向若是"每天吃掉剩下的一半又一个",逆向同样要把剩余的加一之后再乘以二。把正向的每一步反着写出来,递推式也就确定了。 三、枚举与穷举类算法 1. 多重循环穷举 把问题的所有可能情况一一列举、逐一检验,这种方法称为穷举。题目里有几类取值不同的量,就用几重循环,每重循环各控制一个量的取值。写多重循环时要注意语句的配套:内层的 For 与 Next 必须成对出现,各层的 Next 要按由内向外的顺序紧跟在自己那一层的 For 之后依次书写,内层的 Next 写在前面,外层的 Next 写在后面。 2. 穷举范围与条件筛选 穷举时各重循环的初值与终值应当按题目给出的取值范围来确定:范围过小会漏掉解,范围过大只是多做些无用的判断。例如用 100 元购买单价分别为 1 元、5 元、10 元的三种物品且每种至少买一件,三个循环变量都从 1 开始,上界分别取 100、20 与 10。若题干还要求几个量之间的大小关系,可以把内层的初值取为"外层的当前值加 1",用循环范围本身保证次序。 四、素数判断类算法 1. 素数判断的思路与写法 判断 n 是否为素数,就是看它除 1 和自身之外还有没有别的因数。程序通常设一个标志变量记录结论,先把标志置为表示"是素数"的取值;再让循环变量 m 从 2 试到 n 的算术平方根,只要出现 n Mod m = 0,就说明找到了因数,把标志改为表示"不是素数"的取值,并用 Exit For 提前退出循环。最后按标志的取值输出结论。判断到平方根即可,不必一直试到 n−1。 五、随机数的产生与统计 1. 随机数的产生与条件统计 用 Rnd 函数可以产生随机数,要得到 [A,B] 区间内的随机整数,可以写成 Int(Rnd*(B-A+1))+A,使用之前最好先执行一次 Randomize。统计满足条件的个数时,要先设一个计数变量并在循环之前把它清零,循环中用"若条件成立则计数变量加 1"的方式累加。若希望输出的数每行排满固定的个数,可以让计数变量与该个数求余,余数为 0 时输出一个空行实现换行。 【真题】 2022年真题|程序填空题第128题 下面程序的功能是计算 s = 1 + 1/2! + 1/3! + … + 1/9! 的值。请补充完整程序代码。 Private Sub Command1_Click() Dim n As Integer, f As Integer, s As Single n = 9 s = 0 For i = 1 To n f = [7]________ For j = 1 To [8]________ [9]________ = f * j Next j s = [10]________ + 1/f Next i Print s End Sub 【答案】[7] 1;[8] i;[9] f;[10] s 【解析】每一项的分母是阶乘,需要在循环中用累乘求出。求 i 的阶乘应从 1 开始累乘,故 [7] 处填 1;内层循环要从 1 乘到 i,故 [8] 处填 i;乘积存放的变量是 f,每次把 f 与 j 相乘后仍赋回 f,故 [9] 处填 f。累加变量是 s,把每一项的倒数加入总和,故 [10] 处填 s。 2022年真题|程序填空题第129题 富翁与陌生人约定:陌生人每天给富翁十万元,富翁第一天给一分钱、以后每天给的钱是前一天的两倍,直到 30 天。单击命令按钮后计算这一个月中双方各给出多少钱。请补充代码完成程序。 Private Sub Command1_Click() Dim m As Double, f As Double, t As Double m = 0 f = 0 t = 0.01 For i = 1 To [11]________ m = m + 100000 f = f + t t = t * 2 Next i Print "陌生人共给富翁"; [12]________; "元" Print "富翁共给陌生人"; [13]________; "元" End Sub 【答案】[11] 30;[12] m;[13] f 【解析】题目说明契约持续一个月即 30 天,故 [11] 处填 30。变量 m 累计的是陌生人每天给的十万元,输出时应当引用 m,故 [12] 处填 m;变量 f 累计的是富翁每天给出的钱,输出时应当引用 f,故 [13] 处填 f。t 是当天应付的钱数,每次循环后翻倍,正对应"每天是前一天的两倍"。 2023年真题|第128题 下列程序是输出 50 以内满足勾股定理关系的整数组合的程序代码。请将代码补充完整。 Private Sub Command1_Click() For a = 1 To 50 For b = 1 To 50 For c = 1 To 50 If a ^ 2 + b ^ 2 = c ^ 2 And a < b And b < c Then Print a; b; c End If Next [1]________ Next [2]________ Next [3]________ End Sub 【答案】[1] c;[2] b;[3] a 【解析】本题是三重循环的穷举,三层循环变量依次为 a、b、c。Next 语句必须与各自的 For 配套,并且按照由内向外退出:最内层是 c 的循环,接着是 b 的循环,最外层是 a 的循环。故 [1] 处填 c、[2] 处填 b、[3] 处填 a。 2023年真题|第130题 下列程序的功能是判断一个正整数是否为素数,请将程序补充完整。 Private Sub Command1_Click() Dim n As Integer n = InputBox("请输入一个大于3的正整数") s = 0 For m = 3 To [8]________ If n Mod m = [9]________ Then s = 1 Exit For End If Next m If s = [10]________ Then Print n; "是一个素数" Else Print n; "不是一个素数" End If End Sub 【答案】[8] Sqr(n)(填 n − 1 亦可);[9] 0;[10] 0 【解析】判断 n 是否为素数,只需检查它有没有 2 以上的因数,而两个因数必定有一个不超过 n 的算术平方根,所以循环只需试到 Sqr(n),故 [8] 处填 Sqr(n);填 n−1 也能得到正确结果,只是要多做许多无用的判断。若 n 能被 m 整除,余数为 0,说明它不是素数,故 [9] 处填 0。标志变量 s 初值为 0,循环结束后若仍为 0,说明始终没有找到因数,n 就是素数,故 [10] 处填 0。 2024年真题|第130题 学院学生会计划用 100 元钱购买水性笔、笔记本和打印纸,其中水性笔单价 1 元、笔记本单价 5 元、打印纸每包 10 元,编写程序计算有多少种购买方式。请补充完善程序。 Private Sub Command1_Click() Dim n As Integer, i As Integer, j As Integer, k As Integer n = 0 For i = 1 To [1]________ For j = 1 To [2]________ For k = 1 To [3]________ If (i + 5 * j + 10 * k) = 100 Then n = n + 1 Next k Next j Next i Print "共有"; n; "种方法" End Sub 【答案】[1] 100;[2] 20;[3] 10 【解析】三个循环变量分别代表三种物品购买的数量,每种至少买一件,因此都从 1 开始。上界取"总金额除以本单位"的整数部分即可保证不漏解:水性笔单价 1 元,最多可买 100 件;笔记本单价 5 元,最多 20 本;打印纸每包 10 元,最多 10 包。故三处依次填 100、20、10。 2024年真题|第131题 找出 100 以内满足表达式 1/A² + 1/B² = 1/C² 的三个数 A、B、C,且 A > B > C。请补充完善程序。 Private Sub Command1_Click() Dim A As Integer, B As Integer, C As Integer Print "A值", "B值", "C值" For C = [4]________ To 100 For B = [5]________ To 100 For A = [6]________ To 100 If 1 / A ^ 2 + 1 / B ^ 2 = 1 / C ^ 2 Then Print A, B, C Next A Next B Next C End Sub 【答案】[4] 1;[5] C + 1;[6] B + 1 【解析】程序中的 If 语句只判断了等式,并没有判断三个数的大小关系,因此 A > B > C 必须由循环的初值来保证。最外层的 C 从 1 开始即可;中层 B 的初值应比 C 大 1,故 [5] 处填 C + 1;内层 A 的初值应比 B 大 1,故 [6] 处填 B + 1。这样循环变量的取值范围本身就限定了 A 最大、C 最小,输出的组合不会重复。 2024年真题|第132题 单击命令按钮产生 50 个 50 到 100 的随机数,统计其中能被 7 整除的个数,并将结果在窗体上打印出来。请补充完善程序。 Private Sub Command1_Click() Dim n As Integer, i As Integer, count As Integer Randomize Print "本次随机产生50到100且能被7整除的数是:"; For i = 1 To 50 n = [7]________ If [8]________ Then Print n; count = [9]________ End If Next i Print " 共"; count; " 个" End Sub 【答案】[7] Int(Rnd * 51) + 50;[8] n Mod 7 = 0;[9] count + 1 【解析】要产生 [50,100] 之间的随机整数,可先让 Rnd 乘以区间长度 51(含两端共 51 个整数),取整后再补上下界 50,故 [7] 处填 Int(Rnd * 51) + 50。判断一个数能否被 7 整除,就是看它除以 7 的余数是否为 0,故 [8] 处填 n Mod 7 = 0。每找到一个符合条件的数,计数变量就加 1,故 [9] 处填 count + 1。 2024年真题|第133题 采用下面的方法计算水池中原有多少升水:每次从水池中取出当时水量的一半再加一升,当取到第 10 次时,水池中正好只剩下 1 升水。请补充完善程序。 Private Sub Command1_Click() Dim m As Integer, i As Integer m = [10]________ For i = 9 To [11]________ Step [12]________ m = (m + 1) * 2 Next i Print "鱼缸中原有水"; m; "升" End Sub 【答案】[10] 1;[11] 1;[12] -1 【解析】本题由最后的结果向前倒推。第 10 次取完以后池中还剩 1 升,这就是倒推的起点,故 [10] 处填 1。从第 10 次往前一共还要倒推 9 次,循环变量从 9 递减到 1,因此 [11] 处填 1、[12] 处填 -1,循环体共执行 9 次。每次取水前的水量等于取水后剩余量加一之后再乘以二,与语句 m = (m + 1) * 2 一致。 2024年真题|第136题 在 Text1 中输入一个正整数 n,在 Text2 中显示 1 + (1+2) + (1+2+3) + … + (1+2+…+n) 的值。请补充完善程序。 Private Sub Text1_Change() n = Val(Text1.Text) Sum = 0 For i = 1 To [20]________ sum1 = 0 For j = 1 To [21]________ sum1 = sum1 + [22]________ Next j Sum = Sum + sum1 Next i Text2.Text = Sum End Sub 【答案】[20] n;[21] i;[22] j 【解析】式子里共 n 个括号,外层循环要重复 n 次,故 [20] 处填 n。第 i 个括号内是 1 加到 i,共 i 项,故内层循环的终值应随外层变化,[21] 处填 i;括号内把 1、2、… 逐个累加,加进去的是内层循环变量 j 的当前值,故 [22] 处填 j。每算完一个括号,外层再把它累加到总和 Sum 之中。 2025年真题|第127题 猴子去桃园摘桃子,当天吃了一半又一个,以后每天都将前一天剩下的吃一半又一个,到第十天想吃时只剩下一个桃子了,问第一天猴子共摘了多少桃子。请补充完善程序。 Private Sub Command1_Click() Dim n As Integer, i As Integer s = 1 For i = [1]________ To 1 Step -1 s = [2]________ Next i Print "第一天摘桃子的数量="; s End Sub 【答案】[1] 9;[2] (s + 1) * 2 【解析】第十天只剩下 1 个桃子,这就是倒推的起点,程序中已把 s 的初值设为 1。从这个结果往前推,共需倒推 9 次(从第 10 天回到第 1 天),循环变量应从 9 递减到 1,故 [1] 处填 9。正向是"吃掉剩下的一半又一个",逆向就要把剩余量先加一、再乘以二,故 [2] 处填 (s + 1) * 2。 2025年真题|第130题 单击命令按钮,从键盘上输入两个正整数,计算这两个正整数之间的素数并输出到窗体上。请补充完善程序代码。 Private Sub Command1_Click() Dim m As Integer, n As Integer, t As Integer, i As Integer, j As Integer Dim swit As Integer, d As Integer, k As Integer m = InputBox("请输入第一个整数") n = InputBox("请输入第二个整数") If n < m Then t = n [11]________ m = t End If For i = [12]________ To [13]________ k = Int(Sqr(i)) j = 2 swit = 0 While j <= k And swit = 0 If i Mod j = [14]________ Then swit = 1 Else j = [15]________ End If Wend If swit = [16]________ Then d = d + 1 If [17]________ Mod 5 = 0 Then Print i; ""; [18]________ Else Print i; ""; End If End If Next i End Sub 【答案】[11] n = m;[12] m;[13] n;[14] 0;[15] j + 1;[16] 0;[17] d;[18] Print 【解析】若输入的第一个数比第二个数大,就要把两者交换:把 n 暂存到 t 之后,应把 m 的值赋给 n,再把暂存的值还给 m,故 [11] 处填 n = m。交换之后 m 一定不大于 n,外层循环要在这两个数之间逐个检查,故 [12] 处填 m、[13] 处填 n。判断 i 能否被 j 整除,看余数是否为 0,故 [14] 处填 0;不能整除时要把除数加大继续试,故 [15] 处填 j + 1。标志变量 swit 初值为 0,循环结束时若仍为 0,说明 i 是素数,故 [16] 处填 0。为了每行输出 5 个素数,用计数变量 d 与 5 求余,故 [17] 处填 d;余数为 0 时输出一个空行实现换行,故 [18] 处填 Print。 【练习题】 一、填空题 1. 求 s = 1 + 2 + 3 + … + 100 属于________算法,求 n! 属于________算法。 【答案】累加;累乘 【解析】把若干个有规律变化的项相加,称为累加;把它们相乘,称为累乘。两类算法的写法相似,区别在于运算符号不同,而且存放结果的变量初值也不同:累加变量要清零,累乘变量要设为 1。 2. 用循环判断 n 是否为素数时,循环变量通常只需取到________即可。 【答案】Sqr(n) 【解析】若 n 有大于其算术平方根的因数,则必然还有一个小于它的因数与之配对,因此只要在 2 到 n 的算术平方根之间都没有找到因数,就可以断定 n 是素数。判断到平方根可以显著减少循环次数,提高程序效率。 3. 穷举法解决问题的基本思路,是把所有可能的________一一列举出来并逐一检验。 【答案】情况(取值) 【解析】穷举法并不依赖巧妙的公式,而是把问题可能出现的各种情况全部列举出来,再逐一检验是否符合题目条件。题目里有几类取值不同的量,就用几重循环分别控制,逐层组合出全部情况。 4. 猴子吃桃问题是由最后的结果向前推算最初的量,这类算法称为________。 【答案】递推(倒推) 【解析】当已知过程的最终结果而要求最初的量时,按正向推算往往无从下手,可以把过程倒过来逐次推算,这种方法称为递推或倒推。倒推时把末态作为循环变量的初值,循环体写出与正向相反的运算式。 5. 在统计满足条件的数的个数时,计数变量在进入循环之前应当先________。 【答案】清零 【解析】计数变量用来累计符合条件的数的个数,若不在循环之前清零,它就会把上一轮运行或其他计算留下的数值带进来,统计结果必然出错。因此凡是用来累计的变量,都要在使用前设定好初值。 6. 在穷举算法中,各重循环的初值与终值应当根据题目给出的________来确定。 【答案】取值范围 【解析】循环的取值区间就是穷举的范围:范围过小会把真正的解排除在外,造成漏解;范围过大虽然不会漏解,却要多做大量无用的判断,使程序变慢。因此应当按题目给出的取值范围划定上界与下界。 7. 判断 x 能否被 5 整除,应写成 x ________ 5 = 0。 【答案】Mod 【解析】一个数能被另一个数整除,就是它们相除的余数为 0。求余运算使用取模运算符 Mod,因此判断 x 能否被 5 整除应写成 x Mod 5 = 0。若写成整除运算符 \,得到的是相除的商而不是余数。 8. 求 s = 1 + 1/2! + 1/3! + … 时,内层循环的作用是求________。 【答案】某一项的阶乘 【解析】式子中每一项的分母都是一个阶乘,因此外层循环负责把各项的倒数累加起来,内层循环则负责算出当前这一项的阶乘。两层各司其职,若把两项工作混在一个循环里,无论是初值还是循环次数都无法同时兼顾。 9. 若要让统计出的数每行输出 5 个,可以判断计数变量与 5 求余的结果是否为 0,为 0 时就________。 【答案】换行 【解析】输出时若要控制每行的个数,可以用计数变量与每行个数求余:余数为 0 说明已经输出了整数倍个,此时单独执行一次不带参数的 Print 语句输出一个空行,后面的内容就转到下一行继续输出。 二、单项选择题 1. 求 n! 通常采用的算法是( ) A. 累加 B. 累乘 C. 穷举 D. 递推 【答案】B 【解析】n! 表示从 1 乘到 n 的连乘积,因此要用累乘算法:设一个变量存放积,进入循环前把它的初值设为 1,循环中依次乘以 1、2、…、n。累加用于求和,穷举用于列举各种情况,递推用于由结果反推最初的量。 2. 用循环判断一个整数 n 是否为素数时,循环变量一般只需取到( ) A. n B. n/2 C. n − 1 D. Sqr(n) 【答案】D 【解析】若 n 存在大于算术平方根的因数,则必定还有一个小于它的因数与之配对,因而不必一直试到 n−1,只要试到 n 的算术平方根即可断定 n 是否为素数。取到平方根可以明显减少循环次数,提高程序效率。 3. 穷举法解决问题的基本思路是( ) A. 把所有可能的情况一一列举并逐一检验 B. 只列举一种可能 C. 随机取值试算 D. 用公式一次算出 【答案】A 【解析】穷举法把问题可能出现的各种情况全部列举出来,再逐一检验是否满足题目给出的条件,凡是满足的即为一个解。它不需要巧妙的推导,但循环的重数要与题目中取值不同的量的个数相一致。 4. 用三重循环求"100 元买三种物品有多少种购买方式",属于( ) A. 累加算法 B. 递推算法 C. 穷举算法 D. 排序算法 【答案】C 【解析】三种物品的购买数量各有多种可能,要把它们的各种组合一一列举出来再检验总金额是否等于 100 元,这正是穷举算法的典型应用。题目里有三类取值不同的量,因此用三重循环分别控制。 5. 猴子吃桃问题(由最后一天的剩余量反推最初数量)采用的算法是( ) A. 穷举 B. 累乘 C. 查找 D. 递推(倒推) 【答案】D 【解析】题目已知第十天的剩余量而要求第一天摘了多少桃子,按正向推算无法进行,只能把过程倒过来逐次推算,这就是递推(倒推)算法。倒推时以末态作为循环变量的初值,循环体中写出与正向相反的运算式。 6. 要从 1 到 100 中找出所有能被 7 整除的数,通常使用( ) A. 顺序结构 B. 选择结构 C. 循环结构配合选择结构 D. 只能用数组 【答案】C 【解析】要逐个检查 1 到 100 之间的每一个数,这是重复性的工作,必须用循环来实现;而"能否被 7 整除"是一个判断,要用选择结构来完成。因此这类问题通常由循环结构与选择结构配合解决。 7. 在统计满足条件的数的个数时,计数变量在循环之前应( ) A. 清零 B. 设为 1 C. 设为最大值 D. 不必处理 【答案】A 【解析】计数变量用来累计符合条件的数的个数,必须在进入循环之前清零,否则会把上一次运行或其他计算残留的数值带进来,统计结果就会偏大。若把它误设为 1,最终结果会比实际个数多 1。 8. 产生 50 到 100 之间(含 50 和 100)随机整数的表达式是( ) A. Int(Rnd*50)+50 B. Int(Rnd*51)+50 C. Int(Rnd*50)+51 D. Int(Rnd*100) 【答案】B 【解析】要产生 [A,B] 区间内的随机整数,应先把 Rnd 乘以区间长度 B-A+1,取整后再补上下界 A。本题 A 为 50、B 为 100,区间长度是 51,因此表达式是 Int(Rnd*51)+50。乘以 50 会缺少右端点 100,只写 Int(Rnd*100) 则范围是 0 到 99。 9. 判断一个数 x 能否被 3 整除,应写成( ) A. x / 3 = 0 B. x \ 3 = 0 C. x Mod 3 = 0 D. Int(x/3) = 0 【答案】C 【解析】判断整除的方法是看相除的余数是否为 0,求余要用取模运算符 Mod,因此应写成 x Mod 3 = 0。/ 是浮点数除法,得到的是商;\ 是整除,得到的也是商;Int(x/3) 同样得到商的整数部分,都不能用来判断整除。 10. 求 s = 1 + 1/2! + 1/3! + … + 1/n! 时,内层循环的作用是( ) A. 累加各项 B. 输出结果 C. 判断素数 D. 求某一项的阶乘 【答案】D 【解析】式子里每一项的分母都是一个阶乘,外层循环负责把各项的倒数累加起来,内层循环负责算出当前这一项的阶乘。若把两者混在一层循环里,既要累加又要连乘,初值与循环次数都无法同时兼顾。 11. 穷举法中,若能预知各层循环变量的大致范围,应当( ) A. 按题目的取值范围设置循环的初值与终值 B. 把范围写得越大越好 C. 一律取 1 到 100 D. 不使用循环 【答案】A 【解析】穷举的范围应当按题目给出的取值范围来确定:范围过小会把真正的解排除在外造成漏解,范围过大虽然不会漏解,却要多做大量无用的判断。例如按单价计算,100 元最多能买 20 本 5 元的笔记本,循环的上界取 20 即可。 12. 在嵌套循环的累加算法中,用来存放内层结果的变量通常在( )处清零。 A. 外层循环之前 B. 进入内层循环之前 C. 内层循环之中 D. 不需要清零 【答案】B 【解析】内层变量存放的是"当前这一项"的值,每算新的一项都应当从零开始,因此要在进入内层循环之前清零。若把它放在外层循环之前清零,那么上一项的结果会累加到下一项上;放在内层循环之中则每个数都会被清零,结果永远为零。 三、程序填空题 1. 下列程序统计 1 到 50 之间能被 5 整除的数的个数。请补充完整下列程序代码。 Private Sub Command1_Click() Dim i As Integer, c As Integer c = [1]________ For i = 1 To 50 If i [2]________ 5 = 0 Then c = c + 1 End If Next i Print "共有"; [3]________; "个" End Sub 【答案】[1] 0;[2] Mod;[3] c 【解析】计数变量用来累计符合条件的数的个数,进入循环之前必须清零,故 [1] 处填 0。判断一个数能否被 5 整除,要看它除以 5 的余数是否为 0,求余使用取模运算符,故 [2] 处填 Mod。最后要把统计结果输出,引用计数变量 c 即可,故 [3] 处填 c。 2. 下列程序判断输入的整数是否为素数,为提高效率只判断到该数的平方根。请补充完整下列程序代码。 Private Sub Command1_Click() Dim n As Integer, m As Integer, k As Integer Dim flag As Integer n = Val(Text1.Text) flag = 0 k = Int([1]________) For m = 2 To k If n Mod m = 0 Then flag = 1 [2]________ End If Next m If flag = 0 Then Print n; "是素数" Else Print n; "不是素数" End Sub 【答案】[1] Sqr(n);[2] Exit For 【解析】循环的终值取自 n 的算术平方根,题目要求只判断到平方根,对小数取整得到整数上界,故 [1] 处填 Sqr(n)。一旦发现 n 能被某个 m 整除,就已经能够断定它不是素数,后续判断毫无意义,应当立即跳出循环,故 [2] 处填 Exit For;跳出后标志变量 flag 已是 1,程序会输出"不是素数"。 原创精品资源学科网独家享有版权,侵权必究 学科网(北京)股份有限公司 $

资源预览图

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