当前位置:文档之家› VB程序填空复习题

VB程序填空复习题

二级VB程序设计练习程序填空1.下面程序按每行10个数打印出30个介于-300到300间无重复的随机整数,并显示其中的最小值。

数组b(30)存放所产生的无重复的随机整数,运行结果如图所示。

Private Sub Command1_Click()Dim b(30), j As Integer, k As IntegerDim y As Integer, x As Single, min As IntegerFor j = 1 To 30lb:x = RndIf x > 0.5 Then y = 1 Else y = -1b(j) = y * Int(Rnd*301)k = 1Do While k<jIf b(j) = b(k) Then Goto lbk = k + 1LoopPrint b(j);If j Mod 10=0 Then PrintNext jmin = b(1)For j = 1 To 30If b(j) < min Then min=b(j)Next jPrint minEnd Sub2.下面程序用于对9位的号进行校验。

参数mno存放号,mjy存放产生的校验位,tag判断校验正确否,若校验正确tag置1,否则为0。

产生校验位的算法为:取号右边的8位之和关于9的模作为校验值,号最左边的一位为校验位。

Public Sub foe(ByVal mno As String, mjy As Integer, Tag As Integer)Dim msum As Integer, m As Stringmsum = 0for j=2 to 9m = Mid(mno, j, 1)msum = msum + Val(m)Next jmjy = msum mod 9If mjy = val(left(mno,1)) Then Tag = 1ElseTag = 0End IfEnd SubCommand1_Click事件用于调用foe子过程,对输入到文本框Text1的号进行校验,如果校验正确,显示“正确”,否则显示“错误”,同时显示正确的校验码。

Private Sub Command1_Click()Dim nn As Integer, mtag As IntegerIf Len(Text1) <> 9 Or Not IsNumeric(Text1) Then MsgBox "非法数据,请重新输入!"Text1 = ""Text1.SetFocusExit SubEnd IfCall foe(Text1, nn, mtag)If mtag ThenPrint "正确"ElsePrint “错误” ;nnEnd IfEnd Sub3.下面的程序按从小到大的顺序随机产生不超过20个介于100到400(包括100、400)的数,每次产生的一个数总大于它前面已产生的数,然后求产生的数的平均值。

数组b(20)用于存放所产生的随机数,运行结果如图所示。

Private Sub Command1_Click()Dim b(20), i As Integer, j As Integer, sum As Singlej = 1Dore:b(j) = Int (Rnd*301+100)If b(j) = 400 Or j = 20 ThenExit DoElseIf b(j) <= b(j - 1) ThenGoTo reEnd Ifj=j+1Loopsum = 0For i = 1 To jPrint b(i);Sum=sum+b(i)Next iPrint "aver="; sum/jEnd Sub4.新的号由18位组成,最低位(右边)为校验位,其算法是:10-(前17位之和关于10的模)。

函数foe用于对18位的进行校验。

参数mstr存放号,md为产生的校验位,若校验正确,函数返回“True”,否则返回“False”。

Public Function foe(ByVal mstr$, md%) As BooleanDim mp As String, msum As Integermsum = 0For i=1 To 17mp = Mid(mstr, i, 1)msum = msum + Val(mp)Next imd = 10 – msum mod 10If md = val(right(mstr,1)) Thenfoe = TrueElsefoe = FalseEnd IfEnd FunctionCommand1_Click事件用于调用foe子过程,对输入到文本框Text1的号进行校验,如果校验正确,显示“True”,否则显示“False”和的校验码值。

Private Sub Command1_Click()Dim mm As IntegerIf Len(Text1) <> 18 Or Not IsNumeric(Text1) Then MsgBox "非法数据,请重新输入!"Text1 = ""Text1.SetFocusExit SubEnd IfIf foe(Text1, mm) = True ThenPrint "True"ElsePrint “False”;m mEnd IfEnd Sub5.End Sub本程序随机产生N(15)个A到J的大写字母,按字母降序排序后,将连续出现的字用压缩形式显示。

例如,连续5个H字母显示为5*H,参见图例。

数组a()用于存放随机产生的字母。

Private Sub Command1_Click()Const N = 15Dim a(1 To N) As String * 1, cDim count%, i%, j%, k%For i = 1 To Na(i) = Chr(Int( Rnd*10+65 ))Print a(i);Next iPrintFor i = 1 To N - 1k = iFor j = i+1 To NIf a(j) > a(k) Then k=jNext jc = a(i): a(i) = a(k): a(k) = cNext iFor i = 1 To NPrint a(i); " ";Next iPrinti = 1Do While i <= Ncount = 1If i < N Then j = i + 1Do While a(i) = a(j)count = count+1If j < N Then j = j + 1 Else Exit DoLoopIf count = 1 Then Print a(i); " "; Else Print count; "*"; a(i); " ";i = i+countLoopEnd Sub6. 本程序的功能是在窗体随机产生10个长度为1~20之间的大写字母字符串,并同时显示最长字符串的字符数及容,如图所示。

Private Sub Command1_Click()ClsDim st(1 To 10) As String, c As String * 1Dim i%, n%For i = 1 To 10___ _For j = 1 To nc = Chr(Int(Rnd * 26 + 65))st(i) = ___ ___Next jPrint st(i)Next imaxlen = 0maxstr = ""For i = 1 To 10If ____ _ Thenmaxlen = Len(st(i))maxstr = ______End IfNext i__ __End Sub7. 两素数的差为2,称此对素数为素数对,下列程序是成对显示100以的素数对。

其中,函数isP 的功能是判断参数m是否为素数,若是返回True ,否则返回False 。

Public Function isP(m) As BooleanDim i%For i = 2 To Int(Sqr(m))If Then IsP = FalseNext iEnd FunctionPrivate Sub Command1_Click()Dim i%p1 = IsP(3) ' 第一个可能的素数For i =p2 = IsP(i)If Then Print i 2, i ' 相邻的两个是素数,则打印p1 = ' 处理下一个素数Next iEnd Sub8. 本程序的功能是求100以的素数,结果分三列输出,如样例所示。

算法思想:从2开始,对每一个数判断是否是素数,若是就输出,否则就继续,直至到100。

Private Sub Command1_Click()Dim n As Integer, m As Integer, i As IntegerMe.ClsFor n = 2 To 100For m = 2 To n – 1If = 0 ThenEnd IfNext mIf ThenPrint n,i = i + 1If i Mod 3 = 0 ThenEnd IfNext nEnd Sub9. 子过程isH的功能是判断正整数n是否是回文数,若为回文数,则参数Tag返回True。

单击命令按钮,输出随机产生的10个[10,100]之间的回文数(数字左右对称的正整数称为回文数)。

Private Sub Command1_Click()Dim nn%, t As Boolean, i%For i = 1 To 10nn = Int(Rnd * 991 + 10)CallIf t Then Print nn; "是回文数"Next iEnd SubSub isH(ByVal n As Integer, )Dim length%, i%, s1$s1 = Trim(Str(n))tag =length =For i = 1 To length \ 2If Mid(s1, i, 1) <> Then tag = FalseNext iEnd Sub10. 本程序的功能是判断一个5位数的最后二位构成的数是否为素数。

在窗体的文本框Text1中输入一个5位数,判断该数的第4、5二位构成的数是否为素数,若是显示“是素数”否则为“非素数”。

例如,32517最后二17构成的数是素数。

相关主题