程序代码如下:
Private Sub Command1_Click()
Dim Sname As String, Skey As String ‘Sname 保存姓名,Skey保存关键字
Dim i As Integer, j As Integer, n As Integer ‘n关键字的长度
Skey = Text1.Text
n = Len(Skey)
List2.Clear
For i = 1 To List1.ListCount ‘ListCount是列表框中项目的个数
Sname = List1.List(i - 1) ‘将List1中的第i-1项赋值给Sname
For j = 1 To ①
If Skey = ② Then
List2.AddItem Sname
Exit For
End If
Next j
Next i
If ③ = 0 Then List2.AddItem "没有找到带<" & Skey & ">的名字。"
End Sub
Dim P As Integer, q As Integer, S As Integer, t As Integer
p=Val(Text1.Text)
t=0
For q=P+1 To 2*p
s=(p*q)Mod(q-p)
If s=0 Then
t=t+1
End If
Next q
Label1. Caption=Str(t)
该程序段运行时,在文本框Text1中输入8,则在标签Label1中显示的内容是( )
实现上述功能的VB代码如下,但加框处代码有错,请改正。
Private Sub Command1_Click()
Dim a(1 To 999) As Integer
Dim n As Integer
Dim s As String
For i=1 To 999
a(i)=0
Next i
n=Val(Text1.Text)
s =“”
Do While n<>1 ‘分解质因子过程并统计质因子出现次数
For i = 2 To n
Do While n Mod i = 0
s = s&“ ”&i
a(i)= a(i)+1
‘①
Loop
Next i
Loop
Label4.Caption =“质因子分解过程:” +s
For j = 2 To 999 ‘判断是不是漂亮数
If Then ‘②
Label1.Caption = “不是漂亮数”
Exit For
Else
Label1.Caption =“漂亮数”
End If
Next j
For j = 2 To 999 ‘在列表框输出质因数及对应的乘方数
If a(j)>0 Then
List1.Additem Str(j)+“ ”+Str(a(j))
End If
Next j
End Sub
① ②
Dim conn As New ADODB Connection
Dim rs As New ADODB. Recordset
conn ConnectionString =“Provider = Microsoft. ACE. OLEDB. 12.0; DATA Source =" & App. Path &"\ data accdb”
Set rs.ActiveConnection = conn
rs. Open “select * from table”
n = 0
Do While Not rs EOF
n=n+1
rs.MoveNext
Loop
下列对于以上代码的理解正确的有( )
①连接的数据库文件名是“data”
②“ConnectionString”是conn对象的属性值
③查询的数据表名称是“table”
④程序运行后,变量n的值表示该数据表中记录的总数
⑤省略语句“rs. MoveNext”,程序也可以正常运行
Private Sub Cmd 1_Cik()
Dim s As Strng,c As String,a( 1 To 100)As Integer
Dim n As Integer,i As Integer,j As Integer,k As Integer,t As Integer
s=Text 1.Text:n=0
For i=1 To Len(s)
c=Mid(s,i,1)
If Not(c>=”0”And c<=”9”) Then
n=n+1
a(n)=①
j=0
Else
j=j+1
End If
Next i
For i=1 To n-1
②
For j=i+1 To n
If a(j) Mod 2= 1 Then
If Then k=j
ElseIf a(k) Mod 2=0 And a(j)>a(k) Then
k=j
End If
Next j
If k<>i Then t=a(k):③:a(i)=t
Next i
c=””
For i=1 To n
c=c+Str(a(i))
Next i
Label 3.Caption=c
End Sub
① ② ③
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
conn.ConnectionString = "provider=Microsoft.ACE.OLEDB.12.0;
data source = "+ App.Path+"\score.Accdb"
conn.Open
Set rs.ActiveConnection = conn
rs.Open "Select * from cj"
n=1
Do While Not rs.EOF
Score(n)=rs.fields(“成绩”):Name(n)=rs.fields(“姓名”)
n=n+1:rs.MoveNext
Loop
下列说法中不正确的是( )
i= 1
Do While i<= 6
a(i) = Int(Rnd()*10)+ 1
If a(i) Mod 2=i Mod 2 Then
i=i- 1
ElseIf i Mod 2= 0 Then
a(i)=a(i- 1)+ a(i)
End If
i=i+ 1
Loop
执行该程序段后,a(1)~a(6)各元素可能的值是( )
如10名运动员1号到10号的成绩分别是“13,6,9,8,10,11,10,14,16,13”,从高到低排序后,第一组的成绩依次是“16,13,10,10,9”,第二组的成绩依次是“14,13,11,8,6”。第1位的成绩分别是16和14,则第一组获胜得1分,第二组扣1分,再比较两个分组第2位的成绩13和13,则两组均不得分。依次处理,比较完剩余队员的成绩,可得第一组得分为2,第二组得分为-2。
编写一个VB程序,实现如下功能:在文本框Text1中依次输入成绩(偶数个整数,用逗号分隔并以逗号结尾),单击“确定”按钮Command1后,在列表框List1中显示对阵编号、对阵成绩及两个分组的最后得分。程序运行界面如图所示。
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer
Dim s As String, ch As String, sum1 As Integer, sum2 As Integer
Dim bh (1 To 50) As Integer, cj(1 To 50) As Integer
s= Text1.Text
j= 1: k=0
For i= 1 To ①
ch = Mid(s, i, 1)
If Not (ch>= "0" And ch <= "9") Then
k=k+1
bh(k)=k
cj(k) = Val(Mid(s, j, i-j))
②
End If
Next i
For i= 1 To k-2 Step 2
For j= k To ③ Step -1
If cj(j)> cj(j-2) Then
t= cj(j): cj(j)=cj(j-2): cj(j-2)=t
t= bh(j): bh(j)= bh(j-2): bh(j-2)=t
End If
Next j
Next i
sum1 = 0: sum2= 0
List1 .AddItem "对阵编号 对阵成绩"
For i=1 To k- 1 Step 2
If cj(i)> cj(i+1) Then
sum1 = sum1 + 1: sum2 = sum2- 1
sum1=sum1-1: sum2=sum2+1
End If
List1.AddItem adj(bh(i)) + "<-->" + adj(bh(i+1)) + adj(cj(i)) + "<-->" + adj(cj(i+1)
Next i
List1.AddItem"第一组得分: "+ adj(sum1)
List1.AddItem"第二组得分: " + adj(sum2)
End Sub
Function adj(x As Integer) As String
‘函数功能:将数值x转换成字符串,并在字符串的左侧添加若干空格。代码略
End Function
① ② ③
①授权码由9位字符组成,前三位为日期的密文,最后1位为验证码;
②日期的最后1位数字k(若k的值为0,令k=10),加密成26个大字英语字母表该位置对应的字母。
③将26个大写英文字母向左移k(日期的最后1位数字)个位置,并将移出的k个字母依次连接到最后。例如当k=3时,形成如下表所示新的字母排列顺序:
位置 |
1 |
2 |
3 |
4 |
…… |
23 |
24 |
25 |
26 |
字母 |
D |
E |
F |
G |
…… |
Z |
A |
B |
C |
④日期的第1个数字至第7个数字的加密方法是:计算第i个位置上的数字与第i+1个位置的数字及位置i三者相加的和,在新的字母表中取出该数字和对应的字母,作为第i个位置上数字加密字符。
⑤计算日期的各个位置上数字之和sum,若和sum的值大于26,在新的英文字表中,sum Mod 26对应字母转换成小写字母,作为验证码,否则验证码为新的英文字母表中对应字母。
Private Sub Command1_Click()
Dim i As Integer, j As Integer, s As String, k As Integer
Dim mw As String, sum As Integer, t As Integer, t1 As Integer
strl="0123456789"
s=Text1.Text
①
t=k: sum=t
s1=Mid(strl, t+1, 1)
For i=7 To 1 Step-1
t1=Asc(Mid(s, i, 1))-64
j= ②
s1=Mid(strl1, t+1, 1)+s1
sum=sum+t
Next i
mw=jm(k)
If sum>26 Then
sum=sum Mod 26
ch=Chr(Asc(Mid(mw, sun, 1))+32)
Else
ch=Mid(mw, sum, 1)
End If
If ch=Mid(s, 9, 1) Then Text2.Text=s1
Else Text2.Text="该系列号未能通过验证!"
End Sub
Function jm(t As Integer) As String
Dim i As Integer, p As Integer
If t=0 Then t=10
For i=1 To 26
p=(t+i-1) Mod 26
③
Next i
End Function
① ② ③
s=56
s1=s\10
s2=s Mod 10
s=s1+s2*10
Print "s="; s
当输入x的值为109时,在标签Label1中输出的内容为( )
方框中的代码由以下三部分组成:①s=s+Mid(s1,x,1)②x=Int(Rnd*n)+1 ③s1=Mid(s1,1,x-1)+Mid(s1,x+1)。代码顺序正确的选项是( )
d[1] | d[2] | d[3] | d[4] | d[5] |
15 | 15 | 8 | 23 | 7 |
Private Sub Command1_Click()
Dim s As String, resule As String, pos As String
Dim count As Integer, i As Integer
i = 1: count = 0: resule = "": pos = ""
Do While i <= Len(Text1.Text) ‘ i 是查找过程中所查找到的当前字符位置的标记
s = Mid(Text1.Text, i, Len(Text2.Text))
If s =Then
result = result + Text3.Text
count = count + 1
pos = ‘pos 依次显示被替换内容在原文中的起始位置
i = i + Len(Text2.Text)
Else
result=result+Mid(text1.text,i,1)
End If
Loop
Text4.Text = result
Text5.Text =
Text6.Text = pos
End Sub
救援物资一共有4种(第1种口罩、第2种酒精、第3种防护服、第4种耳温枪),每个城市仅能分配到1种物资,要求相邻城市所分配到的救援物资各不相同。
算法分析:采用试探法分配物资(每个城市都从第1种物资开始逐个试探)。
第i个城市能否分配第c种物资,关键取决于第i个城市的周边是否有分配到相同物资的城市。如果已有相邻城市分配到第c种物资,则换第c+1种物资,否则就将第c种物资分配给第i个城市,继续探索第i+1个城市。
如果第i个城市,4种物资都无法分配到,则退回到第i-1个城市,调整第i-1个城市的物资,重新试探下一种物资。直至所有城市的救援物资都分配好。
例如:给城市1分配第1种物资,然后给第2个城市分配物资时,也从第1种物资开始试探,若发现第1种物资已分配给相邻城市,则试探第2种物资,以此类推。
小金同学编写VB程序实现上述功能:程序运行时,各城市之间相邻关系矩阵显示在列表框List1中。单击“分配”按钮Command1,在列表框List2中显示物资分配方案。程序运行界面如图c所示,请回答下列问题。
图c
Private Sub Command1_Click() Const n = 8
Dim a(1 To n * n) As Integer, t(1 To n) As Integer, Dim w(1 To 4) As String Dim c As Integer, i As Integer, j As Integer,Dim f As Boolean
w(1) = "口罩": w(2) = "酒精": w(3) = "防护服": w(4) = "耳温枪"
‘读取8个城市的邻接矩阵对应关系,存入a数组中,并显示在列表框List1中,代码略
c = 1 t(1) = c i = 2
Do While
For j = 1 To i - 1
If Then
Exit For
End If
Next j
If j < i Then
c = c + 1
Do While c > 4
i = i - 1
If i = 0 Then
List2.AddItem "no answer"
Exit Sub
End If
c =
Loop
Else
t(i) = c
i = i + 1
c = 1
End If
Loop
List2.Clear
For i = 1 To n
List2.AddItem "城市" & i & ":" & w(t(i))
Next i
End Sub
Const n = 10
Dim d(n) As Integer, c As Integer
Private Sub Form_Load()
Dim i As Integer, j As Integer, f As Boolean, s As String
Randomize
c = n
For i = 1 To n
f = False
d(i) = ' 随机生成个位数为“9”的两位数
For j = 1 To i - 1
If Then f = True
Next j
If f Then c = c - 1
Next i
'原始数据在文本框Text1中显示。代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer, m As Integer
Dim cnt As Integer,t As String, s As String
d(0) = 100
cnt = Val(Text2.Text)
If cnt > c Then
Text3.Text = "输入筛选的个数太大,请重新输入!"
Exit Sub 'Exit Sub表示退出过程
End If
For i = 1 To cnt
k = i
For j = i + 1 To n
If d(j) < d(i - 1) And( )Then k = j
Next j
If k <> i Then
t = d(i): d(i) = d(k): d(k) = t
End If
Next i
For i = 1 To cnt
s = s + Str(d(i)) + ","
Next i
Text3.Text =
End Sub
Dim b As Integer
a=5:b=8
b=a*b
a=b+a
Text1.Text=Str(a)
该程序执行后,文本框上显示的内容是( )