题库 高中信息

题干

(加试题)试场编排方法:每试场人数30,尾数试场可能不足30,按6行5列的布局编排试场,每个试场的座位号如下图所示。编写一个VB程序实现上述功能:在文本框Textl中输入学生数n,在文本框Text2中输入试场号m,单击“确定”按钮Commandl,在列表框中Listl中输出第m试场的编排表,程序运行界面如图b所示。
(1)999个学生的考号依次是001,002,...,998,999。根据上述试场编排方法,可知第3试场第2行第3列的学生考号是_______________。
(2)小王根据上述算法,设计了一个加密程序,其VB代码如下,请在划线处填入合适的代码。
Const k=30
Function adj(s As String)As String
‘功能:在字符串s前添加若干个空格,代码略。
End Function
Function convert(n As Integer) As String
‘功能:把n转字符串,不足3位则在前面补0,代码略。
End Function
Private Sub Commandl_Click()
Dim kh(1 To 999)As String
Dim n As Integer,m As Integer,kcs As Integer
Dim i As Integer,j As Integer,line As String
Dim start As Integer,ofsetl As Integer,offset2 As Integer
n=Val(Text1.Text)
m.Val(Text2.Text)
For i=1 To n.

kh(i)=convert(i)

Next i
If n Mod k=0 Then kcs=n\k Else___________
If m>kcs or m<l Then

Label3.Caption="无该试场!"

Else

___________

For i=l To 6

line=""
offsetl=i
line=line+adj(kh(start+ofst))
For j=2 To 5
If j Mod 2=1 Then
Offset l=offset1+12
line=line+adj(kh(start+ffset!))
Else
___________
line=line+adj(kh(start+offset2))
End If
Next j
List1.AddItem line

Next i

End If
End Sub
上一题 下一题 0.99难度 填空题 更新时间:2019-11-19 07:47:23

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

同类题1

在数组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