試卷征集
加入會員
操作視頻

【加試題】n個數據的冒泡排序需要經過n-1遍加工,每一遍加工自下而上比較相鄰兩個數據,把較小者交換到上面.小劉發(fā)現:當某一遍加工過程中沒有數據交換,說明數據已經有序,無需進一步加工.為此,小劉對算法進行優(yōu)化,編寫了一個VB程序,功能如下:運行程序時,在列表框List1中顯示排序前數據,單擊“排序”按鈕Commaiid1,在列表框List2 中顯示這些數據按升序排序后的結果,在標簽Label3中顯示排序過程的加工遍數.運行效果如圖所示.
菁優(yōu)網
實現上述功能的VB代碼如下,但加框處代碼有錯,請改正.
Dim a(1To 8)As Integer
Dim n As Integer
Private Sub Form_Load
( ?。?/div>
( ?。?/div>
'n=8,排序前數據存儲在數組a中,并在列表框Listl中顯示
'代碼略
End Sub
Private Sub Command1_Click
(  )
( ?。?/div>
Dim flag As Boolean'flag值為True表示一遍加工中發(fā)生過交換
i=1
flag=True
Do While'(1)i<=n-1Or flag=True

flag=False
For j=n To i+1Step-1
If a(j)<a(j-1)Then
k=a(j):a(j)=a(j-1):a(j-1)=k
flag=True
End If
Next j
i=i+1
Loop
Str(i)
Label3.Caption=“排序過程的加工遍數為“+'(2)
For i=1To n
List2.AddItem Str(a(i))
Next i
End Sub.

【答案】( ?。?;(  )
【解答】
【點評】
聲明:本試題解析著作權屬菁優(yōu)網所有,未經書面同意,不得復制發(fā)布。
發(fā)布:2024/4/20 14:35:0組卷:14難度:0.1
相似題
  • 菁優(yōu)網1.角谷靜夫是日本的一位著名學者,他提出了兩條極簡單的規(guī)則,可以對任何一個自然數進行變換,最終使它陷入“4-2-1”的死循環(huán).變換規(guī)則:對任意一個大于1的正整數n,若n是奇數,n的值替換為3n+1,若n是偶數,n的值替換為n/2;重復以上運算,n最終變?yōu)?.后人稱為“角谷猜想”.使用Visual Basic驗證這個猜想.程序界面如圖1所示.在文本框Text1中輸入一個正整數,單擊“驗證”按鈕“Command1”,在列表框List1中輸出每一步的運算過程.
    (1)要在圖1中的程序界面上添加箭頭指向的對象,需要在圖2中選擇
     
    (填字母:A/B/C).
    (2)為實現上述功能,請在橫線處填入合適的代碼或選項.
    Private Sub Command1_Click
    Dim n As Integer,i As Integer
     
    '(填代碼)
    List1.Clear'清除列表框List1中的內容
    If Int(n)<>n Or n<=1Then
    List1.AddItem“請輸入大于1的正整數!”
    Else
    i=0
    Do While
     
    '(填字母)
    If n Mod 2=0Then
    n=
     
    '(填字母)
    Else
    n=n*3+1
    End If
    i=i+1
    List1.AddItem Str(i)+“”+Str(n)
    Loop
    End If
    End Sub
    劃線②、③處的選項:
    A.n\2B.int(n)
    C.n<>1D.n=1.

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

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

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

    發(fā)布:2024/10/26 17:0:2組卷:7難度:0.1
  • 3.日期判斷:從文本框Text1輸入一個8位數字表示的日期,其中第1到4位表示年(第1位確定不為零),第5到6位表示月,第7到8位表示日.單擊“判斷”按鈕,判斷該日期是否合法,將結果依次輸出到列表框List1.程序界面如下圖所示:
    提示:年份值符合下列兩種情況之一的是閏年.
    1.年份是4的倍數,但不是100的倍數;
    2.年份是400的倍數.
    菁優(yōu)網
    (1)觀察程序代碼,可知“判斷”按鈕的對象名為
     
    .(單選,填字母:A.Text1/B.List1/C.Command1/D.Judge/E.判斷)
    (2)為實現上述功能,請在橫線處填入合適的代碼.
    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’與下一行語句同行
    month=8Or month=10Or month=12)And day>31Then hefa=False
    If (month=4Or month=6Or month=9Or month=11)’與下一行語句同行
    And day>30Then hefa=False
    If  ③
     
      Then hefa=False
    ’第③處,判斷閏年2月的天數是否合法
    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ōu)網 | 應用版本:4.8.2  |  隱私協議      第三方SDK     用戶服務條款廣播電視節(jié)目制作經營許可證出版物經營許可證網站地圖本網部分資源來源于會員上傳,除本網組織的資源外,版權歸原作者所有,如有侵犯版權,請立刻和本網聯系并提供證據,本網將在三個工作日內改正