VB第4章复习资料_第1页
VB第4章复习资料_第2页
VB第4章复习资料_第3页
VB第4章复习资料_第4页
VB第4章复习资料_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第4章 补充资料习题解答1计算下列循环语句的次数:(1)For I= -3 To 20 Step 4答:循环次数为6次。循环体内I的值分别为:-3,1,5,9,13,17;出了循环体后I的值为21。(2) For I= -3.5 To 5.5 Step 0.5答:循环次数为19次。(3) For I= -3.5 To 5.5 Step -0.5答:不循环,步长0,循环初值终值。(4) For I= -3 To 20 Step 0答:无数次,步长=0。2. 下列3090为语句标号,分别标记该语句,第40号语句共执行了几次,第50号语句共执行了几次,执行第90号语句后显示的结果是多少?30 For

2、 j = 1 To 12 Step 340 For k =6 To 2 Step -250 mk = k60 Print j,k70 Next k80 Next j90 Print j , k , mk 答:第40号语句共执行了4次,是外循环的循环体;第50号语句共执行了12次,是内循环的循环体,循环次数为两重循环次数的乘积;第90号语句显示的结果是13 0 2。3如果实现不知道循环次数,如何用For Next 结构来实现? 答:只要将循环的终值设置成一个非常大的值,然后再循环体内增加If语句,判断是否满足循环结束的条件。形式如下: For 循环变量 =1 To 非常大的数 If 满足循环结束

3、条件 Then Exit For Next 循环变量4利用循环结构,实现如下功能:(1)答:s =0For i =1 To 10 s = s +( i+1)*(2* i +1)Next i(2)分别统计1100中,满足3的倍数、7的倍数的整数各有多少?答: s3=0 s7=0 For i =1 to 100 If i mod 7=0 Then s7=s7 +1 If i mod 3=0 Then s3=s3+1 Next i(3)将输入的字符串以反序显示。如输入 “ASDFGHJKL”,显示 “LKJHGFDSA”。答: s=InputBox(“输入字符串”) For i =Len(s) To

4、 1 Step -1 Print Mid(s,i,1); Next i5下面程序的运行结果是什么?该程序的功能是什么? Private Sub Command1_ Click( )Dim x,nn = 20Do While n 0 a = n Mod 2 n = n2 x = Chr(48 + a) xLoop Print x End Sub答:运行后结果为10100,该程序的功能是将十进制数转换成二进制字符串。6.下面程序的运行结果是什么?该程序的功能是什么? Print Sub Command1_Click( ) Dim x,y,z x = 242: y = 44 z =x * y Do

5、Until x = y If x y Then x = x y Else y = y x Loop Print x, z/x End Sub答:运行结果为22和484;该程序的功能是用相减法求x,y的最大公约数和最小公倍数。7.利用随机函数产生50100范围内的20个随机数,现实其中的最大值、最小值和平均值。 Private Sub Form_Click( )Dim i, min , max , avg, xmin = 100 设置最小值、最大值和平均值的初态max = 50avg = 0For i = 1 To 20 x = Int(Rnd * 51+50) Print x; If x ma

6、x Then max = x If x min Then min = x avg =avg + xNext iPrintPrint “最小值=”;min , “最大值 =”;max, “平均值=”;avg/20 End Sub 常见错误和难点分析1.一般循环控制变量在循环体内可以引用但不要被赋值如在循环控制变量的引用和赋值将影响循环次数,引起混乱,效果如图4.1所示。Private Sub Command1_Click( ) Print “单击Command1输出:” For i = 1 To 20 s = s + i 循环控制变量i被引用,正确使用 Print I; Next i Print

7、End Sub Private Sub Command2_Click( ) Print “单击Command2输出:” For i = 1 To 20i = i + 2 循环控制变量i被赋值,改变了循环次数,不正确使用 Print I; Next i PrintEnd Sub 图4.1 循环控制变量引用和赋值的两种使用方式运行效果2.不循环或死循环的问题出现不循环或死循环的情况主要是循环条件、循环初值、循环终值、循环步长的设置有问题。例如,以下循环语句不执行循环体:For i =10 To 20 Step -1 步长为负,初值必须大于等于终值,才能循环For i =20 To 10 步长为正,

