题库 高中信息

题干

(加试题)小明编写了一个求真分数精确值的 VB 程序。程序运行时,在文本框 Text1 中输入被 除数,在文本 Text2 中输入除数,并保证被除数小于除数,单击“计算”按钮 Command1,在 标签 Label3 中显示结果。如果无限小数的小数点后,从某一位起向右进行到某一位止的一节数 字循环出现,首尾衔接,称这种小数为循环小数,这一节数字称为循环节。如果商为循环小数 保留一个循环节,否则最多计算到第 20 位。 程序运行界面如下图所示。

(1)运行程序,在文本框 Text1 中输入被除数 13,在文本框 Text2 中输入除数 99,单击“计算”按钮 Command1,在标签 Label3 中显示的结果是_____。
(2)实现上述功能的 VB 程序如下,请在划线处填入合适的代码。
Dim a(1 To 20) As Integer, b(1 To 20) As Integer
Private Sub Command1_Click
Dim m As Integer, n As Integer, pa As Integer, pb As Integer
Dim flag As Boolean, s As String m = Val(Text1.Text)
n = Val(Text2.Text)
s = Str(m) + "/" + Str(n) + " = " s = s + "0."
pa = 1: pb = 1: flag = True b(1) = m
m = m * 10
Do While pa <= 20 And flag = True a(pa) = m \ n
If a(pa) > 0 Then pb = pb + 1
________
m= b(pb)*10
Else
m = m * 10
End If
flag = Jud(pb)
If b(pb) = 0 Then flag = False s =_________
pa = pa + 1
Loop
Label3.Caption = s
End Sub
Function Jud(x As Integer) As Boolean
Dim i As Integer
For i = 1 To x - 1
If________Then
Jud = False
Exit Function   '退出自定义函数
End If
Next i
Jud = True
End Function
上一题 下一题 0.99难度 填空题 更新时间:2019-03-30 05:21:35

答案(点此获取答案解析)

同类题2

   某编码由4 个信息位和3 个校验位组成,通过对编码信息进行验算,能够检测并纠正一位错误代码。该7 位编码中b1~b4 为信息位,p1~p3 为校验位,位置如下:

编码中位

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。

(1)若计算得到的校验值g1、g2、g3 均为0,说明校验正确,数据无错误。例如:若7 位编码为1101001,计算校验值g1、g2、g3 值均为0,验证正确。

(2)若校验值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 程序如下,请回答下列问题:
(1)若按上述规则的7 位编码为1001000,其中一位有错,则正确的编码应为______________________。
(2)请在划线处填入合适的代码。
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
相关知识点