例如:n=3时,第1次取1根,第2次取2根,此时正好取完,无须添加火柴,k=0;
例如:n=8时,第1次取1根,第2次取2根,第3次取3根,第4次要取4根,但剩余2根不够取。则加上1根,剩余3根,再从1根开始取,即第4次取1根,第5次取2根,剩余火柴为0,游戏结束,得k=1。
又如:n=4时,第1次取1根,第2次取2根,第3次不够取,若加上1根,剩余2根,再从1根开始取,第3次取1根,剩余1根不够第4次取,再加1根,又是剩余2根,显然加1根永远不可能取完。所以改用每次加2根,第1次取1根,第2次取2根,第3次不够取,添加2根,第3次取1根,第4次取2根,恰好能取完,得k=2。
编写一个VB程序可实现上述功能:在文本框Text1中输入火柴数量,单击“计算”按钮,在文本框Text2中显示最少添加数量,程序运行界面如下图所示:
实现上述功能的程序代码如下:
Private Sub ok_Click()
Dim a(1 To 100) As Boolean, n As Integer, k As Integer, i As Integer
n = Val(Text1.Text)
For i = 1 To 100
a(i) = False
Next i
a(n) = True
Do While n <> 0
i = 1
Do While i <= n
①
i = i + 1
Loop
If n = 0 Then
Text2.Text = Str(k)
Else
If k = 0 Then k = 1
n = n + k
If ② Then
k = k + 1
n = Val(Text1.Text)
Else
a(n) = True
End If
End If
Loop
End Sub
① ②
m = 1:k = 1
For i= 1 To 9
If a(i) < a(i+1) Then
k = k + 1
If k > m Then m = k
Else
k = 1
End If
Next i
Text1. Text = Str (m)
执行该程序段,文本框Text1中显示的是( )
ch = Mid(s, i, 1)
If ch >= "0" And ch <= "9" Then
k = (Val(ch) - 1) Mod (Len(s) - 4) + 1
s1 = Mid(s, k, 1) + s1
End If
Next i
Text1.Text = s1
程序执行完后,Text1 中显示的内容是( )
Dim i As Integer, t As Integer, s As Integer
s = 0: t = 0
For i = 0 To 10
If i Mod 5 = 0 then s = s + 1
t = t + i
Next i
Text1.Text = Str(s)
执行该程序段后,变量s和t的值分别是( )
①将324扩大100倍,32400只能被48695减去1次,则百位上的商是1;
②将324扩大10倍,3240能被前一次余的16295减去5次,则十位上的商就是5;
③对于324,不能被最后剩余的95减去,则个位上的商为0。所以最后的商的整数部分为150。
程序运行界面如图所示。