8、初值必须小于等于终值,才能循环Do While False 循环条件永远不满足,不循环例如,以下循环语句为死循环: For i =10 To 20 Step 0 步长为0,死循环 Do While 1 循环条件永远满足,死循环3循环结构中缺少配对的结束语句ForNext 语句没有配对的Next语句;Do语句没有一个终结的Loop语句等。4循环嵌套时,内外循环交叉 For i = 1 To 4 For j =1 To 5 Next i Next j 上述循环体的交叉,运行时显示“无效的Next控制变量引用”。外循环必须完全包含内循环,不得交叉。 5循环结构与If块结构交叉For i =1 To

9、4 If 表达式 ThenNext iEnd If错误同上,正确的做法应该为If结构完全包含循环结构,或者循环结构完全包含If结构。6累加、连乘时,存放累加、连乘结果的变量赋初值的问题 (1)一重循环在一重循环中,存放累加、连乘结果的变量初值设置应放在循环语句前。 例如,求1100之间的3的倍数之和,结果存入Sum变量中,如下程序段的输入结果如何? Private Sub Form _Click( ) For i =3 To 100 S tep 3 Sum =0 Sum = Sum + i Next i Print SumEnd Sub 要得到正确的结果,应如何改进? (2)多重循环在多重循环

10、中,存放累加、连乘结果的变量初值设置应放在外循环语句前,还是内循环语句前,这要视具体问题分别对待。例如,30位学生参加三门课程的期末考试,以下是用程序实现求每个学生的三门课程的平均成绩,应如何改进? aver = 0For i =1 To 30 For j =1 To 3 m = InputBox (“输入第” & j & “门课的成绩”) aver = aver + m Next javer = aver / 3Print averNext i测试题一、选择题1以下 是正确的ForNext结构。AFor x = 1 To Step 10 BFor x = 3 To -3 Step -3 Ne

11、xt x Next xCFor x =1 To 10 DFor x = 3 To 10 Step 3 re: Next x Next y If i = 10 Then Goto re2下列循环结构能正常结束循环的是 。Ai = 5 Bi = 1 Do Do i = i + 1 i = i + 2 Loop Until i 0 Loop Until i = 1 3下列程序段的运行结果为 。 For i = 3 To 1 Step -1 Print Spc(5-i); For j = 1 To 2*i 1 Print ”*” Next j Print Next iA * B * * * * * C

12、* * * * * D * * * * * * * * * * * * * * * * * * * * * * * * * 4当在文本框中输入“ABCD”4个字符时,窗体上显示的是 。 Private Sub Text1_Change( ) Print Text1; End Sub AABCD BA CAABABCABCD DA B AB C ABC D ABCD 5下列哪个程序段不能分别正确显示1!、2!、3!、4!的值 。 AFor i = 1 To 4 BFor i = 1 To 4 n = 1 For j = 1 To i For j = 1 To i n = 1 n = n * j

13、n = n * j Next j Next j Print n Print n Next i Next i Cn = 1 Dn = 1 For j = 1 To 4 j = 1 n = n * j Do While j = 4 Print n n = n * j Next j Print n j = j + 1 Loop6下列关于 DoLoop循环结构执行循环体次数的描述正确的是 ADo WhileLoop的循环和DoLoop Until循环至少都执行一次BDo WhileLoop的循环和DoLoop Until循环可能都不执行 CDo WhileLoop的循环至少执行一次和,DoLoop U

14、ntil循环可能不执行 DDo WhileLoop的循环可能不执行,DoLoop Until循环至少执行一次 7下面的程序段的运行结果为多少? Private Sub Command1_Click( ) For i = 1 To 5 n =0 For j = i To 5 n = n + 1 Next jNext iPrint nEnd Sub A10 B5 C15 D1二、填空题1要使下列For语句循环执行20次,循环变量的初值应是: For k = (1) To -5 Step -22下面程序显示 (2) 个“*“ For i = 1 To 5 For j = 2 To 2Print “*

