Dim a(10 to 20) as integer
则此数组中元素的个数为。
|
编码中位 |
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 sum As Double, x As Double
sum = 0
n = 0
For i = 1 To 5
x = n / i
n = n + 1
sum = sum + x
Next
End Sub
该程序通过For循环计算sum的值,下列表达式的值与sum相等的是( )
请回答下列问题:
Private Sub()
Dim nian As Integer, yue As Integer, ri As Integer
Dim ans As Integer, i As Integer
Dim a(1 To 12) As Integer ‘a(i)存储第i个月的天数
a(1) = 31: a(2) = 28: a(3) = 31: a(4) = 30
a(5) = 31: a(6) = 30: a(7) = 31: a(8) = 31
a(9) = 30: a(10) = 31: a(11) = 30: a(12) = 31
nian = Val(TextNian.Text)
yue = Val(TextYue.Text)
ri = Val(TextRi.Text)
For i = 1 To yue - 1 ‘依次加上之前每个月的天数
ans =
Next i
ans = ans + ri ‘加上当月的天数
If yue > 2 Then ‘包含2月时,判断是否闰年,修正总天数
If nian Mod 400 = 0 Then ans = ans + 1
If nian Mod 4 = 0 And nian Mod 100 <> 0 Then ans = ans + 1
End If
=Str(ans)
End Sub
For i = 1 To n
a(i) =
For j = 1 To i-1
If a(i)=a(j) Then
Exit For
End If
Next j
Next i
上述程序段2个方框处的表达式分别为
如:字符串“100101000100”中最多可将2个“0”翻转为“1”,变为“
”
s = "0" & Text1.Text & "0"
c=0: i= 2
Do While i< Len(s)
If ① Then
i=i+2
ElseIf ② Then
i=i+ 1
Elself ③ Then
i=i+3
Else
i=i+2: c=c+ 1
End If
Loop
Label1.Caption = "最多可翻转" & Str(c) & "个0"
上述程序中方框处可选语句为:
①Mid(s,i-1,1)="1" ②Mid(s,i,1)="1" ③Mid(s,i+1,1)="1"
则① ② ③处语句依次是( )
a=2
b=a+5
If a Mod b=2 Then
a=a+2
b=a+b
End If
b=b+2
Text1.Text=Str(b)
该程序运行后,文本框Text1上显示的内容为。
def isprime (x):
for i in range(2, x):
if x % i= 0:
return False
return True
prime = []
for i in range(2, 21):
if isprime(i):
prime.append(i) #将 i添加到列表
print (len(prime))
运行该程序段,输出结果是