解密规则:将整数中各个位中的每一位值乘以5,然后除以8所得余数即为该位的值,然后将所得数的首末位进行交换。如数字9357,解密后的值为3715。
Private Sub Decryp_Click( )
Dim zs As Long, g As Integer
Dim b As Integer, q As Integer
Dim m As Integer, s As Integer
Dim jmh As String
zs = Val(Text1.Text)
For m = zs To
q = (m \ 1000) * 5 Mod 8
b = ((m \ 100) Mod 10) * 5 Mod 8
s = ((m \ 10) Mod 10) * 5 Mod 8
g = (m Mod 10) * 5 Mod 8
List1.AddItem Str(m) + " " + jmh
Next m
End Sub
PRIVATE SUB FORMCLICK
FOR I = 3 TO
F=0
FOR J= 2 TO I-1
IF THEN
F=1
EXIT FOR
END IF
NEXT J
IF F=0 THEN
END SUB
进转为进制程序
Private Sub Command1 _Click( )
Dim s As String, st As Long, ch As Integer
Dim i As Integer, n As Integer
①
n=Len(s)
st=0
For i=1 To n
ch= ②
st=st+ch*2^(i- 1)
Next i
Text 2. Text = Str(st)
End Sub
① ②
Const n = 6
Dim a(1 To n)As Integer,f(1 To 10)As Boolean
Dim tmp As Integer,i As Integer,j As Integer,tAs Integer
'f数组各元素的初值置为False,代码略
For i = 1 To
t = Int(1 + Rnd * 10)
If Not f(t)Then
a(i)= t:f(t)= True
For j=
If a(j) < a(j - 1)Then
tmp = a(j): a(j)= a(j-1):a(j-1)= tmp
End If
Next j
Else
End If
Next i
上述程序段3个方框处的表达式分别为 ( )
s="ERROR:Divisor must not be zero!"
flag=False:m=0
For i=1 To Len(s)
ch=Mid(s, i, 1)
If ch>="a" And ch <="z" Then
If Not flag Then
m=m+1:flag=True
End If
Else
flag=False
End If
Next i
Text1.Text=Str(m)
Private Sub Form Load()
Dims As String
s=Str(Val(“2020”) +Len(“加油!”) )
Label1.Caption=s
End Sub
下列说法正确是( )
小明使用VB实现该排序,设计功能如下:随机生成两位正整数并显示在List1中,单击按钮“Command1”后将排序完成的数据显示在List2中。界面如图所示。
请回答以下问题:
Const n= 5 '矩阵大小
Dim a(1To n*n) As Integer
Private Sub Form_Load()
'随机生成n*n的矩阵数据,并依次保存在数组a(1)~a(n*n)中
'以n*n矩阵形式在list 1中显示数据,代码略
End Sub
Private Sub Command 1_Click()
Dim i As Integer, j As Integer, k As Integer, t As Integer
Dim startpos As Integer, endpos As Integer, s As String
For i= 2 To 2*n-2
If i<=n Then
startpos=(i-1) *n+ 1
endpos=i
Else
startpos= ①
endpos=(i-n+1) *n
End If
Do While startpos>endpos
②
j=startpos-n+1
Do While j>=endpos
If a(j) <a(k) Then k=j
j=j-n+1
Loop
If k<>startpos Then
t=a(k) :a(k) =a(startpos) :a(startpos) =t
End If
start pos=startpos-n+ 1
Loop
Next i
For i=1To n
s=””
For j=1To n
s=s+ ③
Next j
List 2.Add Item s
Next i
End Sub
① ② ③
Dim a(1 To 100) As Integer, n As Integer
Function moving( start As Integer, finish As Integer, st As Integer)
'将元素 a(finish)插入到元素 a(start)和元素 a(start+st)之间
Dim i As Integer, k As Integer k = a(finish)
For i = finish - st To start Step -st a(i + st) = a(i)
Next i a(start) = k
End Function
Private Sub Command1_Click()
Dim head As Integer, end1 As Integer, i As Integer, ans As String
' 将待排序的数存储在数组 a 的 a(1)至 a(n)中,并输入元素个数 n,代码略
head = 1: end1 = n + 1
Do While head < end1
If ① Then
For i = 1 To head - 1
If a(i) > a(head) Then Exit For
Next i
Call moving(i, head, 1)
head = ②
Else
For i = end1 To n
If a(i) < a(head) Then Exit For
Next i
Call moving( ③ )
End1 = end1 - 1
End If
Loop
For i = 1 To n
ans = ans + Str(a(i))
Next i
Text2.Text = ans End Sub 请回答下列问题:
① ② ③
i =n
Do while i>=2
For j=
If a(j) > a(j- 1) Then
t = a(j): a(j) = a(j-1): a(j-1) =t
End If
Next j
i=i-1
Loop
执行完上述程序段后,实现a数组元素有序排列,则划线处的代码可以是( )
①n To n + 2- i Step –i ②n To i + 1 Step -1 ③2 To i ④2 To n-i
For i=1 To 4
k=i
For j=5 To i+1 Step-1
If a(j)<a(k) Then k=j
Next j
If k<> i Then
tmp=a(k) : a(k)=a(i) : a(i)=tmp
f(i)=True
End If
Next i
当数组元素a(1)到a(5)的值依次为“8,2,1,21,3”数组f的初值均为 False,执行该程序段,f数组中元素值为True的个数有( )
①for i in range(1,26,3): ②print(s) ③s = 0 ④s = s + i
正确的语句顺序是( )。
Private Sub Command1_Click()
Dim a As Integer, s As String
Dim n As Integer, t As Integer, v As Integer
n = Val(Text1.Text)
t = 0
s = ""
Do While n > 0
a = n Mod 2
n = n \ 2
t =
s = Str(a) + s
Loop
v = t Mod 2
Text2.Text = s
Label3.Caption = "校验位值:" +
End Sub
若假定某用户一个月的用电量为x千瓦时,当前单价为p元/千瓦时,则计算标准如下:当x≤50时,电费为p×x元;当50<x≤200时,电费为p×x+(x-50)×0.03元;当x>200时,电费为p×x+4.5+(x-200)×0.1元。
程序设计界面如下图所示,程序的功能是:在文本框Text1中输入用电量x(单位:千瓦时),在文本框Text2中输入电量p(单位:元),单击“计算”按钮(Command1)后,在标签Label4中输出计算结果。
Private Sub Command1_Click()
Dim x As Single, p As Single
Dim s As Single
x =
p = '此处改错
If x <= 50 Then
s = p * x
s = p * x + (x - 50) * 0.03
Else
s = p * x + 4.5 + (x - 200) * 0.1
End If
Label4.Caption = "本月的电费为:" + + "元"
End Sub
改正:
i=1:j=8:s=0:c=0
Key= Int(Rnd * 10) +41
flag = True
Do Whilei<= j And flag
c=c+ 1
m-(i+j)\2
If Key = a(m) Then flag = False
If Key < a(m) Thenj=m-1 Elsei=m+ 1
s=s* 10+ m
Loop
数组元素a(1)到a(8)的值依次为“10,20,30,40,50,60,70,80”,执行该程序段后,下列说法错误的是( )
实现上述功能的VB程序如下,请回答下列问题:
Dim n As Integer
Dim L As String
Dim i as Integer
Dim j as Integer
Dim a(1 To 100) As Integer
Dim b(1 To 100) As Integer
Private Sub Command1_Click()
n = Val(Text1.Text)
Randomize
For i = 1 To n * n
a(i) = + 1
Next i
For i = 1 To n
L = ""
For j = 1 To n
L = L + " " + Str(a((i - 1) * n + j))
Next j
List1.AddItem L
Next i
End Sub
Private Sub Command2_Click()
List2.Clear
For i = 1 To n
L = ""
For j = 1 To n
b((i - 1) * n + j) =
L = L + " " + Str(b((i - 1) * n + j))
Next j
List2.AddItem L
Next i
For i = 1 To n * n
a(i) =
Next i
End Sub
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