试题

试题 试卷

logo

题型:综合题 题类:常考题 难易度:普通

浙江省高中信息技术 高精度计算问题练习

小明编写了一个求真分数精确值的VB程序。程序运行时,在文本框Text1中输入被除数,在文本框Text2 中输入除数,并保证被除数小于除数,单击“计算”按钮Command1,在标签Label3中显示结果(最多计算到第20位)。程序运行界面如图所示。

(1)、实现上述功能的VB程序如下,请在划线处填入合适的代码。

Dim a(1 To 20) As Integer, b(1 To 20) As Integer

‘判断循环节

Function Judge(position As Integer) As Boolean

Dim i As Integer

For i = 1 To position - 1

 If b(i) =Then Judge = False : Exit Function

Next i

Judge = True

End Function

Private Sub Command1_Click()

Dim m As Integer, n As Integer, x As Integer, i As Integer

Dim flag As Boolean, st As String

m = Val(Text1.Text):n = Val(Text2.Text)

st = Str(m) + “/” + Str(n) + “=”

st = st + “0.”

i = 1: x = 1: flag = True

b(1) = m

m = m * 10

Do While i <= 20 And flag = True

 a(i)=

 If a(i) > 0 Then

  x = x + 1

  b(x) = m Mod n

  m = b(x) * 10

 Else

  m = m * 10

 End If

 flag = Judge(x)

 If b(x) =0 And x <> 0 Then flag = False

 st =

Loop

Label3.Caption = st

End Sub

(2)、运行程序,在文本框Text1中输入被除数1,在文本框Text2中输入除数3,单击“计算”按钮Command1,在标签Label3中显示的结果是
举一反三
将一个十进制正整数x转换成十六进制数的方法和转换成二进制类似,反复除16取余法,它的算法如下:

第一步:x被除16取余数r1,r1是所求的十六进制数的一个数(第一次就是个位数);

第二步:r1转换成十六进制数的一个基数并转换成字符,追加到十六进制数s的左边;

第三步:求出x被除16的商x1;

第四步:对x1重复第一、二、三步,直至商为0;

第五步:最后的s即为所求的十六进制数;

下列Visual Basic程序的功能是将一个十进制正整数x转换成十六进制数。界面如图所示,在文本框Text1中输入一个十进制数,单击“十进制转十六进制”按钮(Command1)后,在文本框Text2中输出转换的结果。

相应的Visual Basic程序如下:

Private Sub Command1_Click()

 Dim s As String, r As Integer

 dec=val(Text1.Text)      ‘dec得到一个十进制整数,例如:255

 base=16       ‘base表示16

  s=“”      ‘s变量存放要转换到的十六进制整数

  Do While dec <> 0

     r=(1)     

     If r >=10 Then       ‘如果base>10,r可能>10

      s=Chr(65+(r-10))+s     ‘Chr(65)=“A”,16进制数A对应10;

     Else

      s=Str(r)+s      ‘余数r<10时,十进制数和十六进制基数相同

     End If      ‘Chr(65+( r-10))或str(r)在s左边,实现了反次序输出

     dec=(2)     

  Loop

 Text2.Text=s

End Sub

在(1)处应填入{#blank#}1{#/blank#} , 在(2)处应填入{#blank#}2{#/blank#}

A.base Mod dec   B.dec/base

C.dec Mod base   D.dec\base

返回首页

试题篮