For i = 4 To 3 Step -1
If a(i) < a(i-1) Then
tmp = a(i)
For j = i-1 To 1 Step -1
If tmp > a(j) Then Exit For
a(j+1) = a(j)
Next j
a(j+1) = tmp
End If
Next i
数组元素 a(1)到 a(6)的值依次为“19,8,96,92,85,88”,经过该程序段“加工”后,数组元素 a(1)到 a(6)的值依次为( )
①明文字符与对应密钥的ASCII码转化为二进制后求异或(对应位相同时结果为0,对应位不同时结果为 1,如二进制1001与二进制1100的异或值为0101),并将异或结果转换为十进制p;
②如果处在奇数位,则将明文字符循环后移p个位置,否则将明文前移p个位置。移动过程中保持大小写不变。
最后把所得到的字符连接起来就是密文。
例如,密钥是“abc”,明文“d”的加密过程是:字符“d”的ASCII码表示为二进制是1100100,密钥“a”的ASCII码表示为二进制是1100001,两数进行异或结果是:0000101,转化为十进制为5,因为是第1个位置,所以把明文后移5个位置,则密文是“i”。
该加密过程使用VB来实现。具体功能设计如下:在Text1中输入明文,Text2中输入密钥,单击“开始加密”按钮Command1后将密文显示在Text3中,界面设计如图所示。
请回答以下问题:
Private Sub Command1_Click()
Dim s As String, sn As String
Dim i As Integer, t As Integer, u As Integer
Dim p As Integer, g As Integer
sn = ""
For i = 1 To Len(Text1.Text)
t = Asc(Mid(Text1.Text, i, 1))
If t >= Asc("a") Then
g = Asc("a")
Else
g = Asc("A")
End If
u = Asc(Mid(Text2.Text, (i - 1) Mod Len(Text2.Text) + 1, 1))
p =
t = t - g
If i Mod 2 = 1 Then
t = (t + p) Mod 26
Else
t =
End If
sn = sn + Chr(t + g)
Next i
Text3.Text = sn
End Sub
Function txor(x As Integer, y As Integer) As Integer 'x、y求异或并返回十进制
Dim a As Integer, b As Integer, r As Integer, i As Integer
a = x: b = y
r = 1
For i = 1 To 7
If a Mod 2 <> b Mod 2 Then
a = a \ 2
b = b \ 2
r = r * 2
Next i
End Function
①“A”变为一个1到100内的随机数*27+1,“B”变成一个1到100以内的随机数*27+2,…,“Z”变为一个1到100以内的随机数*27+26;
②每个字母变为数字后会加一个“一”用来分割数字;
③其他空格和标点字符都按原来的表示。
李雷用VB编写了一个解密程序,功能如下:将邮件中密文的内容复制到文本框Text1中,点击“解密”按钮Command1后,程序会解密密文并将解密后的内容显示在文本框Text2中,程序运行界面如图所示。
Private Sub Command1_Click( )
Dims As String, yw As String, t As String
Dim Value As Integer
s=Text1.Text
Value=0
yw=""
For i=1 To Len(s)
t= ①
If t>="0" And t<="9" Then
Value=Value *10+Val(t)
Else If t="-" Then
yw=yw+Chr(Asc("A")+Value Mod 27-1)
②
Else
yw=yw+t
End If
Next i
Text2. Text=yw
End Sub
以上程序段运行时,为了实现上述功能,画线处应填入的代码分别为:①;②。
Const n = 20
Dim a(1 To n) As Integer
Dim lena As Integer
'数组a的实际长度
Dim s As String
Private Sub Form_Load()
'生成lena个长度的非递减序列,并输出到文本框text1中,代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer
i = 1
Do While i < lena
If a(i) <> a(i + 1) Then
i =
Else
For j = i + 1 To lena
a(j - 1) =
Next j
End If
Loop
s = ""
For i = 1 To lena
s = s + Str(a(i))
Next i
Text2.Text = s
End Sub
实现上述功能的VB程序如下,请回答下列问题:
Const k=5
Dim a(1 To k * k)As Integer
Private Sub Form_Load( )
‘生成数组a并以矩阵形式显示在列表框list1中
End Sub
Private Sub Command1_Click()
Dim b(1 To k, k * k)As Integer
Dim n As Integer
Dim row As Integer, col As Integer
Dim s As String
s=“”
n=Val(Text1. Text)
For i=1 To k * k
row=(i-1)\k+1
①
If row=n Then
b(i)=a((col-1)*k+n)
ElseIf col=n Then
②
Else
b(i)=a(i)
End If
s=s+Str(b(i))
If ③ Then
List2. AddItem s
s=“”
End If
Next i
End Sub
① ② ③
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer
Dim x1 As Single, x2 As Single, x3 As Single, t As Single Dim Totald As Integer, v As Single, s As String
s = Text1.Text
k = 0: j = 1: Totald = 0
For i = 1 To Len(s)
If Mid(s, i, 1) = "," Then
v = Val(Mid(s, j, i - j)) '提取三角形边长,保存在变量v中
①
If k Mod 3 = 1 Then
x1 = v
ElseIf k Mod 3 = 2 Then x2 = v
If x1 < x2 Then t = x1: x1 = x2: x2 = t
Else
x3 = v
If x1 < x3 Then t = x1: x1 = x3: x3 = t
If ② Then Totald = Totald + 1
End If
End If
Next i
Label1.Caption = "一共构成" + Str(Totald) + " 个直角三角形"
End Sub
① ②
dim X AS double
X=inputbox(“x=”)
if X<0 then
X=-X
endif
print X
a= int (input(请输入第一个数: "))
fh=input ("请输入运算符: ")
b=int (input("请输入第二个数: "))
flag=True
s=
if fh in s:
if fh=="+" :
c=a+b
elif fh=="-":
c=a-b
elif fh=="*":
c=a*b
else:
if
print("除数不能为0! ")
flag=False
else:
c=a/b
if flag==True:
print(运算的结果为: "+)
else:
print ("运算符不正确")
Private Sub Command1_ Click( )
Dim a(1 To 10) As Integer, i As Integer, k As Integer
a(1)=1:a(2)=17:a(3)=8:a(4)=9:a(5)=18
a(6)=15:a(7)=20:a(8)=13:a(9)=7:a(10)=11
k=0
For i= 2 To 9
If(a(i)-a(i-1))*(a(i+1)-a(i))< 0 Then k=k+1
Next
Text1. Text = Str (k)
End Sub
该程序段运行后后,文本框Text1中显示的内容是( )
Dim i As Integer, s As String, n As Integer
i =2:s=""; n= 100
Do While i< = n
If
Then s =s + Str(i)
i=i+1
Loop
用下列表达式替换方框处表达式后,不能实现原程序功能的是( )

score=int(input("请输入一个分数"))
if 100>=score>=90:
print("A")
if 90>score>=80:
print("B")
if 80>score>=60:
print("C")
if 60>score>=0:
print("D")
if score<0 or score >100:
print("输入错误!")
li = map(int, input(). split())
cnt=0
for i in li:
if :
nt+=1
print("奇数有{ }个。". format(cnt))
s = Text1. Text
i=1
Do While i<=Len(s)-1
If Mid(s, i, 2) =“热情”Then
s=Mid(s,1,i-1)+“激情”+Mid(s,i+2)
①
Else
i=i+1
End If
Loop
实现上述功能的VB代码如下,请回答下列问题:
Const n= 10
Dim a(1 To n) As Integer
Private Sub Form_ load( )
'数组初始化,生成1~20之间的随机整数并赋值给数组a,代码略
End Sub
Private Sub Cmd1_Click()
Dim i As Integer, j As Integer, t As Integer
Dim bottom As Integer
bottom= n
For i=1 To bottom-1
For j= bottom To i+1 Step -1
If
Then '①改错
t=a(j) : a(j)=a(i) : a(i)=t
ElselIf a(j)=a(i) Then
'②填空
bottom= bottom- 1
End If
Next j
Next i
Text2. Text=" "
For i=1 To bottom
Text2. Text= Text2. Text+Str(a(i))
Next i
End Sub
n="p4y2t3h1o9n4";p=""
for i in n:
if "0"<=i<="9":
if p=="":
p+=i
elif i>=p[-1]:
p+=i
elif i<p[0]:
p=i
执行该程序段后,则p的值是( )
Dim a(0 To 10) As String
s= Text1.Text
a(0)= "": a(1)= Mid(s, 1, 1):t= 1
For i= 2 To Len(s)
If t>= 1 And Mid(s, i, 1)= a(t) Then
t=t- 1
Else
t=t+ 1: a(t)= Mid(s, i, 1)
End If
Next i
运行程序段,在文本框Text1中输入以下字符串,运行后变量t的值与其它三项不同的是( )
算法描述:最小公倍数初始值设为较大数,如果能整除,则较大数就是最小公倍数;如果不能整除,让较大数乘以2,3,4...递增1的自然数,直到能整除为止。如输入“11,5”,输出结果为“55”,输入“8,12”,输出结果为“ 24″。
请填空完善该程序,实现功能:键盘上输入两个自然数m和 n(1≤n≤m≤1000),输出这两个数的最小公倍数。编写完成后原名保存并关闭应用软件。
m=int(input("请输入自然数m:"))
n=int(input("请输入自然数n:"))
i=1
if m<n:
m,n= #两数交换(用大数翻倍)
s=m #s的初始值较大数
while :
i = i+1
s =
print()