分章节解析(3)

2019-04-09 17:04

第4章 VB控制结构

一、本章知识点

1、If语句

(1)单分支结构的If语句 (2)双分支If语句 (3)多分支If语句 2、IIf函数

Var=IIf(条件,True部分,False部分) 3、Select Case语句(p121)

测试表达式可以是数值表达式或字符串表达式,也可以是一个常量或一个变量。如:

Case l,3,7 Case \,\

Case 1 To l0,\Case Is > 15

4、计数型循环(For - Next)

首先计算初值表达式(简称初值)、终值表达式(简称终值)、步长表达式(简称步长)的值,循环中其值不会发生改变 5、条件型循环(Do - Loop)

条件型循环的四种基本格式

二、试题与解析

选择题

1.在Select Case x结构中,描述判断条件3≤X≤7的测试项应该写成__________。 A.Case 3<=X<=7 B.Case 3<=X,X<=7 C.Case Is<=7,Is>=3 D.Case 3 To 7 【答案】D

填空题

1. 执行下面的程序,当单击窗体时,显示在窗体上第一行的内容是________,第二行的内

容是________。

Private Sub Form_Click( )

Dim i As Integer, Sum As Integer For I = 0.5 To 8.5 Step 2.5 Sum = Sum + I * 10 Next I Print Sum

Print I End Sub

【答案】200,10

【解析】I为整型变量,赋初值为0.5,系统将其转换为整型0,第一次循环结束后,加上步长2.5,即0+2.5,再转换为2,因此此题循环变量的取值为0,2,4,6,8,当循环变量的值为10时,超出终值,终止循环。(给整型变量赋带小数的值时,系统自动转换为整型,转换原则为四舍六入五成双,如3.1为3,3.6为4,3.5为4,2.5为2)

2.执行下面的程序,当单击窗体时,显示在窗体上第一行的内容是________,第三行的内容是________,第五行是________。

Private Sub Form_Click( ) Dim S As String, i As Integer, n(9) As Integer Dim S1 As String * 1, j As Integer S = Trim(“12345a307291b233”) For i = 1 To Len(S) S1 = Mid(S, I, 1) If S1 >= “0” And S1 <=”9” Then j = Val(S1) n(j) = n(j) + 1 End If Next I For j = 0 To 9 Print j; “:”; n(j) Next j

End Sub

【答案】0:1,2:3,4:1

【解析】此程序功能为统计字符串S中0—9数字出现的次数。 3.下面程序的功能是对密文解密。密文的加密方法是以字符为单位,取其ASCII码,按逆序保存(例如字母“e”的ASCII码是01100101,密文中则为10100110)。解密是加密的逆过程。完善程序,实现以上功能。

Private Sub Command1_Click()

Dim S As String, st As String Dim i as integer , n as integer S = Text1 Do Until n >=Len(S) ____1_____ If n Mod 8 <> 0 Then St = st & Mid(s , n, 1) Else St = st & Mid(s , n, 1) List1.AddItem St _____2____ End If

Loop End Sub

Private Sub Command2_Click() Dim S as String, st as String, I as Integer For I = 0 To ____3_____ ST = List1.List(i) For j = 1 To Len(st) S = Mid(st, j, 1) & S Next j For j = Len(S) To 1 Step –1 N = ____4______ Next j Text2 = Text2 & Chr(N) S = “” ____5____ Next i End Sub

【答案】(1)N=N+1,(2)St=””,(3) List1.ListCount-1,(4)N+Val(Mid(s,j,1))*2^(8-J),(5)N=0

【解析】Command1_Click过程中:N为计数器,表示对第N个数字进行操作,通过If语句对N进行判断是否是8的倍数,如是则表示St是一个密文字符的ASCII码逆序,输出至List1中,并将St清空,为下一个字符作准备。Command2_Click过程中:循环次数为List1中的列表项数,由于循环变量I是从0开始,因此循环终值为List1.ListCount-1,由于List1中存放的是密文的逆序,通过第一个For-Next j循环将其反射输出至S中,即S中存放的是密文的正序,再通过第二个For-Next j循环将S由二进制转换成十进制数N,最后再在循环体结束处将S和N清空,为解密下一字符作准备。

