题库 高中信息

题干

下列程序的运结果是[ ]
DIM  A(1991  TO  1998)  AS  INTEGER
FOR  I=1 TO 8
A(I)=I
PRINT  A(I);
NEXT  I
A.1  2  3  4  5  6  7  8
B.1991  1992  1993  1994  1995  1996  1997  1998
C.显示出错信息
D.0 0 0 0 0 0 0 0
上一题 下一题 0.99难度 选择题 更新时间:2019-09-12 12:53:24

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

同类题3

小蓝设计了一个数字字符串的简单加密解密小程序,该程序的加密规则是计算连续升序子串的长度,将该长度字符插入到相应子串后面。例如:

输入2350123456783,先将字符串拆成三段,分别是235,012345678,3要求每一段必须严格有序,如果无法实现连续升序,则单独作为一个拆分。
原字符串
235
012345678
3
连续升序字符数
    3
9
1
密文
235
3
012345678
9
3
1
 
在文本框Text1中输入原文,单击“加密”按钮,可在文本框Text2中输出密文。
在文本框Text2中输入密文,单击“解密”按钮,可在文本框Text3中输出原文。
(1)程序运行时,在文本框Text2中输入“1233012345678910”,则在Text3中显示的内容为__________________ 。
(2)实现上述功能的VB代码段如下,请在划线处填上合适代码。
Private Sub Command1_Click()'加密过程
Dim a(1 To 100) As String
Dim s1, s2 As String: Dim tmp As Integer
tmp = 1: s1 = Text1.Text
For i = 1 To Len(s1)
a(i) = Mid(s1, i, 1)
Next i
s2 = a(1)
For i = 2 To Len(s1)
If _________________ Then   

s2 = s2 + a(i): tmp = tmp + 1

Else

s2 = s2 + LTrim(Str(tmp))  'LTrim()函数用以移除左边的符号位空字符

s2 = s2 + a(i)

_________________

End If
Next i
s2 = s2 + LTrim(Str(tmp)) : Text2.Text = s2
End Sub
Private Sub Command2_Click()'解密过程
Dim b(0 To 100) As String
Dim k As String, t As Integer, n As Integer
Dim s As String, s3 As String, j As Integer
s = Text2.Text: n = Len(s)
For i = 1 To n
b(i) = Mid(s, i, 1)
Next i
t = n - 1: k = Val(b(n))
Do While t > 0
If k <> 0 Then

For j = 1 To k

__________________
t = t - 1

Next j

k = Val(b(t))

t = t - 1   

Else

k = 10

t = t - 1

  End If
Loop
Text3.Text = s3
End Sub

同类题4

求最长升序子序列的长度。一个数的序列bi,当b1<b2<…<bS的时候,我们称这个序列是升序的。对于给定的一个序列(al,a2,…,aN),我们可以得到一些升序的子序列(ail,ai2,…,aiK),这里1<=il<i2<……<iK<=N。比如,对于序列(1,7,3,5,9,4,8),有它的一些升序子序列,如(1,7),(3,4,8)等等。这些子序列中最长的长度是4,比如子序列(1,3,5,8),小王设计VB程序用于求最长升序子序列的长度,在文本框Text1中输入n个各不相同的数据(各数据之间以逗号隔开),单击“求解”按钮Command1后在标签Labell中输出最长升序子序列的长度,运行界面如图所示。

具体算法描述如下:
①将文本框Text1中的n个数据依次读取到数组a中;
②构造一个数组b(j),j表示升序子序列的长度,b(j)的值表示所有j长度升序序列中最小的末尾元素值。例:序列(2,6,4,5),长度为2的子序列有(2,6),(2,4),(2,5),(4,5),则b(2)=4;
③从第1个元素开始,依次处理到第i(1≤i≤n)个元素为止,b数组所能达到的最大下标值maxlen,处理过程分两种情况:
a)a(i)>b(maxlen),则最长升序子序列的长度增加;
b)a(i)<b(maxlen),则在数组b中逆序查找到第一个b(j)>a(i)(maxlen-1≤j<1),更新数组b中升序子序列长度为j+1时所存储的元素值。
以图中数据为例:

④数组b的最大下标值即为最长升序子序列的长度。
实现上述过程的VB程序如下,请回答下列问题:
(1)若在文本框Text1中输入的序列为(4,7,9,8,6),则数组元素b(2)的值为_____________。
(2)请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim a(1 To 100)As Integer存储原序列
Dim b(1 To 100)As Integer存储各长度序列的最小末尾元素
Dim s As String
Dim n As Integer,i As Integer,j As Integer,maxlen As Integer
S=Text1.Text
n=1:j=1
For i=1 To Len(s)

c=Mid(s,i,1)

If c=,Then

a(n)=Mid(s,j,i-j)
n=n+1
j=i+1
End If
Next i
______
maxlen=1:b(1)=a(1)
For i=2 To n
If a(i)>b(maxlen) Then
maxlen=maxlen+1
b(maxlen) =a(i)
Else
j=maxlen-1:flag=True
Do While j>=1 And flag
If a(i)>b(i)Then
______
flag = False
End If
j=j-1
Loop
If______Then b(1)=a(i)
End If
Next i
Label1.Caption="最长升序子序列的长度为:"+Str(maxlen)
End Sub