1)将明文中每个字符用8位二进制ASCII码(不足八位的左端补0,凑足八位)表示;如“A”的二进制ASCII码值为01000001;
2)对8位二进制编码进行取反码(0变1,1变0)操作,如01000001的反码是10111110;
3)将8位二进制反码用2位十六进制表示,得到该字符的密文;
4)将每个字符的密文按照明文的倒序连接。
实现上述功能的VB程序如下:
Private Sub Command1_Click()
Dim i As Integer, j As Integer, m As Integer, k As Integer
Dim c As String, x As Integer, y As Integer
Dim d(1 To 8) As Integer '数组d存储字符ASCII码二进制从左到右的各位数码
Dim mw As String 'mw存储密文
mw = ""
For i = 1 To Len(Text1.Text)
c = Mid(Text1.Text, i, 1)
For j = 1 To 8
‘I处
Next j
m = Asc(c)
k = 8
Do While
‘II处
d(k)= ①
m = m \ 2
k = k - 1
Loop
mw = btoh(d) + mw
Next i
Text2.Text = mw
End Sub
Function btoh(m() As Integer) As String
′自定义函数是将m数组中的二进制数转换成对应的十六进制数
Dim s As Integer, i As Integer
Dim str As String, ch As String
str = "0123456789ABCDEF"
s = 0: ch = ""
For i = 1 To 8
s = s * 2 + m(i)
If ② Then
btoh =btoh+ Mid(str, s + 1, 1)
s = 0
End If
Next i
End Function
阅读分析程序代码,请回答下列问题:
① ②
1)用数组b存储最小下降数列中最小的元素(查找过程中的最小值)b(1)开始为数组a第1个元素;
2)加入方法:将a(i)与数组b中的每个元素依次逐个比较:若a(i)比b(j)小就用a(i)替换b(j)中的值;将a(i)添加到第j个下降数列中,并存储在c数组的c(j)中;
3)若数组a各元素的值为:34,54,3,76,2,3时,则3个下降数列分别为:
“34,3,2”,“54,3”,“76”。
程序运行界面如下图所示:
依据上述描述设计了如下VB程序。请回答下列问题:
Const n = 20
Dim a(1 To n) As Integer
Private Sub Form_Load()
'读取n个数据,依次存储到a(1)、a(2)、……a(n)中,代码略
End Sub
Private Sub Command1_Click()
Dim b(1 To n) As Integer '存储数列最小的值
Dim c(1 To n) As String '存储下降数列
Dim i As Integer
Dim j As Integer
Dim bn As Integer '存储下降数列个数
b(1) = a(1)
bn = 1
c(1) = Str(a(1))
For i =
For j = 1 To bn
If a(i) < b(j) Then
b(j) = a(i)
Exit For
End If
Next j
If j > bn Then
bn = bn + 1
c(bn) = Str(a(i))
End If
Next i
For i = 1 To bn
List1.AddItem c(i)
Next i
Text2.Text = "数列中共有" + Str(bn) + "个下降序列"
End Sub
For i = 1 To 6
x = Int(Rnd * 10) + 1
If i Mod 2 <> x Mod 2 Then
a(i) = x
Else
a(7 - i) = x
End If
Next i
数组a各元素的初始值为0,执行程序后a数组各元素的值不可能是( )
小罗编写VB程序实现上述功能:程序运行时,读取所有城市数据保存在变量shuju中并显示在列表框List1中。在文本框Text1中输入“南区”或“北区”,文本框Text2中输入n的值,单击“排名”按钮Command1,对数据进行统计分析,并在列表框List2中显示治愈率最高的n个城市,如有与第n个城市相同治愈率的城市,则同时输出。程序运行界面如图所示,请回答下列问题。
Dim shuju As String, a(1 To 100) As String
Dim t As Integer, i As Integer, j As Integer, c As String, p As Integer, temp As String, q as String Dim f As Boolean, n As Integer, k As Integer
'读取所有城市数据保存在变量shuju中,并显示在列表框List1中,代码略
t = Len(shuju)
i = 1: p = 0: j = 1
Do While i <= t
c = Mid(shuju, i, 1)
If c = "/" Or c = ";" Then
p = p + 1
a(p) = j = i + 1
End If
i = i + 1
Loop
q = Text1.Text : n = Val(Text2.Text) : i = 1
Do While i <= p \ 4 - 1
k = i
IfThen f = True Else f = False
For j = i + 1 To p \ 4
If a(4 * j - 3) = q Then
If Val(a(4 * j)) / Val(a(4 * j - 1)) > Val(a(4 * k)) / Val(a(4 * k - 1)) Or Not f Then k = j
End If
End If
Next j
If k <> i Then
temp = a(4 * k - 3): a(4 * k - 3) = a(4 * i - 3): a(4 * i - 3) = temp
temp = a(4 * k - 2): a(4 * k - 2) = a(4 * i - 2): a(4 * i - 2) = temp
temp = a(4 * k - 1): a(4 * k - 1) = a(4 * i - 1): a(4 * i - 1) = temp temp = a(4 * k): a(4 * k) = a(4 * i): a(4 * i) = temp
End If
If
Then
List2.AddItem a(4*i-3) & "/" & a(4*i-2) & "/" & Format(Val(a(4*i)) / Val(a(4*i-1)), "0.00%") & ";"
i = i + 1
Else
Exit Do
End If
Loop
End Sub
Dim cj(1000) As Integer, n As Integer
Private Sub btncmd1_Click( )
Dim i As Integer, j As Integer
Dim k As Integer ,tmp As Integer
For i = 2 To n
tmp = cj(i)
j = BinarySearch
For k = i To j + 1 Step -1
cj(k) = cj(k - 1)
Next k
cj(k) = tmp
Next i
For i = 1 To n
List1.AddItem Str(cj(i))
Next i
End Sub
Private Sub btncmd2_Click()
Dim i As Integer
i = BinarySearch(Val(Text1.Text), 1, n)
Label2.Caption = "共有" ++ "位同学大于等于该成绩。"
End Sub
Function BinarySearch(key As Integer,i As Integer,j As Integer) As Integer
Dim m As Integer
Do While i <= j
m = (i + j) \ 2
If cj(m) >= key Then
j = m - 1
Else
i = m + 1
End If
Loop
BinarySearch =
End Function
Private Sub Form_Load()
'从数据库获取n个成绩存储在 cj(1) ~cj(n)组中,代码略
End Sub
ch = Mid(s, i, 1)
If ch >= "0" And ch <= "9" Then
k = (Val(ch) - 1) Mod (Len(s) - 4) + 1
s1 = Mid(s, k, 1) + s1
End If
Next i
Text1.Text = s1
程序执行完后,Text1 中显示的内容是( )
① 用1-n数字代表n个作品,打乱顺序后分配给n个选手。分配方案保存在数组a中,如图a存储了两组分配方案(n=5)。在第一个分配方案中把4号作品分配给1号参赛者,1号作品分配给2号参赛者(选手编号与序号错开)……。
②分配方案的形成方法: 将1~n之间的随机数字依次放到第1个位置、第2个位置……,随机数不能与位置号相同,并且要防止分配冲突,如前三个分配序号是“2 3 4”,那么在第4位上只能放“5”(如放“1”会导致第5个位置没有符合要求的数字,因此位置n-1需要判断数“n”是否已经分配,如果未分配,位置n-1放置数“n”),最终方案“2 3 4 5 1”。
③评m个作品需要m个分配方案。方案间要避免同一个人拿到重复的作品。如第16题图a第3行上的数据“5 1 2 3 4”不符合要求,因为会使第2号选手重复拿到1号作品。
小明依据上述方法设计了VB程序,功能如下:在文本框Text1和Text2分别输入参赛人数和每人打分的作品数量,单击“分配”按钮Command1,在列表框List1中输出结果。程序运行效果如图b所示。
请回答下列问题:
Dim n As Integer '总人数/总作品数
Dim m As Integer '每人分配篇数
Dim a(1 To 500) As Integer '数组a大小满足处理要求
Dim c(1 To 100) As Integer '数组c大小满足处理要求
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer
n = Val(Text1.Text): m = Val(Text2.Text)
Randomize
i = 1
Do While i <= m
For j = 1 To n
c(j) = 0 '本轮分配方案中还没有数字j, c(j)=0,否则c(j)=1
Next j
For j = 1 To n
If j = n - 1 And c(n) = 0 Then
①
Else
k = r(n, j)
End If
a((i - 1) * n + j) = k '分配数字k到当前方案的第j个位置上
c(k) = 1
Next j
If ② Then i = i + 1
Loop
s = ""
For i = 1 To n
s = "参赛者" & i & ":"
For j = 1 To m
s = s + Str(a((j - 1) * n + i))+ ","
Next j
List1.AddItem s
s = ""
Next i
End Sub
Function r(x As Integer, y As Integer) As Integer
'生成一个取值在[1,x]之间,可以放在y位置上的随机数,满足条件r<>y andc(r)=0
End Function
Function check(c As Integer) As Boolean
'本轮方案和前面几次的分配方案比较,如果有人分到了重复作品,返回FALSE
Dim p As Integer, f As Boolean
f = True
p = 1
For i = 1 To c * n
If ③ Then
f = False: Exit For
End If
p = p mod n +1
Next i
check = f
End Function
① ② ③
设计一个VB程序,通过在文本框Text1输入托运行李的质量,计算并输出托运行李的费用,行李质量超过150千克,则显示“行李超重!”。结果在文本框Label1中显示。程序运行界面如图a所示。
Private Sub Command1_Click( )
Dim x As Double,y As Double
①
If x>150 Then
Label1l.Caption="行李超重!"
Else
If ② Then
y=0.35*50+0.5*(x-50)
Else
y=0.35*x
③
Label1.Caption="行李收费"+ ④ 十"元"
End If
End Sub
画线处应填入的代码为:①;②;③;④。
Dim a(1 To 10)As Integer
Dim i As Integer, k As Integer
For i=1 To 10 Step 2
a(i)=1
Next i
For i=1 To 10
If i Mod 3=0 Then a(i)=1-a(i)
Next i
For i=1 To 10
If a(i)=1 Then k=k+1
Next i
该程序段执行后,变量k的值为( )
import random
def judge(player,computer):
if player == computer:
print("平局")
elif ①
print("玩家赢")
else:
print("电脑赢")
dic={0:"石头",1:"剪刀",2:"布"}
player = intinput("请输入序号(0.石头1. 剪刀2.布):"))
if player != 0 and player != 1 and player != 2:
print("请重新输入!")
else:
②
print("玩家出:",dic[player])
print("电脑出:",dic[computer)
③
请回答下列问题:
① ② ③

实现上述功能的程序如下,请在划线处填入合适的代码。
def isprime(x):
for i in range(2,x):
if :
return False
return True
n=int(input("请输入一个正整数 n:"))
c=0
k=3
while k<=n-2:
if isprime(k) and :
print(k,k+2)
k=k+1
print("共有"+str(c)+"对双胞胎数")
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
s="abcdefg"
c=len(s) #len求字符串长度
for i in range(0,c):
if i<2:
print (chr(ord(s[i])+2),end=" ") #ord()函数是chr()函数配对函数,将字符转ASCII值
else:
print(chr(ord(s[i]) + 3),end=" ")
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中显示的内容是( )
它的可以用哪个流程图表达( )。
B .
C .
s=0
for k in range(7,2,-2):
if k <=3:
x=1
if k <=5:
x=3
if k <=7:
x =5
s =s+x
print(s)
执行该程序段后,输出显示的内容是( )
Dim c As Integer
Private Sub Form_ Load( )
c=0:Text1.Text=" "
End Sub
Private Sub Text1_ Change( )
If Val(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中显示的内容分别是( )
①请填空完善该程序,实现功能:计算表达式s=1-2+3-4……+99=100的值并输出结果;
②编写完成后原名保存并关闭应用软件。
s=0
for i in range(1,):
if :
s=s-i
else:
print()