4.下面程序的功能是,验证任意一个大于5的奇数可表示为3个素数之和。完善程序,实现以上功能。

Option Base l

Private Sub Command1_Click()

Dim P() As Integer, N As Integer, L As Integer Dim I As Integer, J As Integer, k As Integer Dim ch As String

N=InputBox("输入一个大于5的奇数")

Label1.Caption=____1____ Call Prime(P, N) L=UBound(P) For I=1 To L For J=1 To L For k=1 To L

If ____2____ Then

ch=CStr(P(I)) & "+" & CStr(P(J)) & "+" & CStr(P(k)) Text1.Text=ch

____3____

End If Next k Next J Next I End Sub

Private Sub Prime(A() As Integer, N As Integer) Dim I As Integer, Idx As Integer Dim J As Integer For I=2 To N

For J=2 To Sqr(I)

If I Mod J=0 Then Exit For Next J

If J>Sqr(I) Then ____4____

ReDim Preserve A(Idx) A(Idx)=I

End If Next I End Sub

【答案】(1) N & \,(2) N = P(I) + P(J) + P(k) ,(3) Exit Sub ,(4) Idx = Idx + 1

5.将20个棋子围成一圈,按顺时针方向从1~20给棋子编号,从中取出棋子的规则是:从某编号棋子开始取出第1个棋子,然后按顺时针方向围绕圆周数棋子,从1数到2取第2个,再从1数到3取第3个,再从1数到4取第4个??直到取完。本程序的功能就是找出依照上述规则取棋子的编号序列,使得最后一个被取棋子的编号为指定的编号。例如:若指定最后取棋子的编号为9,则必须从编号为17的棋子开始取第一个棋子,取棋子的顺序是:17,19,2,6,11,18??9。完善程序,实现以上功能。

Option base 1

Private sub command1_Click()

Dim a(20) as integer, i as integer , k as integer Dim n as integer, number as integer, s as string Number=val(text2) For k=1 to 20 For i=1 to 20 a(i)=1 next i

s=____1____

call sub1(a, k, n, s) if n=number then text1=s exit for end if next k end sub

private sub sub1(a() as integer, Byval Idx As integer, n as integer, s as string) dim i as integer, js as integer, sum as integer dim ub as integer, step as integer ____2____ js=1:step=1 A(Idx)=0

Do while js<20 Step=step+1

____3____

Do While Sum

If Idx>Ub Then ____4____ Sum=Sum+A(Idx)

Loop A(Idx)=0

S=S & Left(CStr(Idx) & " ", 3) _____5____

If Js Mod 10=0 Then S=S & vbCrLf Loop N=Idx End Sub

【答案】(1) s = Left(CStr(k) & \ \,(2) ub = UBound(a)(或ub=20) ,(3) sum = 0 ,(4) Idx = 1,(5) js = js + 1

6.下列程序的功能是计算圆周率π(计算精确到第n项减1的绝对值小于10-5为止)。

??2?22?22?2?22?2?2???

Option Explicit

Private Sub Form_Click()

Dim Y As Single, t As Single, a As Single Y=2:t=0 Do

_____1______

a=2/t

If ______2_______ Then Exit Do Y=Y*a Loop

Print \End Sub 【答案】(1)t = Sqr(2 + t)(2)abs(a – 1) < 0.00001

7.执行下面程序,单击按钮Command1,在图片框Pic2中显示的第一行是_____1_____,第二行是_____2_____,第三行是____3_____。

Option Explicit Option Base 1


分章节解析(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:立思辰留学360:2017年东国大学大学排名

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: