VB期末考试上机题编程答案
保存在D盘的VBTest文件夹中。如不按要求保存,造成文件无法上传,后果自负! 具体要求:
1.新建一个工程,编写一个找出所有四位幸运数显示在列表框中,并将幸运数的个数显示在文本框中。所谓幸运数是指凡前两位数字之和等于后两位数字之和的四位数。将原窗体文件和工程文件分别另存为为和,
1、程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见;
2、单击\查找\按钮,则开始查找并在列表框中显示结果,并在文本框中显示幸运数的个数; 3、单击“清除”按钮,则将列表框和文本框清空; 4、单击“退出”按钮,结束程序运行;
5、程序中应包含一个过程,用于判断一个数是否是幸运数。 解:Private Sub Command1_Click() Dim i As Integer, a As Integer
&
For i = 1000 To 9999
If k(i) Then i: a = a + 1 Next i = a End Sub
Private Sub Command2_Click() = \ End Sub
~
Private Sub Command3_Click() End End Sub
Private Function k(n As Integer) As Integer
Dim i As Integer, a As Integer, s1 As Integer, s2 As Integer Dim s As String s = CStr(n)
For i = 1 To Len(s) / 2
s1 = s1 + Mid(s, i, 1)
s2 = s2 + Mid(s, Len(s) + 1 - i, 1) Next i
If s1 = s2 Then k = True End Function
2. 新建一个工程,编写求某一自然数因子和的程序。要求通过文本框获取输入的自然数,计算后将所计算得到的因子和显示在另一文本框中。将原窗体文件和工程文件分别另存为为和,保存在D盘的VBTest文件夹中。如不按要求保存,造成文件无法上传,后果自负! 具体要求:
1、程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见;
2、单击\求和\按钮,则在文本框中显示计算得到的因子和;
*
3、单击“清除”按钮,则将文本框清空,焦点设置在第一个文本框; 4、单击“退出”按钮,结束程序运行;
5、在程序中应包含一个用于计算自然数因子和的函数过程YinZi(n)。 解;Private Sub Command1_Click() Dim n As Integer n = Val
Call yinzi(n) = yinzi(n) End Sub
Private Function yinzi(n As Integer) As Integer
~
Dim i As Integer
For i = 1 To n / 2
If n Mod i = 0 Then yinzi = yinzi + i Next i End Function
Private Sub Command2_Click() = \ = \
Text1. SetFocus
,
End Sub
Private Sub Command3_Click() End End Sub
3. 新建一个工程,编写一个程序,判断随机生成的10个三位正整数是否是降序数。所谓降序数是指百位数大于十位数且十位数大于个位数的数。将原窗体文件和工程文件分别另存为为和,保存在D盘的VBTest文件夹中。如不按要求保存,造成文件无法上传,后果自负! 具体要求:
1、程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见;
2、单击\执行\按钮,随机生成10个三位正整数,显示在左边的列表框中,将判断结果参照样图的格式显示在右边的列表框中;
—
3、单击“清除”按钮,则将两个列表框清空; 4、单击“退出”按钮,结束程序运行;
5、程序中应包含一个名为jx的函数过程,用于判断一个正整数是否为降序数。 解;Private Function jx(n As Integer) As Boolean Dim i As Integer
Dim a As Integer, b As Integer For i = 2 To Len(Str(n)) a = Val(Mid(n, i - 1, 1)) b = Val(Mid(n, i, 1)) If a <= b Then Exit For
—
Next i
If i > Len(Str(n)) - 1 Then jx = True End Function
Private Sub command1_click() Dim a(1 To 10) As Integer Dim i As Integer For i = 1 To 10
a(i) = 1000 + Int(Rnd * 9000) a(i)
If jx(a(i)) Then a(i)
*
Next i End Sub
Private Sub Command2_Click() End Sub
Private Sub command3_click() End End Sub
…
4. 新建一个工程,统计一个二进制数中0的个数和1的个数。将原窗体文件和工程文件分别另存为为和,保存在D盘的VBTest文件夹中。如不按要求保存,造成文件无法上传,后果自负! 具体要求:
1、程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见;
2、第一个文本框用于输入一个二进制数,单击“统计”按纽,在另外两个文本框中分别显示0 和1的个数;
3、单击“清除”按纽,将三个文本框内容清除,且光标落在第一个文本框; 4、单击“退出”按纽,则结束程序运行;
5、程序中应包含一个过程,用于统计字符串中0和1的个数。
解;Private Sub Command1_Click() Dim s As String
[
s =
Dim a As Integer, b As Integer Call fun(s) End Sub
Private Sub fun(s As String)
Dim i As Integer, a As Integer, b As Integer
】
For i = 1 To Len(s)
If Mid(s, i, 1) = 0 Then a = a + 1 Else: b = b + 1 End If Next i
= \的个数有\个\ = \的个数有\个\ End Sub
Private Sub command2_click()
¥
= \ = \ = \ End Sub
Private Sub command3_click() End End Sub
5. 新建一个工程,编写一个程序,找出随机生成的30个三位正整数中的升序数。所谓升序数是指百位数小于十位数且十位数小于个位数的数。将原窗体文件和工程文件分别另存为为和,保存在D盘的VBTest文件夹中。如不按要求保存,造成文件无法上传,后果自负!
、
具体要求:
1、程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见;
2、单击\执行\按钮,随机生成30个三位正整数,按6个数一行的格式显示在多行文本框中,再找出其中的升序数输出到列表框;
3、单击“清除”按钮,则将文本框和列表框清空;
4、单击“退出”按钮,结束程序运行;
5、程序中应包含一个名为jx的函数过程,用于判断一个正整数是否为升序数。 解:Private Sub Command1_Click() Dim a(1 To 6, 1 To 5) As Integer Dim i As Integer, j As Integer For i = 1 To 6
—
For j = 1 To 5
a(i, j) = 10 + Int(Rnd * 20)
If jx(a(i, j)) = True Then a(i, j) = & a(i, j) & \ Next j = & vbCrLf Next i End Sub
Private Sub Command2_Click()
%
= \ End Sub
Private Function jx(n As Integer) As Integer Dim i As Integer
Dim a As Integer, b As Integer For i = 2 To Len(Str(n)) a = Val(Mid(n, i - 1, 1)) b = Val(Mid(n, i, 1))
\\
If a >= b Then Exit For Next i
If i > Len(Str(n)) - 1 Then jx = True End Function
Private Sub Command3_Click() End End Sub
6. 新建一个工程,编写一个程序,求两个正整数的最小公倍数。将原窗体文件和工程文件分别另存为为和,保存在D盘的VBTest文件夹中。如不按要求保存,造成文件无法上传,后果自负!
~
具体要求:
1、程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见;