题型:综合题 题类:模拟题 难易度:困难
浙江省普通高校招生信息技术选考模拟卷(二)
⑴把格雷码第1位G1作为解码后二进制码的第1位B1,即:B1= G1;
⑵从第2位起,将格雷码每一位与左边相邻一位的解码值作异或运算,结果作为该位格 雷码的解码值,即Bi=Gi⊕Bi-1。例如,某格雷码1101110,可解码成普通二进制码 1001011, 如图所示。
异或运算(⊕)规则:如果 a、b 两个值不相同,则 a⊕b 结果为 1;如果 a、b 两个值 相同,则 a⊕b 结果为 0,即:0 ⊕ 0 = 0,1 ⊕ 0 = 1,0 ⊕ 1 = 1,1 ⊕ 1 = 0。
小明编写了一个格雷码解码的VB程序,功能如下:在文本框Text1中输入格雷码,单击 “解码”按钮 Command1,程序对输入的格雷码进行转换处理,转换后的二进制码用十六进 制表示并显示在文本框 Text2 中。程序运行界面如图所示。
Const max = 16
Function btoh(s As String) As String
Dim i As Integer, value As Integer, ss As String
Dim c1 As Integer, c2 As Integer, c3 As Integer, c4 As Integer ss = ""
If Len(s) Mod 4 <> 0 Then
s = Mid("0000", 1, 4 - n) + s '四位一组分组,最后一组不足 4 位补 0
For i = 1 To Len(s) Step 4
c1 = Val(Mid(s, i, 1))
c2 = Val(Mid(s, i + 1, 1))
c3 = Val(Mid(s, i + 2, 1))
c4 = Val(Mid(s, i + 3, 1))
value = c1 * 2 ^ 3 + c2 * 2 ^ 2 + c3 * 2 + c4
If value <= 9 Then
ss = ss + Chr(Asc("0") + value)
Else
End If
btoh =ss
Next i
End Function
Private Sub Command1_Click() Dim i As Integer
Dim s As String, b As String Dim g(1 To max) As String
s = Text1.Text: length = Len(s)
For i = 1 To length
g(i) = Mid(s, i, 1)
Next i
b = g(1)
For i = 2 To length
If g(i) =Then b = b + "0" Else b = b + "1"
Next i
Text2.Text =
End Sub
摸牌规则:
A.当某花色牌不足3张,则记录摸到的牌,继续摸下一张牌
B.当某花色的牌超过3张时,若摸到的卡牌点数大于本花色中已有卡牌点数的最小值,则替换本花色中点数最小的卡牌,否则,弃置摸到的牌。继续下一-张摸牌
C.当所有花色的牌均为3张时结束摸牌。然后按花色编号从小到大展示摸到的卡牌
例如:在某次摸牌后的卡牌如下表所示:
花色 |
黑桃 |
红桃 |
梅花 |
方块 |
||||||||
序号 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
点数 |
7 |
5 |
12 |
11 |
3 |
8 |
7 |
5 |
8 |
5 |
3 |
1)当下一次摸到“黑桃4”的牌时,4小于已摸到的[7,5,12],弃置摸到的牌,继续摸牌
2)当摸到“红桃9”的牌时,9大于已摸到的[11,3,8]的最小值3,红桃更新为[11,9,8],继续摸牌
3)当摸到“梅花9”的牌时,梅花点数更新为[7,5,9],达到所有花色的牌均为3张的目标,结束摸牌。
模拟此过程编写VB程序,程序运行界面如下图,单击“展示摸到的卡牌”按钮开始摸牌,满足条件时,在列表框中展示摸到的卡牌。
试题篮