试题

试题 试卷

logo

题型:综合题 题类:常考题 难易度:困难

浙江省稽阳联谊学校2020届高三下学期信息技术4月联考试卷

有一个10*10的场地,要在场地上放入若干件正方形货物。算法描述:

⑴货物逐个尝试放入,搜索场地矩阵(从左到右,从上到下),若某块区域能放下该货物,则标记这些相应位置为货物编号,然后返回左上角检测下一货物。

⑵搜索时,若右侧剩余列小于货物边长,则跳转到下一行,若下方剩余行小于货物边长,则直接返回检测下一货物,直到所有货物检测完毕。

小武同学根据上述算法设计了VB程序。程序运行,在列表框list1降序输出货物规格,点击“存放”按钮command1,在列表框list2输出摆放完成的场地矩阵。

算法的VB程序如下,回答下列问题。

(1)、若货物4的尺寸改为4*4,其他不变,则货物9会被放在 (填数组下标)
(2)、在程序划线处填上合适代码,使程序完整

Dim hw(1 To 9) As Integer '存储正方形货物的边长

Dim cd(1 To 100) As Integer  '场地是边长为10的正方形

Private Sub Command2_Click()

  Dim i As Integer, j As Integer, wz As Integer, s As String

  For i = 1 To 9

    j = 1

    Do While (10 - (j - 1) \ 10) >= hw(i)   '下方空间足够

      If    ①   = False Then  '从当前位置开始能否放下

        j = j + 1

      Else  

        '把相关位置标记为i,并处理下一货物,代码略

      End If

If 10 - (j - 1) Mod 10 < hw(i) Then  ‘右侧空间不足

   ②  

      EndIf

    Loop

  Next i

 ‘在列表框list2输出整个场地放好货物之后的矩阵图,代码略

End Sub

Function pd(start As Integer, bc As Integer) As Boolean

  Dim i As Integer, wz As Integer

  pd = True: wz = start

  Do While wz <= start + 11* (bc - 1) And wz <= 100

    If    ③   Then    

      pd = False

      Exit Function

ElseIf (wz - 1) Mod 10 - (start - 1) Mod 10 = bc - 1 Then

      wz =  wz + 11 - bc     ‘位置转到下一行,与起点同列

    Else

      wz = wz + 1

    End If

  Loop

End Function

Private Sub Form_Load()

  ‘生成货物边长,降序显示在列表框list1,矩阵元素初始化为0,代码略

End Sub

 ② ③ 

举一反三
国际标准书号ISBN分成四组的10位数字组成,前面9位数字分组号、出版社和书序号三组,最后一位为校验码。校验的规则为从左边开始取出每位数字(前9位),取出的数字依次乘以10、9、8……2,把各次的乘积相加,用11减去这个和除11的余数即为校验码。在文本框Text1中输入条形码,单击“校验”按钮Cmd1,在文本框Text2输出结论。程序运行的界面如图所示:

实现上述功能的VB程序如下,但加框处代码有错,请改正。

Private Sub Command1_Click()

  Dim s As String,i As Integer,s1 As String,sum As Integer,t As Integer

  Dim jy As Integer

  s=Text1.Text

  t=0:sum=0

  For i=1 To Len(s)

    s1=Mid(s,i,1)

    If s1>=“0” And s1<=“9” Then

           ′①

        If t<10 Then

            sum=sum+Val(s1)*(11-t)

        ElseIf t=10 Then

              ′②

        End If

    End If

  Next i

  sum=11-sum Mod 11

  If  Then′③

    Text2.Text=“该校验码中数字不是10位数!”

  Else

    If jy=“X” and sum=10 Then

      Text2.Text=“校验通过”

    ElseIf val(jy)=sum then

      Text2.Text=“校验通过”

    Else

      Text2.Text=“校验不通过”

    End If

  End If

End Sub

划线处代码为①{#blank#}1{#/blank#}

②{#blank#}2{#/blank#}

③{#blank#}3{#/blank#}

返回首页

试题篮