(加试题)哥德巴赫 1742 年给欧拉的信中哥德巴赫提出了以下猜想:任一大于 2 的偶数都可写成两个 质数之和。下列 V

为实现上述功能程序如下,但加框处的代码有误,请改正。
Private Sub Command1Click()
Dim n As Integer
Dim i As Integer, c As Integer
n = Val(Text1.Text)
List1.Clear
c = 0
If n Mod 2 = 0 Then
For i = 2 To n ________
If is Prime(i) Then ________
List1.AddItem n & "=" & i & "+" & n - i
c = c + 1
End If
Next i
Label2.Caption = "共有" & c & "种组合"
Else
Label2.Caption = "请输入一个大于 2 的偶数"
End If
End Sub
Function is Prime(x As Integer) As Boolean
Dim i As Integer
Is Prime = True
For i = 2 To Int(Sqr(x))
If x Mod i = 0 Then
Is Prime = False
Exit For
End If
Next i
End Function
A.程序的功能即验证哥德巴赫猜想。程序运行时,在文本框 Text1 中输入一个大于 2 的偶 数,单击“证明”按钮 Command1 后,在列表框 List1 中输出所有符合猜想的组合,在标签 Label2 中输出 共有多少个组合。程序运行效果如下图所示。 |

为实现上述功能程序如下,但加框处的代码有误,请改正。
Private Sub Command1Click()
Dim n As Integer
Dim i As Integer, c As Integer
n = Val(Text1.Text)
List1.Clear
c = 0
If n Mod 2 = 0 Then
For i = 2 To n ________
If is Prime(i) Then ________
List1.AddItem n & "=" & i & "+" & n - i
c = c + 1
End If
Next i
Label2.Caption = "共有" & c & "种组合"
Else
Label2.Caption = "请输入一个大于 2 的偶数"
End If
End Sub
Function is Prime(x As Integer) As Boolean
Dim i As Integer
Is Prime = True
For i = 2 To Int(Sqr(x))
If x Mod i = 0 Then
Is Prime = False
Exit For
End If
Next i
End Function
编写程序输出100~200之间不能被3整除的自然数,并统计出符合条件的个数。
程序如下:
Private Sub Form_Click()
Dim i As Integer
Dim t As Integer
For i = 100 To 200
If __________ Then '不能够被3整除的条件
Print i
t=t+1
End If
Next i
End Sub
程序运行结束后t的值为_______________
程序如下:
Private Sub Form_Click()
Dim i As Integer
Dim t As Integer
For i = 100 To 200
If __________ Then '不能够被3整除的条件
Print i
t=t+1
End If
Next i
End Sub
程序运行结束后t的值为_______________
用蒙特卡洛法求圆周率PI的近似值,其算法如下:使用随机函数Rnd,随机生成两个[0,1)之间的随机数,由此构成一个投点坐标(x,y),然后根据x2+y2<=1投点是否在圆内来求PI的近似值。其中总共随机投点n次,统计落点在单位圆内的点数为s,则4s/n即为所求PI的近似值。程序界面如图所示,在Text1中输入投点的个数,单机“计算”按钮,PI的近似值结果显示在Text2中。)


(1)要使得按钮的文字显示为“计算”,应该修改该对象的__________属性。
(2)要实现上述功能,请在划线处填入合适代码。
Private Sub Command1_Click()
Randomize '随机数初始化
Dim i As Long, n As Long, s As Long
Dim x As Double, y As Double, z As Double
n = Val(Text1.Text)
__________________________
s = 0
Do While i <= n ' 随机投点n次
x = Rnd: y = Rnd
z = ____________________
If z <= 1 Then
s = s + 1
End If
i = i + 1
Loop
Text2.Text =_______________


(1)要使得按钮的文字显示为“计算”,应该修改该对象的__________属性。
(2)要实现上述功能,请在划线处填入合适代码。
Private Sub Command1_Click()
Randomize '随机数初始化
Dim i As Long, n As Long, s As Long
Dim x As Double, y As Double, z As Double
n = Val(Text1.Text)
__________________________

s = 0
Do While i <= n ' 随机投点n次
x = Rnd: y = Rnd
z = ____________________

If z <= 1 Then
s = s + 1
End If
i = i + 1
Loop
Text2.Text =_______________

