試卷征集
加入會(huì)員
操作視頻

某移數(shù)字游戲的規(guī)則如下:有一個(gè)如圖a所示的包含9個(gè)圓圈的數(shù)陣.將1~8這8個(gè)數(shù)字隨機(jī)地填寫到該數(shù)陣的外層圓圈中,只剩下中間的一個(gè)空?qǐng)A圈.規(guī)定每個(gè)數(shù)字只能按照數(shù)陣中的直線從一個(gè)圓圈移動(dòng)到另一個(gè)空的圓圈中.通過若干步的移動(dòng),要求將該數(shù)陣中的數(shù)字移動(dòng)成為如圖b所示的狀態(tài).
小張編寫了一個(gè)VB程序來(lái)解這個(gè)游戲,功能如下:點(diǎn)擊“初始化”按鈕Command1初始化游戲,程序隨機(jī)地將1~8這8個(gè)整數(shù)填入到數(shù)陣的外層圓圈中,同時(shí)將該狀態(tài)下的數(shù)陣顯示在列表框List1中.點(diǎn)擊“開始”按鈕Command2,程序開始移數(shù)字,并將移動(dòng)過程中的每一步輸出在列表框List2中,最后統(tǒng)計(jì)總移動(dòng)步數(shù)到標(biāo)簽Label1中.為了清楚地描述輸出數(shù)字在數(shù)陣中的每一步移動(dòng)步驟,小張給數(shù)陣中的每一個(gè)圓圈都進(jìn)行了編號(hào),具體編號(hào)方法如圖c所示,因此1號(hào)圈中的數(shù)字移動(dòng)到2號(hào)圈可以表示為“1#-->2#”.程序運(yùn)行界面如圖d所示.
菁優(yōu)網(wǎng)
實(shí)現(xiàn)上述功能的VB代碼如下.
(1)請(qǐng)?jiān)跈M線處填入合適代碼
Dim a(1To 8)As String
Private Sub Command1_Click ( ?。?br />Dim temp As Integer,i As Integer,j As Integer
Dim flag(1To 8)As Boolean
For i=1To 8
flag(i)=False
flag(i)=False

Next i
Randomize
For i=1To 8
temp=Int(Rnd ( ?。?8+1)'生成1~8之間的隨機(jī)整數(shù)
Do While flag(temp)
temp=Int(Rnd (  )*8+1)'生成1~8之間的隨機(jī)整數(shù)
Loop
a(i)=temp
flag(temp)=True
Next i
List1.Clear
List1.AddItem“初始狀態(tài):“
PrintCircle
End Sub
Private Sub Command2_Click ( ?。?br />Dim i As Integer,j As Integer,temp As String,n As Integer,moveStep As String
moveStep=““
List2.Clear
n=0
For i=1To 7'使用冒泡排序?qū)A圈中的數(shù)字進(jìn)行移動(dòng)
For j=1To

If a(j)>=a(j+1)Then
temp=a(j):a(j)=a(j+1):a(j+1)=temp
moveStep=Str(j) &“#-->0#“
moveStep=moveStep &““& Str(j+1)&“#-->“& Str(j) &“#“moveStep=moveStep &““&“0#-->“& Str(j+1)&“#“
List2.AddItem moveStep
n=n+1
End If
Next j
Next i
List1.AddItem“移動(dòng)數(shù)字后:“
PrintCircle
Label1.Caption=“總移動(dòng)步數(shù):“&

End Sub
'在列表框List1中輸出當(dāng)前的數(shù)陣狀態(tài)
Function PrintCircle ( ?。?br />List1.AddItem“-------------------------“
List1.AddItem“[“& a(1)&“]-[“& a(2)&“]-[“& a(3)&“]“
List1.AddItem“|\|/|“
List1.AddItem“[“& a(8)&“]-[“&““&“]-[“& a(4)&“]“
List1.AddItem“|/|\|“
List1.AddItem“[“& a(7)&“]-[“& a(6)&“]-[“& a(5)&“]“
List1.AddItem“-------------------------“
End Function
(2)分析代碼和游戲規(guī)則,事件處理過程“Command2_Click”中的冒泡排序
不能
不能
(填:能/不能)改為使用選擇排序.

【答案】flag(i)=False;②;③;不能
【解答】
【點(diǎn)評(píng)】
聲明:本試題解析著作權(quán)屬菁優(yōu)網(wǎng)所有,未經(jīng)書面同意,不得復(fù)制發(fā)布。
發(fā)布:2024/6/27 10:35:59組卷:7引用:1難度:0.3
相似題
  • 1.如圖VB應(yīng)用程序界面所示,下列關(guān)于類與對(duì)象的說法正確的是( ?。?br />菁優(yōu)網(wǎng)

    發(fā)布:2024/11/3 16:0:2組卷:5引用:2難度:0.7
  • 2.編寫VB程序,實(shí)現(xiàn)如下功能:對(duì)于任意一個(gè)正整數(shù),如果是奇數(shù),則乘3加1,如果是偶數(shù),則除以2,得到的結(jié)果再按照上述規(guī)則重復(fù)處理,最終總能夠得到1.如,假定初始整數(shù)為5,計(jì)算過程分別為16、8、4,、2、1.
    程序要求輸入一個(gè)整數(shù)到Text1,單擊命令按鈕Command1,將經(jīng)過處理得到1的過程輸出到List1上面,運(yùn)行效果如圖2所示.
    菁優(yōu)網(wǎng)
    (1)如果將窗體左上角標(biāo)題“Form1”改為“角谷猜想”,可將Form1的
     
    屬性的屬性值改為“角谷猜想”.
    (2)為實(shí)現(xiàn)上述功能,請(qǐng)?jiān)跈M線處填入合適代碼.
    Private Sub Command1_Click ( ?。?br />Dim x As Long
    x=Val(Text1.Text)'將text1中的內(nèi)容賦值給x
    Do While x<>1
    If
     
    Then'x為奇數(shù)的情況
    x=x*3+1
    Else'x為偶數(shù)的情況
    x=
     

    List1.AddItem“x=“& Str(x)'將x的變化添加到list1上
    Loop
    End Sub
    橫線處①應(yīng)填入
     
    ,劃線②應(yīng)填入
     

    (3)運(yùn)行程序是,發(fā)下如2圖所示錯(cuò)誤,原因可能是
     
    (選填:程序缺少Do/程序缺少End If).

    發(fā)布:2024/10/26 17:0:2組卷:7引用:1難度:0.1
  • 3.日期判斷:從文本框Text1輸入一個(gè)8位數(shù)字表示的日期,其中第1到4位表示年(第1位確定不為零),第5到6位表示月,第7到8位表示日.單擊“判斷”按鈕,判斷該日期是否合法,將結(jié)果依次輸出到列表框List1.程序界面如下圖所示:
    提示:年份值符合下列兩種情況之一的是閏年.
    1.年份是4的倍數(shù),但不是100的倍數(shù);
    2.年份是400的倍數(shù).
    菁優(yōu)網(wǎng)
    (1)觀察程序代碼,可知“判斷”按鈕的對(duì)象名為
     
    .(單選,填字母:A.Text1/B.List1/C.Command1/D.Judge/E.判斷)
    (2)為實(shí)現(xiàn)上述功能,請(qǐng)?jiān)跈M線處填入合適的代碼.
    Private Sub Judge_Click( ?。〥im riqi As String,st As String
    Dim year As Integer,month As Integer,day As Integer
    Dim rn As Boolean,hefa As Boolean
    riqi=Text1.Text
    year=Val(Mid(riqi,1,4))
    month=Val(Mid(riqi,5,2))
    day=①
     
    ‘第①處
    st=Str(year)+“年“+Str(month)+“月“+Str(day)+“日“
    rn=False‘用于判斷是否為閏年
    If②
     
     Then rn=True‘第②處
    If year Mod 4=0And year Mod 100<>0Then rn=True
    hefa=True‘用于判斷是否為合法日期
    If month=0Or month>12Then hefa=False
    If day=0Then hefa=False
    If (month=1Or month=3Or month=5Or month=7Or’與下一行語(yǔ)句同行
    month=8Or month=10Or month=12)And day>31Then hefa=False
    If (month=4Or month=6Or month=9Or month=11)’與下一行語(yǔ)句同行
    And day>30Then hefa=False
    If  ③
     
      Then hefa=False
    ’第③處,判斷閏年2月的天數(shù)是否合法
    If month=2And Rn=False And day>28Then hefa=False
    If hefa=True Then st=st+“合法日期“Else st=st+“非法日期“
    List1.AddItem st
    End Sub.

    發(fā)布:2024/10/31 8:0:1組卷:8引用:0難度:0.1
小程序二維碼
把好題分享給你的好友吧~~
APP開發(fā)者:深圳市菁優(yōu)智慧教育股份有限公司 | 應(yīng)用名稱:菁優(yōu)網(wǎng) | 應(yīng)用版本:4.8.2  |  隱私協(xié)議      第三方SDK     用戶服務(wù)條款廣播電視節(jié)目制作經(jīng)營(yíng)許可證出版物經(jīng)營(yíng)許可證網(wǎng)站地圖本網(wǎng)部分資源來(lái)源于會(huì)員上傳,除本網(wǎng)組織的資源外,版權(quán)歸原作者所有,如有侵犯版權(quán),請(qǐng)立刻和本網(wǎng)聯(lián)系并提供證據(jù),本網(wǎng)將在三個(gè)工作日內(nèi)改正