图1
Private Sub Command1_Click()
Dim i as integer, j as integer, c As Integer
Dim n As Long
c = 0
For i = 0 To 99
n = 110800 + i
If ① Then
List1.AddItem Str(n) + " " + "5"
②
End If
Next i
Label2.Caption = "满足条件的数有:" + Str(c) + "组"
End Sub
① ②
Private Sub Command1Click()
Dim i As Integer
Dim j As Integer
i = 1: j = 0
list1.clear
Do While i <= 1000
If (i Mod 3 = 2 And i Mod 5 = 3 And i Mod 7 = 2) Then
List1.AddItem i
①
End If
i = i + 1
Loop
Label1.Caption = Str(j)
End Sub
Dim sum As Integer 'sum 用来统计符合条件的自然数个数'
Dim n, max As Integer
List1.Clear
sum = 0
max = '指定查找范围的最大自然数,Text1文本框中输入'
n = 0
Do While n <= max
n = n + 1 '从自然数1开始不断往上寻找'
If Then
List1.AddItem Str(n) '找到后在List1中显示结果'
End If
Loop
List1.AddItem ("共计" + Str(sum) + "个")
End Sub
①密码是六位数字,前面两位为31;
②最后两位数字相同;
③能被16和46整除。
程序界面如下图所示,单击 "帮助找回密码"按钮(Command1),可能的密码显示在列表框List1中。
解决此问题的相应程序如下:
Private Sub Command1_Click()
Dim a As Integer, s As long, b As Integer, i As Integer
For i = 0 To ①
s = 310000 + i
If s Mod 46 = 0 And s Mod 16 = 0 Then
②
b = (s Mod 100) \ 10
If a = b Then
List1.AddItem Str(s)
End If
End If
Next i
End Sub
提示:本题“除 2 取余倒排法”的方法将十进制转化为二进制,算法如下: 例如十进制数“97”转化为二进制的过程如右图所示:
因此“97”二进制值为:1100001
Dim a As Integer, c As Integer, w As Integer, i As Integer
Dim s As String, k As String
c = 0
For m = 1 To 100
k = ""
i = 2 * m
Do While i > 0
a=i Mod 2
k = str(a) + k
Loop
For n = 1 To Len(k)
s = Mid(k, n, 1)
If s = "1" Then w = w + 1
Next n
If w = 4 Then
c = c + 1
End if
Next m
Text1.Text = Str(c) End Sub
For i = 100 To 999 lag = True: j = 2
Do While j < i And flag
Loop
If flag Then List1.AddItem Str(i) Next i
方框中的代码由以下四部分组成:①End If ②If i Mod j = 0 Then ③j = j + 1
④flag = False。代码顺序正确的是( )
For i = 1 To 20
a(i) = 0
Next i
For i = 1 To 20
If i Mod 3 = 0 Then a(i) = 1-a(i)
Next i
For i = 1 To 20
If a(i) = 1 Then n = n + 1
Next i
执行该程序段后,变量n的值为( )
Dim a As Integer
Dim b As Integer
Dim c As Integer
For a=1 To 100
For b=1 To 100
For c=1 To 100
If Then
Print a; b; c
End If
Next c
Next b
Next a
Private Sub Command1_Click()
Dim c As Integer, n As Integer c = 0 : n = 9
Do While n <= 1000
If n Mod 3 = 2 And n Mod 5 = 3 Then
List1.AddItem Str(n)
c =
End If
n =
Loop
Label1.Caption = "1000 以内满足条件的数有" & Str(c)& "个"
End Sub
Private Sub Command1_Click()
List1.clear
Dim a As Integer
For i = 1 To 1000
s = 0
i= Len(Str(i)) - 1
For j = 0 To i - 1
a =
s = s + a ^ 3
Next j
If i = s Then
List1.AddItem i
End If
Next i
End Sub
横线处应填写 ( )
例如以6个同学编号为例,按1至2报数(从1号位置开始)依次出列的编号次序为2-4-6-3-1-5,那么最后剩下的就是编号为5的同学。
为了解决这个问题,小李用VB编写了如下程序尝试解决,其中列表list1显示出列的顺序编号,文本框text1中显示最后留下的编号,程序代码如下(测试界面如下图):
Private Sub Command1_Click()
Dim s, f, t As Integer
Dim a(1 To 400) As Boolean
For i = 1 To 400
a(i) = False
Next i
s = 0
f = 0
i = 0
Do While f < 399
i = i + 1
If i = 401 Then i =
If a(i) = False Then s = s + 1
If s = 2 Then
List1.AddItem Str(i)
a(i) = True
f =
End If
Loop
For i = 1 To 400
If Then text1.text=str(i)
Next i
End Sub
在程序划线处填入合适的代码。
实现上述功能的VB代码如下。
Dim a(1 To 50) As Integer
Private sub Command1_Click()
Dim i As Integer
k=0: i=3
Do While i<= 100
If Not prime(i) Then
k=k+1
End If
i=i+2
Loop
For i=2 To k
If Then
List1 AddItem Str(a(i-1))+"和"+ Str(a(i))
End if
Next i
End Sub
Function prime (x As Integer)As Boolean
prime=False
For i=2 To Int(sar(x))
If x Mod i=0 Then
prime=True
Exit for
End If
Next i
End Function
cnt = 0:i = 7
Do While i < n
Loop
Text1. Text = Str(cnt)
方框中的代码由以下三部分组成:
①i = i + 7 ②j = n - i ③If j Mod 3 = 0 Then cnt = cnt + 1
下列选项中,代码顺序正确的是( )
问题:输入一个正整数n,判断n是否为素数。要判断n是否为素数,最简单的方法是:统计2到n-1之间能整除n的整数个数s,若s大于0,则n不是素数,否则就是素数。根据以上方法,完善以下程序代码。
Dim n, s As Integer
n = Val(InputBox(“n=”))
s=0
For i=2 to
If n Mod i = 0 then
s= ‘统计因数个数
End If
Next i
IfThen
Print n &“是素数”
Else
Print n &“不是素数”
End If
i=
while (i%3!=2 i%5!=3 or i%7!=2):
i=
print(i)
例如,共有n=5 个景点,每个景点连接的下个景点分别是1,3,4,4,1
景点号 |
0 |
1 |
2 |
3 |
4 |
下一个景点号 |
1 |
3 |
4 |
4 |
1 |
方案一:从0号景点出发,则游玩线路为:0号→1号→3号→4号→1号,由于此方案无法回到出发点,则不考虑;
方案二:从1号景点出发,则游玩线路为:1号→3号→4号→1号,然后回到1号景点。最多可以玩3个景点。
现用Python程序模拟这个问题:
先输入景点总数:n ;则对应的景点为[0,1,2,3,4]
然后随机产生各景点所连接的下一个景点的序号,如:[1,3,4,4,1];
接着产生一个列表,如上表的信息则产生的列表s为:[[0,1],[1,3],[2,4],[3,4],[4,1]],
最后利用链表的方式来分析解决问题。
程序如下:
import random
#产生信息列表s
n=int(input("景点总数 "))
tt=[ ]; s=[ ]; c=0
while c < n :
t=random.randint(0,n-1)
if t !=c :
s.append([ ① ])
c+=1
print(s)
#枚举所有方案,寻找正确方案。
max=0
for head in range(n):
p=head
k=1
while k<=n and s[p][1]!=head:
k+=1
p=s[p][1]
if :
max = k
maxp = head
print("小明最多能访问 %d 个景点"%(max))
#输出正确线路
p=maxp
while s[p][1]!=maxp:
print(s[p][0],end="→")
p=s[p][1]
print( ② )
① ②