(加试题)小李同学碰到了一个数学问题:400个同学按顺序进行编号后围成一个大圈,按1至2报数(从1号位置开始),报到2的同学出列,以此一直循环报数下去,问最后剩下的那位同学他的编号是几号?
例如以6个同学编号为例,按1至2报数(从1号位置开始)依次出列的编号次序为2-4-6-3-1-5,那么最后剩下的就是编号为5的同学。
为了解决这个问题,小李用VB编写了如下程序尝试解决,其中列表list1显示出列的顺序编号,文本框text1中显示最后留下的编号,程序代码如下(测试界面如下图):
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 = (1)
If a(i) = False Then s = s + 1
If s = 2 Then
(2)
List1.AddItem Str(i)
a(i) = True
f = (3)
End If
Loop
For i = 1 To 400
If (4) Then text1.text=str(i)
Next i
End Sub
为实现程序功能,在程序划线处应填入的代码为:
(1) _________________
(2) _________________
(3) _________________
(4) _________________
(加试题)编写“素数查找”程序,实现如下功能:单击“生成”按钮,随机生成50个150至200(包括150和200)之间的正整数,显示在下方,每行显示10个,共5行。单击“筛选“按钮, 从上面50个数中筛选出是素数的数,重复的只显示一次。程序运行界面如图所示。

请根据算法将下列程序补充完整。
Private Sub Command1_Click()
Label3.Caption = ""
For i = 1 To 50
a(i) =___________________
If i Mod 10 = 0 Then
Label3.Caption = Label3.Caption + CStr(a(i)) + vbCrLf '换行
Else
Label3.Caption = Label3.Caption + CStr(a(i)) + " "
End If
Next i
End Sub
Private Sub Command2_Click()
Label4.Caption = ""
n = 0
For i = 1 To 50
For k = 2 To a(i) - 1
If __________ Then Exit For
Next k
If k = a(i) Then
n = n + 1
If n = 1 Then b(n) = a(i)
For j = 1 To n - 1
If b(j) = a(i) Then ___________: Exit For
If j = n - 1 Then b(n) = a(i)
Next j
End If
Next i
For j = 1 To n
Label4.Caption = Label4.Caption + ________+ " "
Next j

请根据算法将下列程序补充完整。
Private Sub Command1_Click()
Label3.Caption = ""
For i = 1 To 50
a(i) =___________________
If i Mod 10 = 0 Then
Label3.Caption = Label3.Caption + CStr(a(i)) + vbCrLf '换行
Else
Label3.Caption = Label3.Caption + CStr(a(i)) + " "
End If
Next i
End Sub
Private Sub Command2_Click()
Label4.Caption = ""
n = 0
For i = 1 To 50
For k = 2 To a(i) - 1
If __________ Then Exit For
Next k
If k = a(i) Then
n = n + 1
If n = 1 Then b(n) = a(i)
For j = 1 To n - 1
If b(j) = a(i) Then ___________: Exit For
If j = n - 1 Then b(n) = a(i)
Next j
End If
Next i
For j = 1 To n
Label4.Caption = Label4.Caption + ________+ " "
Next j
(加试题)小明编写了一个寻找非常幸运数的程序。程序运行时,单击“求解”按钮,则在列表框中输出所有的六位数中的非常幸运数,在标签Label2中输出非常幸运数的个数。程序运行效果如图所示。
所谓的非常幸运数是指符合下列条件的整数:
(1)该数的偶数位数字之和等于奇数位数字之和。
(2)该数的前一半的各位数字之和正好等于后一半的各位数字之和。
代码如下:
Private Sub Command1_Click()
Dim a(1 To 6) As Integer, sum(1 To 4) As Integer
Dim x As Long, i As Long, count As Long, k As Long
For i=100000 To 999999
x=i
k=1
Do While x > 0
a(k)= ①
x=x\10
k=k+1
Loop
sum(1)=a(1) +a(2) +a(3)
sum(2) =a(4)+a(5)+a(6)
②
sum(4)=a(2)+a(4)+a(6)
If sum(1)=sum(2) And sum(3)=sum(4)Then
List1.AddItem Str(i)
③
End If
Next i
Label2.Caption="共有个数:" + str(count)
End Sub
实现上述功能的VB程序如下,在程序划线处填入合适的代码。
①_____________________________________
②______________________________________
③______________________________________
所谓的非常幸运数是指符合下列条件的整数:
(1)该数的偶数位数字之和等于奇数位数字之和。
(2)该数的前一半的各位数字之和正好等于后一半的各位数字之和。
代码如下:
Private Sub Command1_Click()
Dim a(1 To 6) As Integer, sum(1 To 4) As Integer
Dim x As Long, i As Long, count As Long, k As Long
For i=100000 To 999999
x=i
k=1
Do While x > 0
a(k)= ①
x=x\10
k=k+1
Loop
sum(1)=a(1) +a(2) +a(3)
sum(2) =a(4)+a(5)+a(6)
②
sum(4)=a(2)+a(4)+a(6)
If sum(1)=sum(2) And sum(3)=sum(4)Then
List1.AddItem Str(i)
③
End If
Next i
Label2.Caption="共有个数:" + str(count)
End Sub
实现上述功能的VB程序如下,在程序划线处填入合适的代码。
①_____________________________________
②______________________________________
③______________________________________
(加试题)下列VB程序的功能是:求得1000以内的所有水仙花数,并在list1中显示。水仙花数是指一个n位数(n)=3),它的每个位上的数字的n次幂之和等于它本身(例如:1^3+5^3+3^3=153)

