
Dim m2 As String
Private Sub Command1_Click()
Dim flag(1 To 26) As Boolean
Dim num As Integer,t As Integer
Randomize
num = 1
Text3.Text = “”
For i = 1 To 26
flag(i) = False
Next i
Do While num <= 26
x = Int(Rnd * 26) + 97
If flag(t) = False Then
m2 = m2 + Chr(x)
num = num + 1
End If
Loop
Text3.Text = m2
End Sub
Private Sub Command2_Click()
Dim s As String, m As String, result As String
Dim k As String, c As Integer
s = Text1.Text
m = “abcdefghijklmnopqrstuvwxyz”
For i = 1 To Len(s)
k = Mid(s, i, 1)
If k >= ”A” And k <= “Z” Then
k = Chr(Asc(k) + 32)
End If
c = 1: continue = True
Do While
If k = Mid(m, c, 1) Then
continue = False
End If
c = c + 1
Loop
Next i
Text2.Text = result
End Sub
s ="cbafedgh"
m=3:c="":n= Len(s)
For i =1 To n
j=(i-1)Mod 3 + 1
If m> n Then Exit For '退出For循环
c=c+ Mid(s,m-j+1,1)
If j Mod 3 =0 Then m =m+3
Next i
If i < n Then c = Mid(s,i,n-i + 1)+c
执行该程序段后,变量c的值是( )
For i = 1 To 6
a(i) = Int(Rnd() * 10) + 1
If a(i) Mod 2 = i Mod 2 Then
a(i) = a(i) + 1
Else
a(i) = a(i) Mod 2
End If
Next i
执行该程序段后,在下列选项中,a(1)~a(6)各元素可能的值是( )
n=Len(Text1.Text):c=1
For i=1 To n
s=Mid(Text1.Text,i,1)
If s>="0"And s<="1"Then
a(c)=a(c)*2+Val(s)
Else
If a(c)>0 Then c=c+1
End If
Next i
在文本框Text1中输入“A:1010 C:1100 E:1110”。执行该程序后,数组a(2)中的元素值为( )
编写一个验证哥德巴赫猜想的VB程序,程序运行时,在文本框Text1中输入一个大于或等于4的偶数,单击“验证”按键Command1后,如果猜想验证成功,则在文本框Text2中显示“Yes”,并在列表框List1中显示用两个素数表示该偶数的等式;否则显示“No”。程序运行界面如图所示。
实现上述功能的VB代码如下,但加框处代码有误,请改正。
Function judge(x As Integer) As Boolean
Dim j As Integer
judge=True
j=2
Do While j<=x-1 And judge=True
If x Mod j=0 Then
judge=False
Else
j=j+1
End If
Loop
End Function
Private Sub Command1_Click()
Dim n As Integer, p As Integer
Dim q As Integer, flag As Boolean
n=Val(Text1. Text)
p=1
flag=False
Do While
And p<n ‘①
p=p+1
‘②
If judge(p) And judge(q) Then
Text2. Text="Yes"
flag=True
List1. Addltem Str(n)+"="+Str(p)+"+"+Str(q)
End If
Loop
If flag=False Then
Text2.Text="No"
End If
End Sub
以上程序段运行时,为了实现上述功能,加框处代码应改正为:①;②。
图1
图2
Private Sub Command1_Click()
Dim a(1 To 100) As String ,s As String, ch As String, word As String
Dim i As Integer, j As Integer, k As Integer, numb As Integer
s = Text1.Text : k = 0 : word = ""
For i = 1 To Len(s)
ch = Mid(s, i, 1)
If ch >= "a" And ch <= "z" Or ch >= "A" And ch <= "Z" Then
If ch >= "A" And ch <= "Z" Then
word = word + ch
Else
flag = False
For j = 1 To k
If a(j) = word Then flag = True
Next j
If Not flag And word <> "" Then
a(k) = word
numb = numb + 1
End If
End If
Next i
Text2.Text = str(numb)
End Sub
xx=[35,29,28,42,21,38,17,44,18,19]
sum=0
for i in :
sum=sum+i
print("信息学科平均分为:"+str(ave))
xx=[35,29,28,42,21 ,38,17,44,18,19]
ty=[29,31,26,38,40,41,26,41,21,33]
c=0
for i in :
if :
c=c+1
print("技术学科分数大于等于80分的学生有:"str(c)+"个"
Private Sub Judge_Click( )
Dim x As Integer, i As Integer
Dim y As Long, flag As Boolean
flag = False
x = Val(Text1.Text)
i = 10
Label2.Caption = "该数的平方是:" + Str(y)
Do While y \ i > 0 And flag = False
t1 = y \ i
t2 = y Mod i
If Then
flag = True
Label3.Caption = Str(t1) + "+" + Str(t2) + " = " + Str(x)"
End If
i =
Loop
If Not flag Then Label3.Caption = "该数不是卡普利加数"
End Sub
)分米的圆,计算圆内所能包含的砖块数量,如图所示。

