a=12
b=54
a=b
b=a
该程序段运行后,a,b的值分别为、,该程序结构属于结构(选填:顺序、选择、循环)。
Function delStr(S As String,m As Integer)As String
Dim n As Integer:n=Len(S)
If m<1 Or m>n Then delStr=“输入位置有误!”
If m=1 Then delStr=Mid(s,2,n-1)
If m<n Then delStr=Mid(s,1,m-1)+Mid(s,m+1,n-m)
If m=n Then delStr=Mid(s,1,n-1)
End Function
Private Sub Command1_Click()
Dim S As String:Dim i As Integer
S=Text1.Text
For i=1 To 10 Step 2
S=delStr(S,i)
Next i
Text2.Text=S
End Sub
文本框Text1中输入Happybirthday,执行该程序段,文本框Text2中显示的是( )
a = a + b
b = a + b
a和b的值分别为( )
编码中位 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
对位信息 |
p1 |
p2 |
b1 |
p3 |
b2 |
b3 |
b4 |
校验的方式如下,求校验值g1、g2、g3:
g1 = p1 Xor b1 Xor b2 Xor b4
g2 = p2 Xor b1 Xor b3 Xor b4
g3 = p3 Xor b2 Xor b3 Xor b4
其中Xor 为异或运算,规则是:0 Xor 0 =0,0 Xor 1 =1,1 Xor 0 =1,1 Xor 1 =0,
p1 Xor b1 是将p1、b1 转换为二进制后按位进行异或运算,如7 Xor 12 的结果为11。
⑴若计算得到的校验值g1、g2、g3均为0,说明校验正确,数据无错误。例如:若7位编码为1101001,计算校验值g1、g2、g3值均为0,验证正确。
⑵若校验值g1、g2、g3不全为0,说明数据有错,出错位置为g3g2g1(二进制数表示),纠错的方法是对错误的位进行取反,即“0”变“1”,“1”变“0”。例如:若7位编码为1111001,计算校验值g1=1、g2=1、g3=0,不全为0,说明数据有错,错误位置在011(二进制数)位,即第3位,原位置上“1”应为“0”,正确编码为1101001。
小明为此编写了VB程序,程序运行时,在文本框Text1中输入编码值,单击“校验”
按钮Command1后,在文本框Text2中输出运行结果,如图所示。
实现上述功能的VB程序如下,请回答下列问题:
Function check(s As String) As Integer
Dim i As Integer g1 As Integer, g2 As Integer, g3 As Integer
Dim c(1 To 7) As Integer
For i = 1 To 7
c(i) = Val(Mid(s, i, 1))
Next i
g1 = c(1) Xor c(3) Xor c(5) Xor c(7)
g2 = c(2) Xor c(3) Xor c(6) Xor c(7)
g3 = c(4) Xor c(5) Xor c(6) Xor c(7)
If g1 + g2 + g3 = 0 Then check = 0 Else check =
End Function
Private Sub Command1_Click()
Dim i As Integer, m As Integer, Outs As String
m =
If m = 0 Then
Text2.Text = "验证正确,数据无错误"
Else
For i = 1 To 7
If i = m Then
Outs = Outs + Chr( Asc(Mid(Text1.Text, i, 1)) Xor )
Else
Outs = Outs + Mid(Text1.Text, i, 1)
End If
Next i
Text2.Text = "第" + Str(m) + "位上数据有错误,正确编码应为:" + Outs
End If
End Sub
Private Sub Command1_Click()
Dim a(1 To 5) As Integer
a(5)=Val(Text1.text)
For i=4 To 1 Step -1
a(i)=a(i+1)\2
Next i
Label1.caption=str(a(1))
End sub
在文本框Text1中输入“100”,单击命令按钮Command1后,标签Label1中显示的内容是( )
Dim a(1 To 100) As Integer
Dim b(1 To 100) As Integer
Dim c As Integer
a(1) = 0: a(2) = 2: b(1) = 1: b(2) = 2: c = 0
For i = 2 To 6
a(i + 1) = 2 * a(i) - a(i - 1)
b(i + 1) = b(i) ^ 2 / b(i - 1)
c = c + a(i + 1) + b(i + 1)
Next i
Label1.Caption = Str(c)
该程序运行后,Label1中显示的内容是( )
Private Sub Command1 _Click( )
Dim As Integer, k As Integer, r As Integer
Dim s As String, c As String
d =Val(Text1. Text)
k =Val(Text2.Text)
s = “”
Do While d > 0
r=d Mod k
If r > = 10 Then
c = mid (“ABCDEF”, ① ,1)
Else
c= str(r)
End If
s= ②
d =d \k
Loop
Label1. Caption= “结果为: “+s
End Sub
① ②
Private Sub Cmd1_Click( )
Dim i As Integer, n As Integer
Dim max As Integer, count As Integer
Dim s As string
s= Text1. Text
n= Len(s)
count = 1 : max =1
For i= 2 To n
If ① Then
count= count+ 1
Else
If count > max Then
max count
End If
count = ②
End If
Next i
Label1. Caption= "最长连续子串字符数为:"+str (max)
End Sub
① ②
程序功能:在文本框Text1中输入课程名称,单击“查询”按钮Command1,在列表框List1中显示选择该科目的学生信息。如果没找到在列表框List1中显示“该科目没人选择!”。按此要求将程序补充完整。
Private Sub Command1_Click ( )
Dim conn As New ADODB Connection
Dim rs As New ADODB. Recordset
Dim h(1 To 40) As String, m(1 To 40) As String
Dim n As Integer
conn Connectionstring = "provider = microsoft. ACE OLEdB. 12.0; data source ="+ App. Path + “\ ① “
conn. Open
Set rs, ActiveConnection conn
strsql ="select xh, xm from ② where km = ‘ “ & Text1. Text &“ ‘ “
rs Open strsql
List1. Additem "学号" + "姓名”
Do While Not rs EOF
n = n+1
h(n)= rs Fields ("xh")
m(n) = ③
④
Loop
If n=0 Then
List1. AddItem “该科目没人选择!”
Else
For i =1 To n
List1.AddItem h(i) &” ” & m (i)
Next i
End If
rs Close
conn. Close
Set rs = Nothing
Set conn = Nothing
End Sub
① ② ③ ④
Private Sub Command 1_Click()
Const n = 15
Dim a(1 To n)As Integer,search As Integer,key As Integer
Dim i As Integer,j As Integer,m As Integer
'读取一组正整数,按上述规则存入数组a中,代码略
key = Val(Text1.Text)
i = 1:j = n:search = 0
Do While i <= j
m =(i+j)\2
If m Mod3<>0 Then m= ‘⑴把m调整到三个数一组的最后一个数的位置
If key = a m)Then
search = m:Exit Do
Elself key <a(m)Then
j = m - 3
Elself Then ‘⑵
i= m + 1
ElseIf key = a(m-2)Then
search = m-2 :Exit Do
ElseIf key = a(m- 1)Then
search = m-1:Exit Do
Else
search = 0:Exit Do
End If
Loop
If search <>0 Then
Text2.Text = Str(search)
Else
Text2.Text ="找不到"
End If
End Sub
⑴ ⑵
①明文字符与对应密钥的ASCII码转化为二进制后求异或(对应位相同时结果为0,对应位不同时结果为1,如二进制1001与二进制1100的异或值为0101),并将异或结果转换为十进制p;
②如果处在奇数位,则将明文字符循环后移p个位置,否则将明文前移p个位置。移动过程中保持大小写不变。
最后把所得到的字符连接起来就是密文。
例如,密钥是“abc”,明文“d”的加密过程是:字符“d”的ASCII码表示为二进制是1100100,密钥“a”的ASCII码表示为二进制是1100001,两数进行异或结果是:0000101,转化为十进制为5,因为是第1个位置,所以把明文后移5个位置,则密文是“i”。
该加密过程使用VB来实现。具体功能设计如下:在Text 1中输入明文,Text 2中输入密钥,单击“开始加密”按钮Command 1后将密文显示在Text 3中,界面设计如图所示。
请回答以下问题:
Private SubCommand1_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=1To Len(Text 1.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(Text 2.Text,(i-1) Mod Len(Text 2.Tex kwt)+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
Text 3.Text=sn
End Sub
Function txor(xk wAs 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<>bMod 2 Then ③
a=a\2
b=b\2
r=r*2
Next i
End Function
① ② ③
用户从Text1中输入计划人数,单击“入围划线”按钮Command1,面试分数线显示在文本框Text2 中,入围面试最终人数显示在 Text3中,进入面试考生的考号和笔试成绩显示在List2列表框中,如果成绩相同,则按考号从小到大的顺序显示。程序界面如图所示。
Dim kh(1 To 500) As String, cj(1 To 500) As Integer
Dim n As Integer ′参加考试总人数
Private Sub Form_Load()
Dim conn As New ADODB.Conncction
Dim rs As New ADODB.Recordset
conn.ConnectionString = “Provider=Microsoft.ACE.OLEDB.12.0;datasource=”+App.Path + ”\BSCJ.accdb”
conn.Open
Set rs.ActiveConnection = conn
rs.Open “select * FROM scoreinfo”
′本过程其他代码略
End Sub
Private Sub Commandl_click()
Dim m As Integer, i As Integer, j As Integer
Dim t1 As Integer, t2 As String, flag As Boolean
For i = 1 To n - 1
For j = 1 To
If cj(i) < cj(j) Then
t1 = cj(i): cj(i) = cj(j): cj(j) = t1
t2 = kh(i): kh(i) = kh(j): kh(j) = t2
EleIf ① Then
t2 = kh(i): kh(i) = kh(j): kh(j) = t2
End If
Next j
Next i
m = ②
If m <= n Then
i = m
flag = Flase
Do While i < n And Not flag
If cj(i) = cj(i + 1) Then
i = i + 1
Else
③
End If
Loop
Text2.Text = Str(cj(m))
Text3.Text = Str(i)
For j = 1 To i
List2.Addltem kh(j) + “ ” + Str(cj(j))
Next j
Else
Text2.Text = “面试人数超过了总人数”
End If
End Sub
① ② ③
For i = 1 To n - 1
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
Next i
为了使此程序段能实现数组a中的数据升序排列,则划线处应填入的代码是( )
a = a + b:b = b + a
Print b
该程序段运行后变量b的值是。
a=a+b:b=b+a
print a,b
这段程序的执行结果是( )