Dim s1, s2, s3, s, ans As String
Dim tot As Integer, t As Integer
Private Sub Command1_Click( )
Dim a, b, i, j, length As Integer
s1=Text1.Text:s2=Text2.Text:s3=""
Length=Len(s1)-Len(s2)
For i=1 To length
s2=s2+"0"
Next i
For i=0 To length
s=Mid(s2, 1, Len(s2)-1):tot=0
Do While ① or(Len(s1)=Len(s)And s1>=s)
tot=tot+1
ans="":flag=False
a=Len(s1):b=Len(s)
For j=a To 1 Step-1
t=0
If flag Then
t=-1:flag=False
End If
If b>0 Then
t=t+Val(Mid(s1, j, 1))-Val(Mid(s, b, 1))
Else
t= ②
End If
If t<0 Then
③
flag=True
End If
ans=t&ans:b=b-1
Next j
s1=Val(ans)
Loop
s3=s3&tot
Next i
i=1
Do While Mid(s3,i,1)="0"
i=i+1
Loop
Text3.Text=Mid(s3,i,Len(s3))
End Sub
以上程序段运行时,为了实现上述功能,画线处应填入的代码分别为:①;②;③。
x=1
while x>0:
x=x+1
print(x)
Dim tmp As Single ,s As String ,ch As String ,i As Integer s = "1,20,36,29,3,"
tmp = 0
For i = 1 To Len(s)
ch = Mid(s, i, 1)
If ch <> "," Then
Else
If Then
List1.AddItem Str(tmp)
End If
tmp = 0
End If
Next i
上述程序段中横线处可选语句为:
① tmp = tmp * 10 + Val(ch)
② tmp = tmp + ch
③ Sqr(tmp) ^ 2 = tmp
④ Int(Sqr(tmp)) = Sqr(tmp)
则方框处处语句依次为: ( )
Dim a(1 To 5) As Integer, i As Integer
a(1) = 1: a(2) = 1
For i = 3 To 5
a(i) = a(i - 1) + a(i - 2)
Next i
Text1 Text = Str(a(i - 1))
该程序段运行后,文本框Text1中显示的内容是( )
a(1) = 68: a(2) = 88: a(3) = 76: a(4) = 60: a(5) = 98
a(6) = 100: a(7) = 64: a(8) = 85: a(9) = 99: a(10) = 59
For i = 1 To 9
b(i) = Abs(a(i + 1) - a(i))
c(b(i) \ 10) = c(b(i) \ 10) + 1
Next i
For i = 0 To 10
If c(i) > 0 Then Label1.Caption = Label1.Caption + " " + Str(c(i))
Next i
数组c各元素初值为0,执行该程序段,标签Label1上显示的内容是( )
(问题求解)设这个数存放于变量x中,变量g、s、b分别存放个位、十位、百位上的数。需得分离数字得到每位上的数,即将变量g、s、b表示为x的形式。请阅读如下python程序,在空白处填写适当的表达式或语句,使程序完整。print ("三位数之内的水仙花是:")
for x in :
b=x//100
s=
g=
if x==(b**3 + s**3 + g**3):
Dim i As Integer, t As Integer
Dim enc As String, dec As String
enc = " 6Z9FBQ3VX4": dec =" "
i =1:t=0
Do While t <4
c = Mid(enc, i,1)
If c>="0" And c<="9" Then
i = Val(c)
Else
dec=dec+c
t=t+1
End If
i =i+1
Loop
Text1.Text=dec
运行该程序段,文本框Text1中的内容是( )
Private Sub Command1_Click()
Dim s1 As String, s2 As String
Dim i As Integer, x As Integer
Const code="0123456789ABCDEF"
s1=Text1.Text
s2=""
Do While Len(s1) Mod 4<>0
s1="0"+s1
Loop
x=0
i=1
Do While i<=Len(s1)
x=x*2+Val(Mid(s1,i,1))
i=i+1
If Then ‘①
s2=s2+Mid(code,x+1,1)
‘②
End If
Loop
Text2.Text=s2
End Sub
list=['a','b','c','d','e','f','g']
list1=[]
list2=[]
for i in range(7):
if i%2==0:
list1.append(list[i])
else:
list2.append(list[i])
print(list1)
print(list1)
Private Sub Command1_Click()
Dim n As Integer,i As Integer,a As Long,b As Long,c As Long
a = 1
b = 1
n = Val(Text1.Text)
List1.AddItem Str(a)
List1.AddItem Str(b)
For i = 3 To n
List1.AddItem Str(c)
Next i
End Sub
上述程序中方框处可选语句为( )
①a=b ②c=a+b ③b=c
则输出 none。请你编程帮管理员找出每一位用户应该领取的物品编码,物品不能被重复领取。例如,仓库有5 件物品,分别为134,1123,1234, 2112,5123 ,有 3 个用户提出领取物品的需求:
2233456212,第1个数就是第1个用户要求的物品编码后几位的长度(1到9之间),例如是2,则向后读取2位数,23就是第一个用户要求的编码尾号,依次类推,第2个用户要求后3位编码为456,第3个用户要求后2位编码为12。则他们应该领取的物品为 1123,none,2112。
Const num = 5
Dim a(1 To 10) As String '物品编码
Dim s As String, req(1 To 10) As Integer '每位用户需求的后几位编码
Dim n As Integer '用户数
Dim g(1 To 10) As String
Dim b(1 To 10) As Integer '每位用户需求的后几位编码长度
Dim flag(1 To 10) As Boolean '标记物品是否被领取
Private Sub Form_Load()
'仓库物品编码数据初始化,并在List1中列举,代码略
End Sub
Private Sub Command1_Click()
s = Text1.Text
k = 1: i = 1: n = 0
Do While i <= Len(s)
t = Val(Mid(s, i, 1))
n = n + 1
b(n) = t
req(n) = Val(Mid(s, i + 1, t))
Loop
For i = 1 To n
List2.AddItem g(i)
Next i
End Sub
Function search(need As Integer, needlen As Integer) As String
j = 1
For j = 1 To num
IfAnd flag(j) = False Then Exit
For Next
If j > num Then search = "none"
Else
flag(j) = True search = a(j)
End If
End Function