题库 高中信息

题干

(加试题)试场编排方法:每试场人数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

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

同类题2

对n项(n<=100)数据序列的前x项求和,可设计如下算法:将数据序列存储在数组a中,并按一定规则转换成数组c,再借助数组c实现求和.
将数组a转换成数组c的方法描述如下:
①将数组a中的元素依次存储到数组c中,把当前数组c看作第一层;
②把第一层中的各元素进行如下处理:奇数项值不变,偶数项的值更新为自己与自己前一项的和,将更新后的数组元素看作第二层;
③把第二层中的各元素,按上述方法进行同样操作,更新后的数组元素看作第三层;
④以此类推,直到当前层中仅有一项为止。
例如x=11时,转换过程如图所示:

借助数组c,可快速计算出数组a中前x项的和.例如,数组a中前11项的和,可由表达式c(11)+c(10)+c(8)得到.表达式具体分析过程如下:
②   表达式第一项为c(11);
②将下标11转换成二进制数1011,计算该二进制数最右边的“1”所对应的权值,再用11减去此权值得到10,即表达式第二项为c(10);
③按上述方法继续操作,直到计算结果等于0为止。
小龙依据上述方法设计了如下vb程序.请回答下列问题:
(1)计算数组a中前22项和的表达式为__________________(填写表达式,如c(11)+c(10)+c(8))。
(2)请在划线处填入合适的代码。
Dim n As Integer
Dim a(1 To 1000) As Long, c(1 To 1000) As Long
Private Sub Form_Load()

'读取n个数据,并存储到数组a中(代码略)

End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer, space As Integer
For i = 1 To n
c(i) = a(i)
Next i
k = 2  '当前层第一个偶数项的位置
space = 1  '当前层偶数项与前一项的间距
Do While k <= n
For i = k To n Step k
c(i) = c(i) + c(i - space)
Next i
k = k * 2
①______________________
Loop
End Sub
Private Sub Command2_Click()

Dim x As Integer, sum As Long

x = Val(Text1.Text): sum = 0

Do While x <> 0

sum = sum + c(x)
②_________________ 

Loop

Text2.Text = Str(sum)

End Sub
Function lowbit(x As Integer) As Integer

Dim temp As Integer

temp = x: lowbit = 1

Do While ③_______________'

lowbit = lowbit * 2
temp = temp \ 2

Loop

End Function