因为圆是一个中心对称图形,所以我们可以先计算出1/4圆区域内的砖块数量。因为正方形砖块的边长是1分米,所以1/4圆区域内共有n=int(r)列砖块,我们只需把每一列的砖块数量累加起来,就能计算出总的砖块数量。
我们可以按照上述算法编写程序,在文本框Text1中输入圆的半径,单击“计算”按钮(Com and1)后,在文本框Text2中输出圆内所能包含的砖块数量。
Private Sub Command1_Click()
Dimr As Double, s As Double
Dim x As Integer, y As Integer, n As Integer
r = Val (Text1. Text)
n= Int(r)
s=0:x=1:y=0
Do While x<= n
y =Int(Sqr()
s=s+y
x=
Loop
Text2. Text =
End Sub
x = 86420: s1 = "ByeBye2020": s2 = "Fighting2021" result = ""
Do While x > 0
r = x Mod 10
If r Mod 3 = 0 Then
result = Mid(s1, r + 1, 1) & result
Else
result = result & Mid(s2, r + 1, 1)
End If
x = x \ 10
Loop
Text1.Text = result
执行该程序段后,文本框Text1中显示的内容是( )
Private Sub Cmd1_Click()
Dim s As String, s1 As String, t As Integer, i As Integer
Dim k As Integer, bh As Integer, w As Integer
Dim w1 As Integer, w2 As Integer
s = Text1.Text: k = 1: t = 0: bh = 0 'bh存储当前垃圾的垃圾编号
w1 = 0: w2 = 0
For i = 1 To Len(s) s1 = Mid(s, i, 1)
If Then
t = t * 10 + Val(s1)
Else
If Then
bh = t
Else
If bh = 1 Then
w1 = w1 + t
Else
w2 = w2 + t
End If
End If
k = k + 1
End If
Next i
List1.AddItem "干垃圾共" + Str(w1) + "斤"
List1.AddItem "湿垃圾共" + Str(w2) + "斤"
Label3.Caption = "总重量共有" + Str(w) + "斤"
End Sub
例如:图a中放映厅内座位有9排10列,第5排10个座位的等级值依次为:1,2,3,4,5,5,4,3,2,1。全部座位为空时,当前购票人数为5,推荐座位编号为5排3-7号;如图b所示已经部分选座状态下,当前购票人数为2,推荐座位编号为6排3-4号。
编写VB程序,模拟上述功能。运行程序,在列表List1中显示目前选座状态,黑点表示已选座,白点表示空位,在文本框Text1中输入购票人数后,单击“推荐”按钮Command1,在标签Label3显示当前购票人座位的推荐结果。程序运行界面如图c所示。
Const m = 9 'm 表示座位有9排
Const n = 10 'n 表示每排的座位数为10
Dim r As Integer 'r 表示当次输入的购票人数
Dim a(1 to m * n) As Integer 'a 数组存放每个座位的等级值
Dim b(1 to m * n + 1) As Integer 'b 数组保存当前各座位选座情况,选中为1,未选为 0
Private Sub Form_Load()
'从第1排开始,按座位编号从小到大顺序逐排读取座位等级值并依次存入数组a
'同上述顺序,读取选座状态存入数组元素b(1)至b(m*n)中,输出当前选座状态。代码略
End Sub
Function getsum(i As Integer, j As Integer) As Integer
'从第i排第j列开始,计算第i排中满足r个观众就座的连续空位等级值之和。
'若无法找到足够的连续空位时,则返回-1
Dim p As Integer, sum As Integer, k As Integer
sum = 0
p = j: k = (i - 1) * n + p
Do While p <= j + r - 1 And b(k) = 0
sum =
p = p + 1: k = k + 1
Loop
If p = j + r Then getsum = sum Else getsum = -1
End Function
Private Sub Command1_Click()
Dim i As Integer, j As Integer, s As String, max As Integer
Dim t As Integer, newi As Integer, newj As Integer, pos As Integer
r = Val(Text1.Text)
max = 0
For i = 1 To m
For j = 1 To n - r + 1
If max < t Then max = t: newi = i: newj = j
Next j
Next i
If max = 0 Then
Label3.Caption = "请自主选位" Else
pos = (newi - 1) * n + newj
For i =
b(i) = 1
Next i
Label3.Caption = "推荐座位编号:" & newi & "排" & newj & "-" & newj + r - 1 & "座"
End If
End Sub
x=0
for i in range(1,100):
x=x+i
print(x)
s1 = "00100100" : s2 = "" : flag = True
For i = Len(s1) To 1 Step -1
ch = Val(Mid(s1, i, 1))
If flag Then
s2 = Str(ch) + s2
If ch = 1 Then flag = False
Else
s2 = Str(1 - ch) + s2
End If
Next i
Label1.Caption = s2
执行该程序段后,标签Label1中显示的内容是( )
s1 = "PROGRAM": s2 = ""
For i = 1 To 4
t = Int(Rnd * 4) * 2 + 1
Do While f(t)
t = Int(Rnd * 4) * 2 + 1
Loop
f(t) = True
s2 = s2 + Mid(s1, t, 1)
Next i
Label1.Caption = s2
数组f 各元素的初值为False,执行该程序段后,标签Label1上显示的内容可能是( )
s='t1Hr2a3'
s1='' ; s2=''; i = 0
while i < len(s):
if '0'<=s[i]<='9':
s1 = s1 + s[i]
elif 'a'<=s[i]<='z':
s2 = s[i] + s2
i = i + 1
ans = s2 + s1
print(ans)
程序执行后,输出的结果是( )
实现上述功能的Python程序代码如下:
chepai = input('请输入您的车牌:浙A')
for i in range( , -1):
if '0' <= chepai[i] <='9':
lastnum = int(chepai[i])
if lastnum % 2 == 0:
print('车牌尾号双号,单号日限行!')
else:
print('车牌尾号为单号,双号日限行!')
break
划线处应填入代码是( )
Private Sub Command1_Click( )
Dim i As Integer
For i = 100 to 999
Next i
End Sub
Public Sub suixian(x As Integer)
Dim i%,j%,k%
i =
j = (x -i * 100)\10
k =
If Then Print x
End Sub
一共有n(3<=n<=100)个学校,各所学校之间的线路长度以一行共n*n个数据输入,
第i组的n个数据为从第i个学校出发到其他学校的线路长度,保证第i组的第i个数据为0。
编写VB程序,实现上述功能。运行程序,在文本框Text1中输入学校总数,
在文本框Text2中按题述方法输入各校之间的距离,点击命令按钮Command1后,在标签Label1中显示最短的线路总长。程序运行界面如图所示。
请回答下列问题:
Const INF = 2147483646
Dim n As Long, a As Long
Dim dis(1 To 10001) As Long, flag(1 To 10001) As Boolean
Dim head(1 To 10001) As Long, nxt(1 To 10001) As Long
Dim ed(1 To 10001) As Long, value(1 To 10001) As Long
Dim cnt As Long, tby As Long, sss As String
Dim i As Long, j As Long
Private Sub Command1_Click()
cnt = 0
n = Val(Text1.Text)
For i = 1 To n
dis(i) = INF : flag(i) = False : head(i) = 0
Next i
tby = 1
sss = Text2.Text
For i = 1 To n
For j = 1 To n
If i <> j Then Call addedge(i, j, a)
Next j
Next i
Dim ans As Long
dis(1) = 0 : ans = 0
For i = 1 To n
Dim hg As Long, u As Long
hg = INF
u = 0
For j = 1 To n
If Then
hg = dis(j)
u = j
End If
Next j
flag(u) = True
Dim p As Long
p = head(u)
Do While p <> 0
Dim v As Long
v = ed(p)
If Not flag(v) And dis(v) > value(p) Then
dis(v) = value(p)
End If
p = nxt(p)
Loop
Next i
Label1.Caption = Str(ans)
End Sub
Sub addedge(a As Long, b As Long, x As Long)
cnt = cnt + 1
value(cnt) = x
ed(cnt) = b
nxt(cnt) = head(a)
head(a) = cnt
End Sub
Function Getin() As Long
Dim aaa As String
aaa = Mid(sss, tby, 1)
If aaa = " " Then tby = tby + 1
aaa = Mid(sss, tby, 1)
Dim bbb As Long
bbb = 0
Do While aaa <> " " And tby <= Len(sss)
bbb = bbb * 10 + Val(aaa) : tby = tby + 1
aaa = Mid(sss, tby, 1)
Loop
Getin = bbb
End Function