
实现上述功能的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 ① prime(i) Then ‘⑴
k = k + 1
a(k) = i
End If
i = i + 2
Loop
For i = 2 To k
If ②a(i) = a(i +1)+2 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(Sqr(x))
If x Mod i = 0 Then
prime = True
Exit For
End If
Next i
End Function
① ②
s=Text1.Text
n=Len(s) 's是待判断的字符串
k=0:j=n
For i=1 to n/2
c1=Mid(s,i,1)
c2=Mid(s,j,1)
If c1 <> c2 Then k = k+1: Exit For
j=
Next i
If Then Label1.Caption="对称" Else Label1.Caption="不对称"
Private Sub Command1_Click()
Dim i As Integer, j As Integer, s As Long
s = 1
i =
If i >= 1 And i <= 9 Then
For j = 1 To i
s =
Next j
Label2.Caption = Str(i) & "的阶乘为:" & Str(s)
Else
Label2.Caption = "请重新输入1~ 9之间的任意数字"
End If
End Sub
⑴找出文章(以“.”结束)中所有用英文表示的数字(均为小写,数字范围1≤n≤20),单词与数字对应如下:
⑵将这些数字平方后除以100取余,得到两位数如00,04,21,96。
⑶把这些两位数按升序排成一行,组成一个最小的新数,如果新数开头为0,就去除。
⑷步骤(3)找出的最小数即为密码。
小明按照上述方法,设计了一个解密的VB程序,功能如下:单击“解密”按钮Command1,程序依次将文本框Text1中以空格分隔的每个英文单词取出,若单词属于数字单词,则按解密步骤进行处理,最后在文本框Text2中输出解密结果。
程序运行效果如图所示,请回答下列问题:
Dim a(1 To 20) As String
Private Sub Form_Load()
a(1) = "one": a(2) = "two"
‘……将所有数字单词按顺序存入数组a中,代码略
End Sub
Private Sub Command1_Click()
Dim s As String, tmp As String
Dim c as Integer, i As Integer, j As Integer, k As Integer, t As String, ch As As String, code As Long
Dim b(1 To 100) As String ‘b数组存放数字单词处理后得到的两位数
s = Text1.Text
c = 0: i = 1: flag = True:t = ""
Do While i <= Len(s)
ch = Mid(s, i, 1)
If ch >= "a" And ch <= "z" Then
t = t + ch
flag = False
ElseIf flag = False Then
For j = 1 To 20
If t = a(j) Then
c = c + 1
b(c) =
End If
Next j
t = ""
flag = True
End If
i = i + 1
Loop
’将b数组中的两位数按数值大小进行升序排序,代码略
For i = 1 To c
t = Val(b(i))
Next i
Text2.Text = Str(code)
End Sub
Function decode(num As Integer) As String
Dim mo As Integer
mo = num * num Mod 100
If mo = 0 Then
decode = "00"
ElseIf Then
decode = "0" + Trim(Str(mo))
Else
decode = Trim(Str(mo)) 'Trim为去除字符串两端空格的函数
End If
End Function
为了实现这一目标,完善下列程序,使之能完成该功能。
Private Sub command1_click()
Const n=20
Dim i as integer,j as integer
Dim a(1 to n) as integer
For j=1 to n
a(j)=0
next j
for i=1 to n
for j=1 to n
if j mod i=0 then
End if
Next j
Next i
For j=1 to n
If then list1.additem str(j)
Next j
End Sub
程序界面如图所示,在文本框Text1中输入一个正整数,单击“转换”按钮(Command1)后,对应的二进制数在文本框Text2中显示出来。

解决此问题的Visual Basic程序如下,在程序①和②划线处,填入适当的语句或表达式,把程序补充完整。
Private Sub Command1_Click()
Dim x As Integer,s As String,r As Integer,t As Integer
x=Val(Text1.text)
s=“”
Do While ①
r=x Mod 2
s=Str(r)+s
x=②
Loop
Text2.text=s
End Sub
Private Sub Command1_Click()
Dim sum As Integer, a As Integer, b As Integer
Dim i As Integer, c As Integer, d As Integer
List1.Clear
sum = 0 '玫瑰花个数
For i = 1000 To 9999
a = i Mod 10 '求个位上的数字
b =① '求十位上的数字
c = i \ 100 Mod 10 '求百位上的数字
d = i \ 1000 '求千位上的数字
If a ^ 4 + b ^ 4 + c ^ 4 + d ^ 4 = i Then
List1.AddItem Str(i)
②
End If
Next i
Label1.Caption = "玫瑰花个数为:" + Str(sum)
End Sub
① 已知5个电阻阻值,求它们并联后的阻值
② 求某个同学期中考试各科成绩总分
③ 求某个班级期中考试某门科目的最高成绩
④ 根据三个系数a、b、c的值,求一元二次方程ax2+bx+c=0的解
有一种火柴棒游戏,将火柴棒摆成形如“A+B=C”的火柴棒等式。用n根火柴棒摆放数学等式的规则约定如下:
⑴A、B都是不大于1000的正整数,若数值非零,则最高位不能是0;
⑵摆放“+”与“=”各使用两根火柴棒;
⑶A+B=C 与B+A=C视为相同的等式;
⑷n根火柴棒必须全部用上。
小明依据上述规则使用VB编写程序,研究“使用n根火柴棒,可以摆放出哪些不同的等式”,代码如下所示。请回答下列问题。
Dim sz(0 To 9) As Integer ‘数组元素sz(i)用于存储数字i所使用的火柴棒的数量
Private Sub Form_Load()
sz(0) = 6 : sz(1) = 2 : sz(2) = 5 : sz(3) = 5 : sz(4) = 4
sz(5) = 5 : sz(6) = 6 : sz(7) = 3 : sz(8) = 7 : sz(9) = 6
End Sub
‘自定义函数hcs用于求解摆放数字x需要使用的火柴棒数量
Function hcs(ByVal x As Integer) As Integer
Dim s As Integer, k as integer
s = 0
Do While ①
k = x Mod 10
s=s+sz(k)
x = x \ 10
Loop
hcs = s + sz(x)
End Function
Private Sub Command1_Click()
Dim n As Integer
Dim a As Integer, b As Integer, c As Integer
n = Val(Text1.Text)
ans = 0
List1.Clear
For a = 0 To 999
For b = ② To 999
c = a + b
If ③ Then
List1.AddItem (Str(a) + "+" + Str(b) + "=" + Str(c))
ans = ans + 1
End If
Next b
Next a
List1.AddItem ("共有" + Str(ans) + "种等式")
End Sub
① ② ③
Private Sub Command1_Click()
Dim i As Long, j As Long, k As long
Dim As long
For i=0 To 9
For j=0 To 9
For k=0 To 9
s=i*100+j*10+k
If(i^3)+(j^3)+(k^3)=s Then
Debug. Print s
End If
Next k
Next j
Next i
End Sub
for i in range(1):
if :
print(i,“3×6528=3”,i,“×8256”,sep=“”)
下列选择正确的是( )。
, 其中n为正整数,计算s值的VB程序段如下:
s=1:i=1:t=1
Do While i<2*n-1
![]()
Loop
方框中的代码由以下三部分组成:
①s=s+t
②i=i+2
③t= -t/(i*(i- 1))
下列选项中,代码顺序正确的是( )
例如,共有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( ② )
① ②