資源簡介 專項測試四 進制數轉換與運算1.在文本框Text1中輸入一個十進制整數,單擊“進制數轉換”按鈕Command1,則將該十進制數轉換為八進制數,并在標簽Label3中顯示轉換結果。程序運行效果如下圖所示:實現上述功能的VB程序如下,請在程序劃線處填入合適的代碼。Function dtoo(x As Long) As String Dim y As Integer, s As String s = “ ” Do While x > 0 y = x Mod 8 ____①____ s = y & s Loop ____②____End FunctionPrivate Sub Command1_Click() Dim n As Long n = Val(Text1.Text) Label3.Caption = ______③______End Sub(1)請在程序劃線處填入合適的代碼。(2)程序運行時,在文本框Text1中123,則輸出的結果為________。解析 (1)自定義函數dtoo(x)的功能是將十進制數x轉換為八進制數,十進制轉換為八進制數的方法為:除8取余,直到商為0。①處代碼為整數x除8后的整數商,因此代碼為x=x8;②處代碼表示將函數值的返回,自定義函數的函數值是通過函數名來返回,函數名為dtoo,八進制數為s,因此②處代碼為dtoo=s;③處代碼表示調用函數,參數為整數n,因此代碼為dtoo(n)。(2)十進制數123轉換為八進制數為173。答案 (1)①x = x 8 ②dtoo = s ③dtoo(n) (2)1732.奇偶校驗是一種校驗數據傳輸正確性的方法。其中奇校驗方法:統計二進制數據的數位中“1”的個數,若個數為奇數,則校驗位值為0,否則校驗位值為1。小李編寫了一個計算奇校驗位值得VB程序,功能如下:在文本框Text1中輸入1~255十進制待校驗數,單擊“計算”按鈕Command1后,在文本框Text2中顯示該數對應的二進制值,并在標簽Label3中顯示該數的校驗位值。程序運行界面如圖所示。(1)在設計程序界面時,要清空文本框中的顯示內容,應修改該文本框中的________屬性。(2)實現上述功能的VB程序如下,請在劃線處填入合適代碼。Private Sub Command1_Click() Dim a As Integer, s As String Dim n As Integer, t As Integer, v As Integer n = Val(Text1.Text) t = 0 s = “ ” Do While n > 0a = n Mod 2n = n 2t = ____①____s = Str(a) + s Loop v = t Mod 2 Text2.Text = s Label3.Caption = “校驗位值:“ + ____②____End Sub(3)運行該程序,在文本框Text1中輸入22,單擊“計算”按鈕,則顯示的校驗位值是________。解析 (1)本小題主要考查的是對象的屬性。文本框的內容是由Text屬性所決定的。(2)本小題主要考查的是程序的綜合應用能力。變量t用于統計待校驗數轉化為二進制數后數位中“1”的個數,因此①處填入的代碼為t+a;由于二進制數的數位中“1”的個數為奇數時,校驗位值為0,為偶數時,校驗位值為1,而v=t Mod 2,即t為偶數時,v=0,t為奇數時,v=1,因此v的值與所求的校驗位值正好相反,故②處填入的代碼為Str(1-v),也可以寫為 Str(Abs(v-1)),還可以寫為Str((t+1) Mod 2)。(3)本小題主要考查的是實際應用能力。十進制22對應的二進制為10110,1的個數為3,因此檢驗位值為0。答案 (1)Text (2)①t+a ②Str(1-v)或Str(Abs(v-1))或Str((t+1) Mod 2) (3)03.用VB編寫程序界面如圖所示,程序功能如下,在文本框Text1中輸入一個英文字符,單擊命令按鈕Command1,在文本框Text2中顯示字符的ASCII碼值(十六進制)。(1)程序代碼“Private Sub Command1_Click()”中Command_Click()是指________(選填:對象名 / 屬性名 / 過程名 / 事件名 / 方法名)。(2)為了實現上述功能,請在劃線處填入合適代碼。Private Sub Command1_Click() Dim ch As String, d As Integer Dim h1 As Integer, h2 As Integer, h3 As String ch = Text1.Text If ch < > “ ” Then d = Asc(ch) h1 = d 16 ____①____ If ____②____Then h3 = Str(h2) Else h3=Chr (55+h2) End If Text2.Text = Str(h1) + h3End Sub解析 本程序的功能是將十進制數轉換為十六進制數。方法為除以16取余,需注意的是商和余數為10-15時,要用字母“A-F”表示。①處代碼的功能是求余數,因此代碼為h2 = d Mod 16;余數大于9時,要用字母“A-F”表示,因此條件為h2<10或h2<=9。答案 (1)過程名 (2)①h2=d Mod 16 ②h2<10或h2<=94.編寫一個程序, 計算二個二進制數的和(二進制數)。具體功能如下:程序運行時,分別在文本框Text1、Text2中輸入兩個二進制數,單擊“計算”按鈕,則在文本框Text3中顯示計算結果。 程序運行界面如下圖所示。(1)觀察程序代碼可知,窗體上的“計算”按鈕的名稱為________。(2)實現上述功能的VB程序如下,請在劃線處填入合適的代碼。Private Sub Comm1_Click() Dim s1 As String, s2 As String, ans As String, t As String Dim i As Integer, j As Integer, v As Integer s1 = Text1.Text: s2 = Text2.Text If Len(s1) < Len(s2) Thent = s1: s1 = s2: s2 = t End If For i = 1 To Len(s1) - Len(s2) s2 = “0” + s2 Next i i = Len(s1) j = 0 ans = “ ” Do While i > 0______①______ans = (v Mod 2) & ansj = v 2i = i - 1 Loop If ______②______ Then ans = “1” + ans Text3.Text = ansEnd Sub (3)若文本框Text1中輸入的內容為“111”,文本框Text2中輸入的內容為“1101”,單擊“計算”按鈕,文本框Text3中顯示的內容是________。解析 本題的算法思想是:首先通過高位補零的方法,使做加法運算的兩個二進制數的位數相同;然后將兩個二進制數從低位往高位逐位相加,每位相加時還需加上上一次的進位j;最后需注意的是最高位相加時的進位情況。①處為對應位相加,j為進位,因此①處的代碼為v=Val(Mid(s1,i,1))+Val(Mid(s2,i,1))+j,②處為最高位是否進位,如最高位進位,則在二進制數前面添加一位“1”,因此②處代碼為j = 1,或寫為j< >0或j>0。答案 (1)Comm1 (2)①v = Val(Mid(s1, i, 1)) + Val(Mid(s2, i, 1)) + j ②j = 1或j< >0或j>0 (3)101005.編寫“十六進制加法”程序,實現如下功能:在文本框Text1和Text2中分別輸入1位十六進制數(0~F,字母必須大寫),點擊“計算”按鈕Command1,在文本框Text3中顯示兩數相加的十六進制數結果。程序運行的界面如圖所示。(1)若要讓程序運行時,窗體Form1的標題顯示“十六進制加法”,下列操作不可行的是:________(單選,填字母:A.可在Command1_Click事件過程中添加語句Form1.Caption=“十六進制加法” / B.在窗體Form1的屬性窗口修改其caption屬性值為“十六進制加法” / C.將窗體Form1的名稱直接改為“十六進制加法”)。(2)實現上述功能的VB程序如下,請在劃線處填寫合適的代碼。Private Sub Command1_Click( ) Dim a As String, b As String, s As String, c As String Dim x As Integer, y As Integer, z As Integer, i As Integera = Text1.Text b = Text2.Text s = “0123456789ABCDEF” For i = 0 To 15If a = Mid(s, i + 1, 1) Then x = iIf b = Mid(s, i + 1, 1) Then y = i Next i z = x + y If z >=16 Thenc = “1” + ______①______ Elsec = Mid(s, z + 1, 1) End If Text3.Text = ______②______End Sub(3)若在文本框Text1和Text2中都輸入“F”,點擊計算按鈕后,Text3中顯示的結果為________。解析 (1)本題主要考查的是窗體的對象名、屬性及屬性值。(2)本題主要考查的是十六進制數的加法運算。若z>=16,則表示高位進位,而個位上的結果是z-16或z Mod 16,根據字符串s可知,數字0在字符串s的位置為1,數字1在字符串s中的位置為2,依次類推,因此①處語句為Mid(s,z-15,1)或Mid(s,z Mod 16 + 1,1);(3)本小題主要考查的是十六進制數加法運算的實際應用。十六進制數F表示15,因此FH+FH=1EH。答案 (1)C (2)①Mid(s,z-15,1)或Mid(s,z Mod 16 + 1,1) ②C (3)1E6.“5421BCD”碼是一種采用四位二進制數表示一位十進制數的編碼,其各位的權依次為5、4、2、1,并要求大于等于5的十進制數所對應的編碼最高位為1(如十進制數7所對應的“5421BCD”碼為1010)。轉換時,將十進制數從右至左按位轉換成對應的“5421BCD”碼,然后依次連接。小王編寫了一個VB程序,在文本框Text1中輸入十進制數,單擊“轉換”按鈕Command1,在文本框 Text2中顯示對應的“5421BCD”碼。程序運行界面如圖所示。 (1)觀察代碼,單擊“轉換”按鈕觸發的事件處理過程名是____________。 (2)為實現上述功能,請在劃線處填入合適的語句。Private Sub Command1_Click() Dim x As Long, y As String, a As Integer , a1 As Integer Dim a2 As Integer, a3 As Integer, a4 As Integer x = Val(Text1.Text) y = “ ” Do While ________①________ a = x Mod 10 x = ________②________ a1 = a 5: a = a Mod 5 a2 = a 4: a = a Mod 4 a3 = a 2: a = a Mod 2 a4 = a y = ________③________ Loop Text2.Text = y End Sub(3)十進制數3721所對應的5421BCD碼為________。解析 (1)過程名為Command1_Click;(2)本題的算法思想是:從低到高位取出十進制數的每一位數字,然后逐一對取出的數字進行分析,組成該數字的5421組合情況,并用01字符表示,最后將每個數字的對應的01串拼接起來,就是十進制數對應的5421BCD碼。用除以10取余的方法取出整數的每一位數字,直到全部數字取出為止,因此①處代碼 為x>0;②處為x除以10的整數商,因此代碼為x10;③為5421組合情況拼接在字符串y中,需注意的是高位數字的5421碼依次拼接在字符串y的前面,因此③處代碼為Str(a1)+Str(a2)+Str(a3)+Str(a4)+y。答案 (1)Command1_Click (2)①x>0 ②x10③Str(a1)+Str(a2)+Str(a3)+Str(a4)+y (3)11101000100001專項測試四 進制數轉換與運算1.在文本框Text1中輸入一個十進制整數,單擊“進制數轉換”按鈕Command1,則將該十進制數轉換為八進制數,并在標簽Label3中顯示轉換結果。程序運行效果如下圖所示:實現上述功能的VB程序如下,請在程序劃線處填入合適的代碼。Function dtoo(x As Long) As String Dim y As Integer, s As String s = “ ” Do While x > 0 y = x Mod 8 ____①____ s = y & s Loop ____②____End FunctionPrivate Sub Command1_Click() Dim n As Long n = Val(Text1.Text) Label3.Caption = ______③______End Sub(1)請在程序劃線處填入合適的代碼。(2)程序運行時,在文本框Text1中123,則輸出的結果為________。2.奇偶校驗是一種校驗數據傳輸正確性的方法。其中奇校驗方法:統計二進制數據的數位中“1”的個數,若個數為奇數,則校驗位值為0,否則校驗位值為1。小李編寫了一個計算奇校驗位值得VB程序,功能如下:在文本框Text1中輸入1~255十進制待校驗數,單擊“計算”按鈕Command1后,在文本框Text2中顯示該數對應的二進制值,并在標簽Label3中顯示該數的校驗位值。程序運行界面如圖所示。(1)在設計程序界面時,要清空文本框中的顯示內容,應修改該文本框中的________屬性。(2)實現上述功能的VB程序如下,請在劃線處填入合適代碼。Private Sub Command1_Click() Dim a As Integer, s As String Dim n As Integer, t As Integer, v As Integer n = Val(Text1.Text) t = 0 s = “ ” Do While n > 0a = n Mod 2n = n 2t = ____①____s = Str(a) + s Loop v = t Mod 2 Text2.Text = s Label3.Caption = “校驗位值:“ + ____②____End Sub(3)運行該程序,在文本框Text1中輸入22,單擊“計算”按鈕,則顯示的校驗位值是________。3.用VB編寫程序界面如圖所示,程序功能如下,在文本框Text1中輸入一個英文字符,單擊命令按鈕Command1,在文本框Text2中顯示字符的ASCII碼值(十六進制)。(1)程序代碼“Private Sub Command1_Click()”中Command_Click()是指________(選填:對象名 / 屬性名 / 過程名 / 事件名 / 方法名)。(2)為了實現上述功能,請在劃線處填入合適代碼。Private Sub Command1_Click() Dim ch As String, d As Integer Dim h1 As Integer, h2 As Integer, h3 As String ch = Text1.Text If ch < > “ ” Then d = Asc(ch) h1 = d 16 ____①____ If ____②____Then h3 = Str(h2) Else h3=Chr (55+h2) End If Text2.Text = Str(h1) + h3End Sub4.編寫一個程序, 計算二個二進制數的和(二進制數)。具體功能如下:程序運行時,分別在文本框Text1、Text2中輸入兩個二進制數,單擊“計算”按鈕,則在文本框Text3中顯示計算結果。 程序運行界面如下圖所示。(1)觀察程序代碼可知,窗體上的“計算”按鈕的名稱為________。(2)實現上述功能的VB程序如下,請在劃線處填入合適的代碼。Private Sub Comm1_Click() Dim s1 As String, s2 As String, ans As String, t As String Dim i As Integer, j As Integer, v As Integer s1 = Text1.Text: s2 = Text2.Text If Len(s1) < Len(s2) Thent = s1: s1 = s2: s2 = t End If For i = 1 To Len(s1) - Len(s2) s2 = “0” + s2 Next i i = Len(s1) j = 0 ans = “ ” Do While i > 0______①______ans = (v Mod 2) & ansj = v 2i = i - 1 Loop If ______②______ Then ans = “1” + ans Text3.Text = ansEnd Sub (3)若文本框Text1中輸入的內容為“111”,文本框Text2中輸入的內容為“1101”,單擊“計算”按鈕,文本框Text3中顯示的內容是________。5.編寫“十六進制加法”程序,實現如下功能:在文本框Text1和Text2中分別輸入1位十六進制數(0~F,字母必須大寫),點擊“計算”按鈕Command1,在文本框Text3中顯示兩數相加的十六進制數結果。程序運行的界面如圖所示。(1)若要讓程序運行時,窗體Form1的標題顯示“十六進制加法”,下列操作不可行的是:________(單選,填字母:A.可在Command1_Click事件過程中添加語句Form1.Caption=“十六進制加法” / B.在窗體Form1的屬性窗口修改其caption屬性值為“十六進制加法” / C.將窗體Form1的名稱直接改為“十六進制加法”)。(2)實現上述功能的VB程序如下,請在劃線處填寫合適的代碼。Private Sub Command1_Click( ) Dim a As String, b As String, s As String, c As String Dim x As Integer, y As Integer, z As Integer, i As Integera = Text1.Text b = Text2.Text s = “0123456789ABCDEF” For i = 0 To 15If a = Mid(s, i + 1, 1) Then x = iIf b = Mid(s, i + 1, 1) Then y = i Next i z = x + y If z >=16 Thenc = “1” + ______①______ Elsec = Mid(s, z + 1, 1) End If Text3.Text = ______②______End Sub(3)若在文本框Text1和Text2中都輸入“F”,點擊計算按鈕后,Text3中顯示的結果為________。6.“5421BCD”碼是一種采用四位二進制數表示一位十進制數的編碼,其各位的權依次為5、4、2、1,并要求大于等于5的十進制數所對應的編碼最高位為1(如十進制數7所對應的“5421BCD”碼為1010)。轉換時,將十進制數從右至左按位轉換成對應的“5421BCD”碼,然后依次連接。小王編寫了一個VB程序,在文本框Text1中輸入十進制數,單擊“轉換”按鈕Command1,在文本框 Text2中顯示對應的“5421BCD”碼。程序運行界面如圖所示。 (1)觀察代碼,單擊“轉換”按鈕觸發的事件處理過程名是____________。 (2)為實現上述功能,請在劃線處填入合適的語句。Private Sub Command1_Click() Dim x As Long, y As String, a As Integer , a1 As Integer Dim a2 As Integer, a3 As Integer, a4 As Integer x = Val(Text1.Text) y = “ ” Do While ________①________ a = x Mod 10 x = ________②________ a1 = a 5: a = a Mod 5 a2 = a 4: a = a Mod 4 a3 = a 2: a = a Mod 2 a4 = a y = ________③________ Loop Text2.Text = y End Sub(3)十進制數3721所對應的5421BCD碼為________。 展開更多...... 收起↑ 資源列表 專項測試四 進制數轉換與運算.doc 專項測試四 進制數轉換與運算原卷版.doc 縮略圖、資源來源于二一教育資源庫