Private Sub Command1_Click()
Dim getStr As String
Dim a As String
Dim i As Integer,s As Integer
Dim q As Integer,l As Integer
s=0:q=0:l=0
getStr=Text1.Text
For i = 1 To ① ’对字符串中所有字符逐一判断
a = ②
If a >= "a" And a <= "z" Then s = s + 1
If a >= "A" And a <= "Z" Then q = q + 1
If a >= "0" And a <= "9" Then l = l + 1
Next i
Text2.Text = Str(s)
Text3.Text = Str(q)
Text4.Text = Str(l)
End Sub
划线②处应填入的语句为:
则 (选填 会/不会)影响输出结果。
图1
输入火柴棍的数量n(n≤24),计算可以拼出多少个“A+B=C”的等式?要求:
① 加号与等号各自需要两根火柴棍。
② A、B、C为非负的整数,且该数非零时,最高位不能是0。
③ 如果A≠B,则A+B=C 与B+A=C 视为不同的等式。
④ n 根火柴棍必须全部用上。
小明发现,数字1用的火柴棍最少,24根火柴棍全部用上的话,能拼出最大的整数A或B不超过1111,C不超过2222。他编写了一个VB 程序,在文本框Text1中输入火柴棍的数量,单击“统计”按钮Command1,在文本框Text2中输出“A+B=C”的方案数,程序界面如图2所示。
图2
实现上述功能的VB程序如下,请回答下列问题:
Private Sub Command1_Click()
Dim a(0 To 2222) As Integer '存储每个整数需用的火柴棍数
Dim n As Integer, ans As Integer
Dim i As Integer, j As Integer
n = Val(Text1.Text)
For i = 0 To 2222
a(i) = 0
Next i
'得到0~9 中每个数字需用的火柴棍数
a(0) = 6: a(1) = 2: a(2) = 5: a(3) = 5: a(4) = 4
a(5) = 5: a(6) = 6: a(7) = 3: a(8) = 7: a(9) = 6
n = '去掉等号与加号后,剩余的火柴棍数量
For i = 10 To 2222 '计算出10~n 中每个数字需用的火柴棍数
a(i) = a() + a(i Mod 10)
Next i
ans = 0
'枚举0~n 中任意两个数,判断~否符合A+B=C 的火柴棍数量
For i = 0 To 1111
For j = 0 To 1111
If a(i) + a(j) + a() = n Then
ans = ans + 1
End If
Next j
Next i
Text2.Text = Str(ans)
End Sub
程序实现过程:生成规模为n×m的网格,在网格边界添加一圈交通锥“▲”,并将“□” “●”、“▲”按行依次存入数组a中,在文本框Tex3中输入停放该车最小长度clen值,在文本框Text4中输出共有多少种停放方法。程序运行界面如图b所示,实现上述功能的VB代码如下:
Dim a(1 To 200) As String
Dim n as Integer, m As Integer
Private Sub Command1 Click ()
Dim i As Integer, j As Integer, k As Integer
Dim s As string
n= Val(Text1. Text)+2
m=Val(Text2 Text)+2
List1. Clear
For i=1 To n*m
If i<=m0ri>m*(n-1) or ① Then ‘在矩阵周围加上一圈边界
a(i)=“▲”
Else
k= Int(Rnd 2)
If k=1 Then a(i)=“□” Else a(i)=“●”
End If
Next i
‘在列表框List1中显示网格,代码略
End sub
Private Sub Command2 Click ()
Dim i As Integer, j As Integer, c As Integer, x As Integer, y As Integer
Dim cnt As Integer, clen As Integer
Dim flag As boolean
clen= Val(Text3. Text)
y=1
Do While y <=m
For x =1 To n
If a((x-1)*m+ y)=“□” Then
c=c+1
Else
If c ≥=clen Then
cnt=②
End if
③
End If
Next x
y=y+1
Loop
Text4 Text Str(cnt)
End Sub
请回答下列问题
① ② ③
搬砖问题:100块砖,100人搬,一个男人搬4块,一个女人搬3快,两个小儿拾1块,要求一次搬完,问男、女、小儿各多少人。
换钱问题:
要将一张100元的钞票,换成等值的5元、2元、1元一张的钞票共50张。其中一种换法如下:
5元:3张
2元:38张
1元:9张
求出所有的换钱方案。
【算法设计】
x表示5元的张数:1≦x≦20;
y表示2元的张数:1≦y≦50;
z表示1元的张数:1≦z≦100。
【参考程序】
Dim x AsInteger
Dim y AsInteger
Dim z As Integer
For x=1 To20
For y=1To 50
Forz=1 To 100
If Then
Print x;y;z ‘x y z 之间以分号分隔
End If
Nextz
Next y
Next x
根据上述回答下列问题:
输人两个互不相等的自然数A,B If A<B then (A←A+B,B←A-B,A←A-B) 输出A,B |
关于上述算法,下列说法正确的是( )
n1 =False #判断数字
n2=False #判断下划线
flag=False #判断首字符和长度是否满足要求
password=input('请输入密码:\n')
n= ①
ch=password[0]
if 19>n>5 and (z'>=ch>='a' or 'Z>= =ch>='A'):
flag=True
if flag:
for i in range(1, n):
ch=password[i]
if '9'>=ch>='0':
n1= ②
elif ch= '_':
n2=True
if ③
print('结果:', '合法')
else:
print('结果:', '不合法')
① ② ③
为了实现这一目标,完善下列程序,使之能完成该功能。
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
①密码是六位数字,前面两位为59;②最后两位数字相同;③能被12和38整除。
程序界面如图1所示,单击 “帮助找回密码”按钮(Command1)后,可能的密码显示在列表框List1中。
Private Sub Command1_click( )
Dim x As Integer, s As Long
Dim y As Integer, i As Integer
For i = 0 To 9999
s = 590000 + i
If Then
x= s mod 10
y =
If x = y Then
List1.AddItem Str(s)
End If
End If
Next i
End Sub
密码强度判断条件如下:密码长度小于6,则强度为“弱”。在密码长度大于等于6的情况下,若只出现一种字符,则密码强度为“弱”;若出现两种不同字符,则密码强度为“中”,出现三种以上不同字符,则密码强度为“强”。
Private Sub Cmd1_Click()
Dim n As Integer, i As Integer, m As Integer, s As String, c As String
If n<6 Then
Label3.Caption="弱"
Else
s="0000"
For i=1 To n
c=Mid(Text1.Text, i, 1)
If c>="0" And c<="9" Then
Mid(s, 4, 1)="1" '将字符串s第4位上的字符替换为"1"
ElseIf c>="A" And c<="Z" Then
Mid(s, 3, 1)="1"
ElseIf c>="a" And c<="z" Then
Else
Mid(s, 1, 1)="1"
End If
Next i
m=0
For i=1 To 4
If Mid(s, i, 1)="1" Then
Next i
If m<2 Then
Label 3.Caption="弱"
ElseIf m=2 Then
Label 3.Caption="中"
Else
Label3.Caption="强"
End If
End If
End Sub