某算法的部分流程图如下图所示,执行这部分流程图后,变量x的值是(   )
A.OB.1C.2D.8
当前题号:1 | 题型:选择题 | 难度:0.99
数组a中有20个正整数,以降序排序。在文本框Text1中输入一个正整数data,寻找数组中是否存在两个元素之差等于给定的数据。若是则输出这两个数(有多对数满足条件,只输出最先找到的数对)。否则输出“not find”。实现此问题的算法程序如下,加框处代码有误,请改正。
①________________________
②________________________
③________________________
Private Sub Command1_Click()
Const n = 20
Dim a(20) As Integer
Dim data As Integer, left As Integer, right As Integer, m As Integer
Dim f As Boolean
f = True
data = Val(Text1.Text)
' 随机产生符合题意的数组a中各元素并按降序排序
For i = 1 To n - 1

right = n

Do While ②

m = (left + right) \ 2
If a(i) - a(m) > data Then
right = m - 1
ElseIf a(i) - a(m) < data Then
left = m + 1
Else
Text2.Text = a(i) & a(m)

End If
Loop
Next i
If f=True Then Text2.Text = "not find"
End Sub
当前题号:2 | 题型:None | 难度:0.99
数组a中存放着1到20的正整数,要求对其中的元素进行分段排序,在Text2中输入每段元素的个数,在文本框Text3中显示每段降序排序后的数据,其中多余的元素不做处理。具体程序实现如图所示。

实现该功能的VB程序代码如下,请在划线处填入合适代码。
Dim a(0 To 100) As Integer
Const high = 16
Private Sub Form_Load()
Randomize
For i = 1 To high
a(i) = Int(Rnd * 20) + 1
Text1.Text = Text1.Text + Str(a(i))
Next i
End Sub
Private Sub Command1_Click()
Dim p As Integer, q As Integer, t As Integer
Dim m As Integer, n As Integer, k As Integer
m = Val(Text2.Text)
For i = 1 To ________
c = ""
For j = 1 To m
p =________
q = i * m
k = sort(p, q)
If a(k) <> a(p) Then
t = a(p): a(p) = a(k): a(k) = t
End If
c = ________
Next j
Text3.Text = Text3.Text + " " + c
Next i
End Sub
Function sort(f As Integer, g As Integer) As Integer
s = f
For i = f To g
If a(i) > a(s) Then
s = i
End If
Next i
sort = s
End Function
当前题号:3 | 题型:None | 难度:0.99
某算法的部分流程图如图所示,执行该流程,以下说法正确的是(   )
A.8B.16C.32D.64
当前题号:4 | 题型:选择题 | 难度:0.99
纪念品分组问题。某教师节晚会的纪念品分组规则如下:按纪念品价值进行分组,每组总价值不超过限定值w且最多包含两件,要求分组数最少。编写VB程序解决该问题,程序运行时,在文本框Text1中依次输入每件纪念品的价格(不超过w),以逗号分隔,在文本框Text2中输入限定位w,单击“分组”按钮,在标签Labe12上输出最少的分组数。程序运行界面如图所示。

(1)要使程序启动后,窗体的标题栏显示“纪念品分组”文字,可在Form_Load事件过程中添加语句__________(单选,填字母:
A.Forml="纪念品分组"/B.Forml.Name="纪念品分组"/C.Forml.Caption="纪念品分组"/D.Forml.Text="纪念品分组")。
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码;并且加框处代码有错,请改正。
①___________________________________
②__________________________________
③__________________________________


(3)若在文本框Text1中输A“50,30,100,70,80,40,50,20,",文本框Tcxt2中输“110”,单击“分组”按钮,标签Labe12中显示的内容是______________
当前题号:5 | 题型:填空题 | 难度:0.99
有如下VB程序段:
s = Text1.Text
t = 0: Sum = 0
For i = 1 To len(s)
c = Mid(s, i, 1)
If c >= "0" And c <= "9" Then
t = t * 10 + Val(c)
ElseIf c >= "a" And c <= "z" Then
Sum = Sum + t
Else
t = 0
End If
Next i
Text2.Text = Str(Sum)
在文本框Text1中输入“123aBc456”,执行程序段,文本框Text2中显示的内容是(   )
A.456B.654C.579D.123
当前题号:6 | 题型:选择题 | 难度:0.99
某地1900-1999年的平均降水量数据保存在数据库中。现要求找出相邻两年年平均降水量变化(即本年度与上年度“年平均降水量”差值的绝对值)最大的年份区间。如果多个符合要求的年份区间,只输入距今最近的。小吴为此编写了VB程序,程序运行时,单击按钮Command1后,在文本框Text1中输出运行结果。实现上述功能的VB代码如下,但加框处代码有错,请改正。
Dim w(1 To 100) As Single '依次存储1900-1999年的年平均降水量数据
Const n = 100
Private Sub Form_Load()
'本过程从数据库中按19000-1999年依次读取年平均降水量数据,并存储在数组w中
'代码略
End Sub
Private Sub Command1_Click()

Dim i As Integer, imax As Integer

