修改时间:2024-07-31 浏览次数:447 类型:期末考试
s = "2019appreciate": sum = 0
For i = 1 To Len(s)
ch = Mid(s, i, 1)
If ch >= "a" And ch <= "z"
Then m = Asc(ch) - Asc("a") + 1 a(m) = a(m) + 1
End If Next i
For i = 1 To 10
If a(i) > 0
Then sum = sum + 1
Next i
数组 a 各元素的初始值都为 0,执行该程序段后,则变量 sum 的值为( )
For i = 1 To 2
For j = 1 To 6 - 2 * i
If a(j) < a(j + 2) Then
t = a(j): a(j) = a(j + 2): a(j + 2) = t
End If
Next j Next i
数组元素a(1)~a(6)的初始值依次为“15,13,44,38,26,7”,执行该程序段后,数组a元素的值分别为( )
a(1) = 2: a(2) = 2: a(3) = 5: a(4) = 6: a(5) = 7
Key = 2
i = 1: j = 5: flag = False Do While i <= j And Not flag
m = (i + j) \ 2 If Key = a(m) Then
s = "找到第" + Str(m) + "个" flag = True: Exit Do
ElseIf Key < a(m) Then j = m - 1
Else
i = m + 1 End If
s = Str(m) + s Loop Label1.Caption = s
执行该程序段后,在标签 Label1 中显示的内容是( )
图a
(提示:占出口比重(%) = 某个国家的出口额/全部出口额*100)
图 b
图 c
图 a
图b
得2枚金币,再接下来的3天(第4、5、6 天)每天获得3枚金币……,依次类推,即当连续n天每天获得n枚金币后,会在之后的连续n+1天里,每天获得n+1枚金币。
小王用VB编写了工资计算程序,当输入连续工作的最后一天的日期后,单击“计算”按钮 Command1,程序自动计算工资总额,其运行界面如图所示。
实现上述功能的VB 程序如下,请回答下列问题:
Dim i As Integer, j As Integer, k As Integer Dim m As Integer, d As Integer, n As Integer Dim md As String, sum As Integer
md = "312831303130313130313031"
n = 0
m = Val(Text1.Text) d = Val(Text2.Text)
For i = 1 To m - 1 n = ①
Next i
n = n + d
i = 0: j = 0
sum = 0: k = 1 Do While i < n sum =
j = j + 1
If ② Then j = 0
k = k + 1
End If
i = i + 1 Loop
Text3.Text = Str(sum) End Sub
例如将某节点插入到已有链表中,根据大小比较有三种情况:插入到最前面、插入到 最后、插入到中间,如图a所示,在链表中的节点 x 和节点 y之间插入节点n的过程示意:过程一(初始状态)如图1所示,链表中节点 x 的指针域指向节点y数据域,即图示①指向;过程二如图2所示,将节点n的指针域指向节点 y 数据域,即图示②指向;过程三如图 3 所示,将①指向断开,同时将节点 x 的指针域指向节点n数据域,即图示③指向;至此完成节点n的插入操作。
图a
具体程序设计方法如下:
1)将待排序的n个数保存在a(1)~a(n),b(1)~b(n)保存对应a数组各元素的位置,形成 n个没有链接的节点;
2)将a(1)结点看成只含有一个结点的链表head,且 head=1;
3)将a(2)节点插入到链表head的适当位置,使head仍有序,此时head成为含有两个结点的有序链表;以此方法依次将a数组中的其他节点插入到链表head中,最后链表 head上包含所有结点,且结点有序。依次输出head链表的数据域即完成排序。
程序运行界面如图b所示,采用此思想进行升序排序的 VB 代码如下,请回答下列问题。
图b
Private Sub Command1_Click()
Dim a(1 To 100) As Integer 'a 数组存储待排序数据(数据域)
Dim b(1 To 100) As Integer 'b 数组存储待排序数的位置(指针域) Randomize
n = Val(Text1.Text)
‘随机产生 n 个待排序的数,并将 b 数组初始化(初始值全部指向自身)
For i = 1 To n
b(i) = i
a(i) = Int(Rnd * 100) + 1
List1.AddItem Str(b(i)) + " " + Str(a(i))
Next i head = 1
For i = 2 To n k = head
‘插入到链表最前面
If a(i) <= a(head) Then
head = i
Else
‘寻找插入位置
Do While k = b(k)
Loop
If b(k) <> k Then
b(i) = b(k): b(k) = i Else
b(k) = i End If
End If Next i
List2.AddItem Str(head) + " " + Str(a(head))
Do While head <> b(head)
List2.AddItem Str(b(head)) + " " + Str(a(b(head)))
Loop
End Sub
试题篮