内容正文:
专题2 解析和枚举算法及VB程序实现(专项练习)
1. VB 程序实现如下功能:单击“开始”按钮 Command1,计时器 Timer1 每隔 0.5 秒随机产生抽奖的号码,并在标签 Label1 中显示,同时按钮 Command1 的标题变为“停止”;再次单击“停止”按钮 Command1,计时器停止工作,标签 Label1 显示中奖号码,同时按钮 Command1 的标题变为“开始”。界面如图所示。
(1)根据题意,如图所示,计时器 Timer1 的 Interval 属性值应设置为 。
(2)实现上述功能的 VB 程序如下,请在划线处填入合适的代码。
Const n = 28 '参与抽奖的总人数
Private Sub Command1_Click()
If Command1.Caption = "开始" Then
Timer1.Enabled = True
Command1.Caption = "停止"
Else
Timer1.Enabled =
Command1.Caption = "开始"
End If
End Sub
Private Sub Timer1_Timer()
Dim c As Integer
c = Int(Rnd() * n + 1)
End Sub
(3)初始时,按钮 Command1 的标题为“开始”。由上述算法可知,单击 10 次该按钮后,其标题显示为 。
2. 现要求编写VB程序实现如下功能:在文本框Text1中输入正整数n(n为奇数),单击“生成”命令按钮后,如下图所示,在文本框Text2中会显示一个有规律的对称数字串,形式为“1,3,...,n-2 ,n,n-2,3,1”。例如n=9时,显示的数字串为“1 3 5 7 9 7 5 3 1”。
(1)根据代码可知,命令按钮“生成”的对象名是 。
(2)实现上述功能的VB程序如下。请在划线处填入合适代码。
Private Sub Com1_Click()
Dim n As Integer, i As Integer, s As String
s = " "
For i = 1 To n
If i<= n \2 + 1 Then
s=s+ Str(2*i-1)
Else
s = s +
End If
Next i
End Sub
3. 若一个正整数从左向右读与从右向左读都一样,我们就将其称之为回文数。例如:111、121均是回文数。请你编写程序,输出[100,n]之间的所有回文数。程序运行界面如图所示,在文本框 Text1 中输入一个正整数 n,单击“确定”按钮 Command1,在列表框 List1 中显示 100—n之间的所有回文数。
(1)若将该窗体的标题修改为“寻找回文数”,则修改该窗体的 属性。
(2)实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim n As Long, sum As Long
Dim x As Long, y As Long
sum = 0
For k = 100 To n
x = k
y = 0
Do While x > 0
y =
x = x \ 10
Loop
If y = k Then
List1.AddItem Str(k)
sum = sum + 1
End If
Next k
Label2.Caption = "共找到" + + "个回文数"
End Sub
4. 设计了一个找数的 Visual Basic 程序,该程序可以找出所有能被 7 整除,且至少有一位数为 1 的三位数,并统计个数,程序运行界面如右图所示。
实现上述功能的 VB 程序如下,请在划线处填写合适的代码。
Private Sub Command1_Click()
Dim s As Integer, n As Integer
Dim a As Integer, b As Integer, c As Integer
n = 0
List1.Clear
For s = 105 To 999
a = s \ 100
b = s \ 10 Mod 10
If