题库 高中信息

题干

(一)顺序查找数据:我们假定被查找的数据存储在有n个元素的数组变量d中,要寻找的一个特定的数据(这个数据称为查找键)已经存储在变量key中。
下面是顺序查找算法的输入输出说明。
输入:查找键(设在变量key中)。 被查找的数据(设在数组变量d中)。
输出:若找到,输出值为key的数据所在的数组元素的下标,记为i;
若未找到,输出结果为提示字符串:"找不到"。
当在n=8个元素的数组里顺序查找数据的示意图如下:

找到情况   未找到情况
总结顺序查找数据结果判断条件:
(1)、 当找到时,肯定i<="8," n个数据时,肯定i<=n,i即为找到的数组元素下标,d(i)=key;
(2)、 当"找不到"时,i=9>8了;n个数据时,当i=n+1时,表示"找不到"。 
顺序查找的主程序段如下:
Private Sub 顺序查找_Click()
n个数据放入d(1)到d(n)中
Key =" Val(Text1.Text):" i =___1___‘变量Key从文本框Text1取的数要查找的数;
Do While    ① 
i =" i" + 1
Loop
If i <=" n" Then
Text2.Text = "在d(" + Str(i) + ")中"  ‘例如在文本框Text2显示:“在d(6)中”
Else
Text2.Text = "找不到"
End If
End Sub
上程序Do While的条件 ① 是( )
A.Key <> d(i)
B.i <= n
C.Key <> d(i) And i <= n
D.Key <> d(i) or i <= n
上一题 下一题 0.99难度 选择题 更新时间:2016-03-16 04:14:14

答案(点此获取答案解析)

同类题1

数组nam()、sex()、math()、su()分别存放学生的姓名、性别、数学和总分成绩,现要求编写一个程序使得数据按照男生“总分”的降序和女生“总分”的升序排列,其中男生在前女生在后,程序界面如下图所示:

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

Dim nam(100) As String '存放学生姓名

Dim sex(100) As String '存放学生性别

Dim math(100) As Long '存放学生数学成绩

Dim su(100) As Long '存放学生总分成绩

Dim k As Integer 'k变量用来存学生人数

Private Sub Form_Load()

‘将数据库中的数据分别存储在相应的变量中并在列表框中显示出来

‘代码略

End Sub

Private Sub Command1_Click()

Dim mmax As Integer, gmax As Integer, flagm As Boolean, flagg As Boolean

i = 1: flagm = True: flagg = True

Do While i <= k And flagm = True ①   

    mmax = 0: gmax = 0

    flagm = False: flagg = False

  For j = i To k - i + 1

    If sex(j) = "男" And su(j) > su(mmax) Then mmax = j

    If sex(j) = "女" And su(j) > su(gmax) Then gmax = j

  Next j

   If mmax <> 0 Then

flagm = True

t = nam(mmax): nam(mmax) = nam(i): nam(i) = t

t = sex(mmax): sex(mmax) = sex(i): sex(i) = t

t = math(mmax): math(mmax) = math(i): math(i) = t

t = su(mmax): su(mmax) = su(i): su(i) = t

   End If

   If gmax <> 0 Then

flagg = True

If j = mmax Then    ②   

gmax = mmax

t = nam(gmax): nam(gmax) = nam(k - i + 1): nam(k - i + 1) = t

t = sex(gmax): sex(gmax) = sex(k - i + 1): sex(k - i + 1) = t

t = math(gmax): math(gmax) = math(i): math(i) = t

t = su(gmax): su(gmax) = su(k - i + 1): su(k - i + 1) = t

Else

t = nam(gmax): nam(gmax) = nam(k - i + 1): nam(k - i + 1) = t

t = sex(gmax): sex(gmax) = sex(k - i + 1): sex(k - i + 1) = t

t = math(gmax): math(gmax) = math(k - i + 1): math(k - i + 1) = t

t = su(gmax): su(gmax) = su(k - i + 1): su(k - i + 1) = t

End If

   End If

i = i + 1

Loop

For i = 1 To k

List2.AddItem nam(i) + "    " + sex(i) + "    " + Str(math(i)) + "    " + Str(su(i))

Next i

End Sub

程序中①处改为________________________________________。
程序中②处改为________________________________________。