Private Sub Command1_Click()
Dim dx As String, dw As String
Dim st As String, ch As Integer
Dim i ,n As Integer
dx = "零壹贰叁肆伍陆柒捌玖"
dw = "亿仟佰拾萬仟佰拾圆"
st = Text1.Text : n = Len(st)
If n > 9 Then
Text2.Text = "输入的数据超出所能转换的范围"
Else
For i = 1 To n
ch = ①
s = s + Mid(dx, ch + 1, 1) + Mid(dw, ② , 1)
Next i
Text2.Text = s + "整"
End If
End Sub
以上程序段运行时,为了实现上述功能,划线处应填入的代码分别为:
①; ②;
Private Sub Command1_Click()
Dim a(5) as Integer
Dim n as Integer, i as Integer
n = Val(Text1.Text)
i = 0
a(1) = 1
a(2) = 1
For i = 3 To n
a(i) = a(i-1) + a(i-2)
Next i
Label1.Caption = a(i)
End Sub
若在Text1中输入5,则点击按钮后的运行结果为( )
Private Sub Command1_Click()
Dim s As String,c As String
Dim n As Integer,k As Integer
s = Text1.Text
List1.Clear
List1.AddItem ("开始分解姓名" + s + " ,计算内码:")
For i = 1 To
c = mid(s , i , 1 )
k = Asc(c)
List1.AddItem (c + " 十进制ASCII值:" + Str(k))
n = (n + k) Mod 50
n = n + 50 -i
Label2.Caption = Str(n)
End Sub
例如: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
① ②
Const n1 = 6 ‘ 第1段已排序数据长度为n1
Const r2 = 5 ‘ 第2段已排序数据长度为n2
Dim c (1 To n1 + n2) As Integer ‘ 数组c长度为n1+n2,依次存储第1、2段数据
Private sub Command1_Click ( )
‘ 数组c依次存储两段已按从小到大排序的数据,并在列表框List1中显示’
‘ 代码略
List2. Clear
‘ A位置
For i = n1+1 To n1 + n2
‘B位置
Do While j > 1 and Flag
If ① Then
t = c(j): c(j) = c(j-1): c(j-1) = t
‘ C位置
Else
Flag = False
End If
②
Loop
Next i
For i = 1 To n1 + n2
List2. AddItem c(i)
Next i
End sub
① ②
在界面的左侧列表框List1中显示各城市GDP数值,单击“按人均GDP排序”按钮Command1,在右侧列表框List2中显示排序完成后的结果(按人均GDP值从高到低排序)。
实现上述功能的VB代码如下:
Dim conn As New ADODB Connection, rs As New ADODB. Recordset
Dim n As Integer, i As Integer, j As Integer, t As Long
Dim ts As string
Dim a (1 To 200) As Integer, c (1 To 200) As String
Dim g (1 To 200) As Long, p (1 To 200) As Long
Private Sub Form Load ( )
conn ConnectionString = “Provider = Microsoft. ACE OLEDB.12.0; DataSource =“& App. Path &”\gdp. accdb”
conn. Open
Set rs ActiveConnection = ①
rs. Open “SELECT * FROM dGDP”
n = 0 ‘I处代码
Do While Not rs EOF
n = n+1
a(n) = rs. Fields ("GDP排名"). Value
c(n) = rs. Fields ("城市"). Value
g(n) = rs Fields ("GDP"). Value
p(n) = rs, Fields ("人均GDP"). Value
List1 AddItem Str(a(n)) +“”+ c(n)+“”+Str(g(n)) +“”+Str(p(n))
rs.MoveNext
Loop
rs. Close
conn. Close
Set rs = Nothing
Set conn = Nothing
End sub
Private Sub Command1_Click ( )
For i = 1 To n-1
For j = ② To n
If p(i) < p(j) Then
t = a(i): a(i) = a(j): a(j) = t
ts = c(i): c(i) = c(j): c(j) = ts
t = g(i): g(i) = g(j): g(j)=t
t = p(i): p(i) = p(j): p(j)=t
End If
Next j
Next i
List2. Clear
For i =1 To n
List2 AddItem Str(a(1))+” ”+c(i)+” “+ Str(g(1))+” ”+str(p(i))
Next i
End Sub
① ②
s1=“0123456789”
n=Len(s1)
For i=1 To 10
n=n-1
Next i
Text1.Text=s
方框中的代码由以下三部分组成:
①s=s+Mid(s1,x,1)
②x=Int(Rnd*n)+1
③s1=Mid(s1,1,x-1)+Mid(s1,x+1)
代码顺序正确的选项是( )
Private Sub Command1_Click()
Dim a( 1 To 6) As Integer, i As Integer
For i= 1 To 6
a(i) =Int(Rnd*5) *2+ 1
Next i
For i=2 To 6 Step 2
a(i) =cha(a(i-1) , a(i) )
Next i
End Sub
Function cha(x As Integer, y As Integer) As Integer
Dim t As Integer
If x<y Then
t=x:x=y:y=t
cha=y
Else
cha=x-1
End If
EndFunction
执行该程序段后,在下列选项中,a(1)~a(6)各元素值可能的是( )
Key = Val(Text1.Text)
i = 1:j = 9
Do While i <= j
m = (i + j) \ 2
If Key <= a(m) Then j = m - 1 Else i = m + 1
Loop
数组元素a(1)到a(9)的值依次是“10,13,13,18,18,18,18,25,30”,文本框Text1中的内容为“18”。执行程序段后,变量j的值是( )
s=”ABCDEFGH”
i=1
Do While i<=Len(s)
If i Mod 2=0 then
s=Mid(s, i+1, len(s)-i) & Mid(s, 1, i-1)
End if
i=i+1
Loop
Text1.text=s
i=6
Do While i>= 1
t= Int(Rnd * 10)+ 1
If t Mod 2=i Mod 2 Then a(i)=t: i=i-1
Loop
For i=1 To 2
k=-1
For j=1 To 5-i
If a(j) * k>a(j+2) *k Then
temp= a(i): a(j)=a(j+2): a(j+2)= temp
End If
k=-k
Next j
Next i
执行该程序段后,数组元素a(1)到a(6)值可能是( )
bottom = 7
i = 2
Do While i <= bottom - 1
If i Mod 2=0 And a(i)=a(i-1)+a(i+1) Then
For j = i To bottom - 1
a(j) = a(j + 1)
Next j
bottom = bottom - 1
End If
i = i + 1
Loop
For i = 1 To bottom
Text1.Text=Text1.Text+Str(a(i))
Next i
数组元素a(1)到a(7)的值依次为“26,94,68,42,69,27,132”。若该程序段执行后,文本框Text1中显示的内容是( )
s=0
for i in range (1,5):
s=s+i
print("i=",i,"s=",s)
Dim a As Integer, b As Integer
a=Len("China")
b=a-2
If a Mod b=2 Then a=a^2 Else a=b^2
该程序段运行后,a的值为( )
x,y = 1,2
x, y = y,x
print(x,y)