题库 高中信息

题干

在数组a中按顺序找出一组升序子序列,可以不连续,但要求长度最长。例如:数组a的值分别为2,11,4,13,5,7。升序子序列分别有[2,11]、[2,4]、[2,11,13]、[2,4,13]、[2,4,5]、
[2,4,5,7]、[11,13]、[4,13]、[4,5]、[4,5,7]、[5,7],其中最长升序子序列的数据是2,4,5,7。

算法思路如下:

(1)求以a(i)为结尾元素的最长升序子序列时,找到所有序号j(j=1,2……i-1),且a(j)<a(i)。

如果这样的元素存在,且d(j)>=d(i)(d(i)记录i位置的最长升序子序列长度),那么就增加i位置的最长升序子序列长度,并记录该升序子序列倒数第二个位置。

(2)在d数组中找出最大值,即最长升序子序列长度。

(3)例如,2、11、4、13、5、7,d(1)=1,d(2)=2,d(3)=2,d(4)=3,d(5)=3,d(6)=4,所以最长升序子序列长度为4,是以a(6)为结尾元素。

现设计了如下VB程序,界面如图所示,请回答下列问题:


(1)观察上图,最长升序子序列的数据是____________________________。
(2)请在划线处填入合适的代码。
Const n = 9
Dim a(1 To n) As Integer
Private Sub Form_Load()

‘生成n个[1,10]范围的随机数,存储在a数组,并显示在列表框List1。代码略

End Sub
Private Sub Command1_Click()
Dim d(1 To n) As Integer ‘记录i位置的最长升序子序列长度
Dim pre(1 To n) As Integer ‘记录i结尾的最长升序子序列前一数据的位置
Dim st As String,i As Integer,k As Integer,maxlen As Integer
For i = 1 To n

d(i) = 1

Next i
For i = 2 To n

For j = 1 To i-1

If a(j) < a(i) And d(j) >= d(i) Then
d(i) = ___________ 
pre(i) = j
End If

Next j

Next i
maxlen = 0:k = 0
For i = 1 To n

If ___________ Then maxlen = d(i):k = i

Next i
Do While k <> 0

st = a(k) & "," & st

_____________

Loop
Text1. Text = Mid(st,1,Len(st)-1)
End Sub
上一题 下一题 0.99难度 填空题 更新时间:2019-06-28 10:08:36

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

同类题4

人们常使用计算机程序解决一些实际问题。下面程序可以找出能被2、3、5除,余数为1的最小的4个正整数。(注:VB中不区分大小写)请分析程序回答问题。
Private Sub Command1_Click(   1  )
Dim CountN%, n%
CountN=0
N=1
Do
N=n+1
If n Mod 2=1 And n Mod 3=1 And n Mod 5=1 Then
Print n
CountN=CountN+1
End If
Loop___2___①___3___
End Sub
【小题1】利用计算机编程解决问题的过程中,需要使用一种程序设计语言来实现算法,这个过程叫做(  )
A.设计程序B.测试程序C.运行程序D.编写程序
【小题2】VB中保存工程文件的文件扩展名为(  )
A..mdbB..frmC..vbpD..fla
【小题3】程序中的If语句一般在流程图中用(    )表示
A.平行四边形B.菱形C.矩形D.正方形
【小题4】变量CountN的数据类型定义为( )
A.IntegerB.SingleC.DoubleD.String
【小题5】变量CountN的作用是( )
A.求和B.求平均值C.求最大值D.计数
【小题6】所用到的表示循环的标志性语句是()
A.Dim……End IfB.Do…LoopC.Dim……LoopD.Do……End If
【小题7】在这个循环中,CountN=CountN+1语句被执行()
A.1次B.2次C.3次D.4次
【小题8】①处的语句应该是()
A.Until CountN =2B.Until CountN =4
C.Until Countn =2D.Until Countn =4
【小题9】这段程序的输出结果是(  )
A.31B.33C.35D.37
【小题10】VB语言中,下列合法的变量名是( )
A.12abB.ab12C.*abcdD.c\c
【小题11】下列控件中可用于接收用户输入文本,又可用于显示文本的是( )
A.Label控件B.TextBox控件C.CommandButton控件D.Timer控件
【小题12】VB中,下列哪一函数作用是将数值转化成字符串( )
A.Val(  )B.Asc(  )C.Abs(  )D.Str(  )
【小题13】下列( )算法就是一种直接或者间接地调用自身的算法
A.穷举算法B.排序算法C.递归算法D.解析算法
【小题14】程序中Command1控件响应的事件是( )
A.单击事件B.双击事件C.载入事件D.活动事件
【小题15】在VB中,“20”+“ 19”的运算结果是( )
A.“39”B.FalseC.“20+19”D.“2019”

同类题5

甲乙双方进行一场球类比赛,一局计分的规则是:赢1球得1分,用“1”表示;输1球失1分,用“0”表示。当任一方得分大于等于6分,且领先对方2分及以上,领先方赢一局。如甲选手一局比赛数据为“101110101”,表示甲选手得6分失3分,局比分。
小王用一个字符串记录了甲选手多局比赛数据,其中有一处错误,位于连续多个“0”的最后一个。为了找出错误,小王的处理方法如图a所示,对示例中疑似错误位置6和20分别修改数据,并统计每局比分。他编写了VB程序,功能如下:在窗体Form l的文本框Text l中输入记录数据,单击“分析”按钮Command 1,在列表框List 1中输出修改位置以及修改后每局的比分。程序运行界面如图b所示。
(1)下列对象中有Text属性的是________(单选,填字母:
A.Command 1/B.Form 1/C.Text 1)。
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
(3)程序中加框处代码有错,请改正。
   
图a 图b
Private Sub Command 1_Click()
Dim sp As String,s As String s    s存储甲选手多局比赛的记录数据,长度小于50
Dim a(1 To 50)As Integer,e(1 To 20)As Integer
Dim I As Integer,j As Integer,k As Integer,n As Integer,m As Integer
Dim fl As Integer,f2 As Integer



( ① )
Next i



    找出疑似错误位置

Loop
If   ②  Then

End If

Loop
    对每个疑似错误位置分别修改数据,并统计每局比分






If  Then


End If
Next j

List 1.AddItem sp
  ③ 
Next i
End Sub