试题

试题 试卷

logo

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

浙江省高中信息技术 解析算法及程序实现同步练习

将一个十进制正整数转化为二进制数可以采用“除二取余法”,主要方法就是将十进制数用2除,保存所得余数,然后将商的整数部分作为下次运算的被除数,重复上述“除二取余”操作,直到商的整数部分为零时停止。

程序界面如图所示,在文本框Text1中输入一个正整数,单击“转换”按钮(Command1)后,对应的二进制数在文本框Text2中显示出来。

解决此问题的Visual Basic程序如下,在程序①和②划线处,填入适当的语句或表达式,把程序补充完整。

Private Sub Command1_Click()

 Dim x As Integer,s As String,r As Integer,t As Integer

x=Val(Text1.text)

s=“”

Do While ①      

 r=x Mod 2

s=Str(r)+s

x=②   

 Loop

 Text2.text=s

End Sub

(1)、解决此问题所用的算法是。(选填:解析算法或枚举算法)
(2)、程序中划线处①应填入
(3)、程序中划线处②应填入
举一反三
【根据宁波效实中学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 = s
End Sub
返回首页

试题篮