imax =  _______________

For i = 3 To n

If Abs(w(i) - w(i - 1)) >= Then imax = i  ____________

Next i

Text1.Text = "年平均降水量变化最大的年份区间是" + Str(imax + 1889) + "-" + Str(imax + 1899)

End Sub
当前题号:7 | 题型:填空题 | 难度:0.99
某数据压缩方法描述如下:
1)原始数据中,某数不为0且相邻无重复,压缩数据用该数据表示;
2)原始数据中,某数为0且相邻无重复,压缩数据用两个数表示,第1个位0,第2个为0;
3)原始数据中,某数据相邻有重复,压缩数据用3个数表示:第1个位0,第2个为重复数的个数,第3个为该数本身;
根据上述压缩方法,对应的解压缩方法示例如图a所示。

图a

小明编写了一个解压送VB程序,功能如下:窗体加载时,自动读取压缩数据,依次存储在数组元素a(1)、a(2)、a(3)……中,压缩数据的个数存储在变量n中,压缩数据显示咋文本框Text1中。单击“解压缩”按钮Command1,程序对压缩数据依次进行解压缩处理,解压缩数据显示在文本框Text2中。程序运行界面如图b所示。

图b

(1)如果压缩数据为“23,0,21,66,0,0,77,0,5,0”,则解压缩数据的个数是__________。
(2)实现上述功能的VB程序如下。请在划线处填入合适代码。
Dim a(1 To 100) As Integer '存储压缩数据,最大处理个数为100
Dim b(1 To 1000) As Integer '存储解压缩数据,最大处理个数为1000
Dim n As Integer '存储压缩数据的个数
Private Sub Form_Load()
'压缩数据由上述压缩方法生成
'本过程用于读取压缩数据并存储在数组a,压缩数据个数存储在变量n中
'代码略
End Sub
Private Sub Command1_Click()

Dim pa As Integer '存储压缩数组当前处理位置

Dim pb As Integer '存储解压缩数组当前处理位置

Dim firstdata As Integer, count As Integer, i As Integer

pa = 1: pb = 1

Do While pa <= n

 firstdata = a(pa)
If firstdata <> 0 Then  '示例1情况处理
b(pb) = firstdata
pa = pa + 1: pb = pb + 1

Else

count = a(pa + 1)

If count = 0 Then    '示例2情况处理

b(pb) = 0

pa =____________: pb = pb + 1

Else '示例3情况处理

For i = 1 To count
______________
Next i
pa = pa + 3:  pb = pb + count
End If
End If

Loop

Text2.Text = Str(b(1))

For i = 2 To ___________

Text2.Text = Text2.Text + "," + Str(b(i))

Next i

End Sub
当前题号:8 | 题型:填空题 | 难度:0.99
某算法的部分流程图如图所示,执行这部分流程后,输出a,b的值分别是(   )
A.5,8B.4,8C.5,11D.4,11
当前题号:9 | 题型:选择题 | 难度:0.99
为分析数组a中各元素依次变化的情况,进行如下定义:
变化段:数组中相邻两个元素构成一个变化段。变化段有上升段(a(i)>a(i-1))、下降段(a(i)<a(i-1))和持平段(a(i)=a(i-1))。数组a中的n个元素可构成n-1个依次排列的变化段。
波峰:从上升段转到下降段形成一个波峰。波峰的起点是峰顶前所有连续上升段中的第1个,终点是峰顶后所有连续下降段中的最后1个。
对称波峰:上升段与下降段个数相同的波峰称为对称波峰。
下图为一组数据的变化段及波峰示意图。

现要求统计数组a各元素依次变化过程中“对称波峰”的个数。小李依据上述描述设计如下VB程序。请回答下列问题:
(1)数组元素“1,4,3,3,2,6,8,7,9,3,4,7,9,6,3,1”依次变化过程中“对称波峰”的个数为_____。
(2)请在划线处填入合适的代码。
Const n = 20
Dim a(1 To n) As Integer
Private Sub Form_Load()
'读取数据,并存储到数组a中,代码略
End Sub
Private Sub Command1_Click()

Dim flag As Integer  '存储变化段的状态:1表示升,-1表示降,0表示平

Dim count As Integer '存储对称波峰段的个数

Dim steps As Integer

Dim i As Integer

flag = 0: steps = 0: count = 0

For i = ________ To n

If a(i) > a(i - 1) Then

If IsSymPeak(flag, steps) Then count = count + 1

If flag = 0 Or flag = -1 Then

_________

Else

steps = steps + 1

End If

flag = 1

ElseIf a(i) = a(i - 1) Then

If IsSymPeak(flag, steps) Then count = count + 1

steps = 0

flag = 0

Else

  steps = steps - 1

flag = -1

End If

Next i

If IsSymPeak(flag, steps) Then count = count + 1

Text1.Text = Str(count)

End Sub
Function IsSymPeak(flag As Integer, steps As Integer) As Boolean

If __________________ Then

IsSymPeak = True

Else

IsSymPeak = False

End If

End Function
当前题号:10 | 题型:填空题 | 难度:0.99