如数据25 54 8 54 21 排序过程如下(n=5):
待排序数据:【25】 54 8 54 21
i=2:【25 54】 8 54 21
i=3:【8 25 54】 54 21
i=4:【8 25 54 54】 21
i=5:【8 21 25 54 54】
程序产生10个-100~100之间的整数,从小到大排序后输出,运行结果如图所示:
实现上述功能的VB程序代码如下,但加框处代码有错,请改正。
Dim a(0 To 10) As Integer
Private Sub Command1_Click()’产生10个随机数放在数组a中
Dim i As Integer
For i = 1 To 10
‘①
List1.AddItem Str(a(i))
Next i
End Sub
Private Sub Command2_Click()
Dim i As Integer, j As Integer
For i = 2 To 10
a(0) = a(i)
j = i - 1
Do While a(0) < a(j)
‘②
j = j - 1
Loop
a(j + 1) = a(0)
Next i
For i = 1 To 10
List2.AddItem Str(a(i))
Next i
End Sub
①处的代码修改为。
②处的代码修改为。
Dim a(1 To 100) As Integer
Dim sum(0 To 100) As Integer ’sum(i)存储 a(1)+a(2)+…+a(i)的值
Dim n As Integer, s As Integer
Private Sub Form_Load()
‘读取整数序列依次存储在数组a中
‘读取整数序列长度存储在变量n中
‘本过程代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer, ans As String
Dim Min As Integer ‘存储符合条件的最小长度
Dim iMin As Integer ‘存储符合条件子序列的起始位置
s=val(Text2.text)
For i = 0 To n
sum(i) = 0
Next i
For i = 2 To n
sum(i) = a(i) + sum(i-1)
Next i
Min = n
iMin = 1
For i = 1 To n
j=i
Do WhileAnd j<= n
j = j + 1
Loop
If j <= n And j - i + 1 < Min Then
Min = j - i + 1
iMin = i
End If
Next i
ans =“”
For i = iMin To
ans = ans + Str(a(i))
Next i
Label1.Caption = “符合条件的子序列为” + ans
End Sub
X=2
PRINT X+1, X+1
Private Sub Command1 _Click( )
Dim key As String
Dim a As Integer, b As Integer, ans As Integer, ch As String
key =Text1.Text
i=1
Do While i <= Len (key)
ch Mid(key, i, 1)
If ch>= “0” And ch < = “9” Then
①
Else
Exit Do ‘退出循环
End If
Loop
a= ②
b= Val (Mid(key,+1, Len (key)-i))
ans =a +b
Label1. Caption= “算式计算结果为: “+str(ans)
End Sub
① ②
Dim c As Integer
Private Sub Form _Load ( )
c = 0: Text1. Text = “”
End sub
Private Sub Text1 _Change ( )
If Va l(Text1. Text) > 0 Then
Text1. Text = Str(Val(Text1. Text) \2
c = c + 1
End If
Text2. Text = Str(c)
End sub
运行该程序,在文本框Text1中输入5,则Text1和Text2中显示的内容分别是( )
Private Function bw(x As Integer, y As String) As String
'函数bw功能:若二进制位数不足,通过在前面添"0"使得位数为4的倍数
Dim r As Integer, i As Integer
r = x Mod 4
If r <> 0 Then
For i = 1 To 4 - r
y = "0" + y
Next i
x = Len(y)
End If
bw=
End Function
Private Sub Command1_Click()
Dim m As String, n As Integer, i As Integer, a As Integer
Dim s As Integer, s1 As String, j As Integer
m = Text1.Text
n = Len(m)
Text2.Text = ""
m = ’调整 m 的位数为 4 的倍数
For i = 1 To n - 3 Step 4
s = 0
For j = i To i + 3
a = Val(Mid(m, j, 1))
s =
Next j
If s >= 10 Then
s1 = Chr(Asc("A") + s - 10)
Else
s1 = CStr(s) '函数 CStr 类似于 Str,但无前导空格
End If
Text2.Text = Text2.Text + s1
Next i
End Sub
i = 1
Do While i < = 6
a(i) = Int(Rnd* 10) + 1
If a(i)Mod 2 = I Mod 2 Then
i=i-1
Else If I Mod 2 = 0 Then
a(i) =a(i - 1) + a(i)
End If
i=i+1
Loop
执行该程序后,a(1)-a(6)各元素不可能的值是( )
在VB中常用的字符串截取函数有:
| 函数名 | 功能 | 示例 | 结果 |
| Mid(s, m, n) | 从字符串s的第m位开始,截取长度为n的字符 | Mid(“ABCDEFG”,5,2) | “EF” |
| Left(s, n) | 截取字符串s左边n个字符 | Left(“ABCDEFG”,3) | “ABC” |
| Right(s, n) | 截取字符串s右边n个字符 | Right(“ABCDEFG”,2) | “FG” |
假如某人身份证号码S=“370102199602190000”,如果需要根据此人身份证号码求出该人的“出生年月日”。下列表达式不能实现的是( )。
s1 = "abcde" j = 1
s2 = "a"
For i = 1 To Len(s1)
j = (j + 2) Mod Len(s1) + 1 s2 = s2 + Mid(s1, j, 1)
Next i Text1.Text = s2
执行该程序段后,文本框Text1中输出的内容是( )