16.將一個(gè)十進(jìn)制正整數(shù)x轉(zhuǎn)換成十六進(jìn)制數(shù)的方法和轉(zhuǎn)換成二進(jìn)制類似,反復(fù)除16取余法,它的算法如下 第一步:x被除16取余數(shù)r1,r1是所求的十六進(jìn)制數(shù)的一個(gè)數(shù)(第一次就是個(gè)位數(shù)); 第二步:r1轉(zhuǎn)換成十六進(jìn)制數(shù)的一個(gè)基數(shù)并轉(zhuǎn)換成字符,追加到十六進(jìn)制數(shù)S的左邊; 第三步:求出x被除16的商x1; 第四步:對x1重復(fù)(1)、(2)、(3)過程,直至商為0; 第五步:最后的S即為所求的十六進(jìn)制數(shù); 下列Visual Basic程序的功能是將一個(gè)十進(jìn)制正整數(shù)x轉(zhuǎn)換成十六進(jìn)制數(shù).界面如圖所示,在文本框Text1中輸入一個(gè)十進(jìn)制數(shù)制,單擊“十進(jìn)制轉(zhuǎn)十六進(jìn)制按鈕”(Command1)后,在文本框Text2中輸出轉(zhuǎn)換的結(jié)果.相應(yīng)的Visual Basic程序如下: Private Sub Command1_Click ( ?。?br />Dim s As String,r As Integer dec=val(Text1.Text)’dec得到一個(gè)十進(jìn)制整數(shù),例如:255; base=16’base表示16 s=““’s變量存放要轉(zhuǎn)換到的十六進(jìn)制整數(shù); Do While dec<>0 r=① If r>=10Then’如果base>10進(jìn)制,r可能>10; s=Chr(65+(r-10))+s’Chr (65)=“A“,16進(jìn)制數(shù)A對應(yīng)10; Else’Chr (66)=“B“,16進(jìn)制數(shù)B對應(yīng)11; s=Str(r)+s’余數(shù)r<10時(shí),十進(jìn)制數(shù)和十六進(jìn)制基數(shù)相同; End If’Chr (65+( r-10))或str(r)在s左邊,實(shí)現(xiàn)了反次序輸出; dec=② Loop Text2.Text=s End Sub (1)在①
17.下列VB程序的功能是:程序運(yùn)行時(shí),單擊命令按鈕Commandl后,產(chǎn)生10個(gè)[1,999]范圍內(nèi)互不相同的隨機(jī)整數(shù),依次顯示在列表框List1中,然后將它們按從小到大的順序排序,排序結(jié)果顯示在列表框List2中. 數(shù)組a用于存儲產(chǎn)生的10個(gè)隨機(jī)整數(shù),函數(shù)f(x)用于判斷隨機(jī)整數(shù)x與已生成的整數(shù)是否有重復(fù),若有重復(fù)則返回True,否則返回False. (1)虛線框內(nèi)程序段所采用的排序算法名稱是.(填:冒泡排序/選擇排序) (2)在程序(1)和(2)橫線處,填入適當(dāng)?shù)恼Z句或表達(dá)式,把程序補(bǔ)充完整. Dim a(1To 10)As Integer Function f(x As Integer) As Boolean ′代碼略 End Function Private Sub Commandl_Click ( ?。?br />Dim n As Integer′n用于統(tǒng)計(jì)已經(jīng)產(chǎn)生的隨機(jī)整數(shù)個(gè)數(shù) Dim i As Integer.j As Integer Dim x As Integer.k As Integer Randomize′初始化Rnd函數(shù) n=0 List1.Clear′清除列表框中內(nèi)容 List2.Clear Do While n<10 x=Int(Rnd*999)+1′產(chǎn)生[1,999]范圍內(nèi)的隨機(jī)整數(shù) If Not f(x) Then n=n+1 a(n)=x List1.AddItem Str((1)
) End If Loop For i=1 To 9 For j=10 To i+1
If a(j)<a(j-1)Then k=a( ?。﹋:a(j)=a(j-1):a(j-1)=k End If Next j Next i For i=1To 10 List2.AddItem Str(a(i)) Next i End Sub.