【根据宁波效实中学2012学年第一学期高一信息技术期末试卷改编】将一个十进制正整数x转换成十六进制数的方法和转换成二进制类似,反复除16取余法,它的算法如下 第一步:x被除16取余数r1,r1是所求的十六进制数的一个数(第一次就是个位数); 第二步:r1转换成十六进制数的一个基数并转换成字符,追加到十六进制数S的左边; 第三步:求出x被除16的商x1; 第四步:对x1重复(1)、(2)、(3)过程,直至商为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 = ① If r >= 10 Then ’如果base>10进制,r可能>10; s = Chr(65 + (r - 10)) + s ’Chr (65)="A", 16进制数A对应10; Else ’Chr(66)="B", 16进制数B对应11; s = Str(r) + s ‘余数r<10时,十进制数和十六进制基数相同; End If ‘Chr (65 +( r - 10))或str(r)在s左边,实现了反次序输出; dec = ② Loop Text2.Text = sEnd Sub
(1)
在 ① 应填入( )
A . base Mod dec
B . dec / base
C . dec Mod base
D . dec \ base
(2)
在 ② 应填入( )
A . base Mod dec
B . dec / base
C . dec Mod base
D . dec \ base
答案: C
D