试题

试题 试卷

logo

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

浙江省名校协作体2018-2019学年高二上学期信息技术9月联考试卷

有一个数列,它的前二个数为0,1,此后的每个数都是其前面2个数之和,即0,1,1,2,3,5,8,13……要求编写程序,输出该数列到刚超过10000的数为止,且项数不能超过100项。编写程序如下:

Dim i As Integer, a As Integer, b As Integer, c As Integer

Dim s As String

a = 0: b = 1: c = 0: i = 2

s = Str(a) + Str(b)

Do While c <= 10000 And i < 100

    a = b: b = c

    c = a + b

    s = s + Str(c)

    i = i + 1

Loop

Text1.Text = s

运行上面的程序,发现输出的数列不正确,应进行修改。以下修改正确的是(  )

A、把c<=10000改为 c>10000 B、把i<100改成i<=100 C、把i=i+1移到Do While c<=10000 and i<100下面 D、把语句c=a+b移到a=b:b=c的上面
举一反三
【加试题】小王设计了一个算法试图求出平面坐标系中最左点出发,从左往右途经所有点到达最右点的路径值和,编写了一个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#} 

返回首页

试题篮