试题

试题 试卷

logo

题型:单选题 题类:常考题 难易度:普通

【bj】高中信息技术综合库——枚举算法及程序实现1

有如下程序段:

For i = 2 To 6

    For j = 1 To i - 1

        If a(j) <= a(i) And d(j) >= d(i) Then

            d(i) =d(j)+1 : pre(i) = j

        End If

    Next j

Next i

max = 0 : k = 0

For i = 1 To 6

    If d(i)>max Then max = d(i) : k = i

Next i

Do While k <> 0

    st = a(k) & ","& st

    k=pre(k)

Loop

Text1.Text = Mid(st, 1, Len(st) - 1)

数组元素a(1)到a(6)的值依次为“2,6,5,9,8,8”,数组d各元素的值初始化为1,数组pre各元素的值初始化为0,经过该程序段“加工”后,Text1中的值是(   )

A、2,5,9 B、2,6,8,8 C、2,5,8,8 D、2,5,6,8,8,9
举一反三
【加试题】小王设计了一个算法试图求出平面坐标系中最左点出发,从左往右途经所有点到达最右点的路径值和,编写了一个VB程序功能如下:在文本框Text1中输入需随机生成的坐标点数量,单击“生成”按钮Command1后,在列表框List1中生成相应数量的坐标点(坐标值为大于等于1小于10的实数 ,保留一位小数),在文本框Text2中输出路径值。程序界面如图所示。

实现上述功能的VB程序如下,但划线部分代码有错,请改正。

Private Sub Command1_Click()

  Dim x(1 To 100) As Single, y(1 To 100) As Single

  Dim tmp As Single, length As Single, sum As Single, x1 As Single, y1 As Single

  Dim i As Integer, j As Integer, k As Integer

Randomize 

List1.Clear

  k = Val(Text1.Text)

  For i = 1 To k

      x(i) = Int(Rnd * 90) / 10 + 1

      y(i) = Int(Rnd * 90) / 10 + 1

      List1.AddItem "X:" + Str(x(i)) + "   " + "Y:" + Str(y(i))

  Next i

  For i = 1 To k - 1

      For j = 1 To k - i

          If x(j) > x(j + 1) Then

              x(i)=x(i) + x(j)

              x(j) = x(i) - x(j)

              x(j) = x(i) + x(j)   ‘①

              tmp = y(j)

              y(j) = y(j + 1)

              y(j + 1) = tmp

          End If

      Next j

  Next i

  sum = 0: length = 0

  For i = 1 To k - 1

      x1 = (x(i) - x(1)) ^ 2     ‘②

 '变量y1计算方法同x1,代码略

      length = Sqr(x1 + y1)

      sum = sum + length

  Next i

  Text2.Text = Str(Int(sum * 10) / 10)

End Sub

①{#blank#}1{#/blank#} ②{#blank#}2{#/blank#} 

返回首页

试题篮