15、”Next jNext i3下列第40号语句共执行了 (3) 次,第41号语句共执行了 (4) 次。30 For j = 1 To 120 Step 3 40 For k = 6 To 2 Step -2 41 MsxBox(j & ” &k) 42 Next k 43 Next j 4输入任意长度的字符串,要求将字符顺序倒置。例如,将输入的“ABCDEFG”变换成“GEFDCBA”。Private Sub Command1_Click( ) Dim a$, I%, c$, d$, s%a = InputBox$(“输入字符串”)n = (5) For I = 1 To (6) c = Mid

16、(a, I, 1)Mid(a, I, 1) = (7) (8) = c Next I Print aEnd Sub 5找出被3、5、7除,余数均1的最小的5个正整数。Private Sub Command1_Click( ) Dim Count N%,n%CountN =0n = 1 Do n = n + 1 If (9) Then Print nCountN = CountN + 1 End ifLoop (10) End Sub6有一个长阶梯,如果每步跨2阶最后剩1阶,如果每步跨3阶最后剩2阶,如果每步跨4阶最后剩3阶,如果每步跨5阶最后剩4阶,如果每步跨6阶最后剩5阶,只有当如果每步跨7

17、阶时恰好走完,显示这个阶梯至少要有多少阶。 提示:利用肯定是7的倍数这个条件,然后根据同时满足除n余m(n=2,3,4,5,6,m=1,2,3,4,5)的逻辑关系即可。Sub Command1_Click( ) Dim n% , m% For n = 7 To 10000 Step 7If n = Mod 2 =1 And (11) Then Print n (12) End ifNext nEnd Sub7期末某班在一周6天内考三门分别为x,y,z的考试课程,规定一天只能考一门,课程依次按先考x后考y,最后考z,最后一门课程最早周五考。用计算机排考试,列出满足条件的方案和方案数,如图4.2。

18、 图4.2 习题7运行界面Private Sub Command1_Click( ) Dim x%, y%, z%,n%n = 0For x = 1 To 4For y = (13) To 5 For z = 5 To 6If (14)And y z Then Print x & Space(9) & y & Space(9)& z (15) End ifNext z Next yNext x (16) “满足条件的方案数为:”& nEnd Sub8某次大奖赛,有7个评委打分,如下程序对一名参赛者,输入7个评委的打分分数,去掉一个最高分、一个最低分后,求出平均分为该参赛者的得分。Sub Com

19、mand1_Click( ) Dim mark%, aver%, i%, max1!, min1!aver = 0For i = 1 To 7mark = = InputBox(“请输入第”& i & “位评委的打分”)If i = 1 Then max1 = mark : (17) Else If mark max1 Then (19) End if End if (20) Next iaver = (21) Print averEnd Sub9下面程序功能是判断100以内的孪生素数,如图4.3所示,所谓“孪生素数”是指两个数相差2的素数对图4.3 习题9运行界面Private Sub Co

20、mmand1_Click( ) Dim Count p1 As Boolean, p2 As Boolean, i%, j%rP1 = TrueFor i = 5 To 97 Step 2For j = 2 To Sqr(i) If i Mod j = 0 Then (22) Next jIf j Sqr(i) Then p2 = True Else p2 = FalseIf (23) Then print i 2, i End ifP1 = (24) Next I End Sub 参考答案 一、选择题1B A少终值; C循环体外转入循环体内,没有执行到For语句,循环的初值、终值、步长未知;D循环控制变量统一。2C A死循环,I 永远不可能小于0;B 死循环,不可能使i =10;D 死循环,不可能使i =1。3B4C 按一个字符,激发一次Text_Change 事件,将当前文本框内容显示。5B 在内循环体内存放阶乘的变量n 赋初值,显示的结果时1、2、3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论