Private Sub Command1_Click()
List1.clear
Dim a As Integer
For i = 1 To 1000
s = 0
l = Len(Str(i)) - 1
For j = 0 To l - 1
a = 1
s = s + a ^ 3
Next j
If i = s Then
List1.AddItem i
End If
Next i
End Sub
横线处应填写

Private Sub Command1_Click()
List1.clear
Dim a As Integer
For i = 1 To 1000
s = 0
l = Len(Str(i)) - 1
For j = 0 To l - 1
a = 1
s = s + a ^ 3
Next j
If i = s Then
List1.AddItem i
End If
Next i
End Sub
横线处应填写
A.i / 10 ^ j Mod 10 | B.i \ 10 ^ j Mod 10 |
C.i \ 10 ^ (j Mod 10) | D.(i \ 10) ^ j Mod 10 |
现有36个人搬36块砖,男的搬4块,女的搬3块, 2个小孩抬一块。要求一次正好全搬完,问男、女、小孩各需多少人?如果用编程的方法求解,以下算法最合适的是( )。
A.解析法 | B.枚举法 | C.冒泡排序法 | D.选择排序法 |
数学中的“自守数”:如果一个数的平方数的末几位等于该数本身,这个数就是自守数。例如:
5*5=25
6*6=36
25*25=625
76*76=5776
……
那么,5、6、25、76 等数被称为自守数。小袁编写一个 VB 程序,实现如下功能:找出 10000 以内所有可能的自守数,单击“统计”按钮 Command1,将符合要求的自守数显示在列表框 List1 中,统计个数显示在标签 Label1 中,运行界面如图所示。

(1)程序运行时要在按钮上显示“统计”,应设置该按钮的________属性。
(2)为实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim n As Single, k As Integer, t As Integer, c As Integer
List1.Clear c=0
For n = 5 To 10000
k = Len(Trim(n)) 'Trim()函数用于删除字符串前后的空格
t = (n * n) Mod
If t = n Then
① _ List1.AddItem Str(n)
②
End If
Next n
为实现上述功能,划线处应填入的代码分别为
①__________________________________________ 。
②___________________________________________。
(3)解决该问题采用了_______(选填:枚举/解析)算法。
5*5=25
6*6=36
25*25=625
76*76=5776
……
那么,5、6、25、76 等数被称为自守数。小袁编写一个 VB 程序,实现如下功能:找出 10000 以内所有可能的自守数,单击“统计”按钮 Command1,将符合要求的自守数显示在列表框 List1 中,统计个数显示在标签 Label1 中,运行界面如图所示。

(1)程序运行时要在按钮上显示“统计”,应设置该按钮的________属性。
(2)为实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim n As Single, k As Integer, t As Integer, c As Integer
List1.Clear c=0
For n = 5 To 10000
k = Len(Trim(n)) 'Trim()函数用于删除字符串前后的空格
t = (n * n) Mod
If t = n Then
① _ List1.AddItem Str(n)
②
End If
Next n
Label1.Caption = "自守个数为:" + Str(c)
End Sub为实现上述功能,划线处应填入的代码分别为
①__________________________________________ 。
②___________________________________________。
(3)解决该问题采用了_______(选填:枚举/解析)算法。
《孙子算经》中有一个“物不知其数”的问题,某数以3除余2,以5除余3,以7 除余 2。下面的 VB 程序用于求 1000 以内满足该条件的自然数及个数,请在程序划线处应填入合适的表达式。
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() 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