题库 高中信息

题干

下列VB函数返回值为String类型的是(  )
A.Asc(X)B.Int(X)C.Val(X)D.Mid(X,n,k)
上一题 下一题 0.99难度 选择题 更新时间:2019-06-04 05:13:45

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

同类题1

酒店房间管理:酒店房间(房间数小于10000)编号按1、2、3…连续编号,老板对于没有出租的房子使用如下的方法来登记管理。连续的空房间,登记第一间的编号和连续的空房间数,比如空房间1,2, 6,7,8,10,则登记3条记录,分别为(1  2),(6  3),(10  1),某旅客退房了,需要把这房子也登记上去,有四种情况需要处理:
1)上靠,例如退的房间号为3,则原来登记的3条记录变成(1  3),(6  3),(10  1);
2)下靠,例如退的房间号为5,则原来登记的3条记录变成(1  2),(5  4),(10  1);
3)上下不靠,例如退的房间号为4,则登记的记录数变成4条(1  2) ,(4  1),(6  3),(10  1);
4)上下靠,例如退的房间号为9,则登记的记录数变成2条(1,2),(6,5);
小王依据上述描述设计了如下VB程序。请回答下列问题:
(1)当登记的记录有3条,分别为(1,4),(6,2),(10,3),现在某旅客退掉5号房间,则登记的记录变成_______________________________
(2)请在划线处填入合适的代码。
Const n = 5000
Dim a(0 To n) As Integer  'a(i)保存第i条记录的开始房间号
Dim b(0 To n) As Integer  ' b(i)保存第i条记录的房间数
Dim c As Integer, k As Integer, sp As Integer  'k为原始记录数
'读取原始k条记录的数据,依次存入a(1),b(1),a(2),b(2)…a(k),b(k),代码略
'为了程序处理方便,虚设了下面2条记录
a(0) = 0 : b(0) = 0 : sp = k + 1 :a(sp) = 10000 : b(sp) = 0
Private Sub Command1_Click()
Dim i As Integer
c = Val(Text1.Text)  'c为退掉的房间号
i = 1
Do While a(i) < c   '查找房间c,应该登记在某位置
i = i + 1
Loop
i = i - 1
'下面为处理退房登记问题
If a(i) + b(i) = c Then
If __________ Then   '第4种情况,上下靠
b(i) = b(i) + 1 + b(i + 1)
For j = i + 1 To sp - 1
a(j) = a(j + 1) : b(j) = b(j + 1)
Next  j
sp = sp - 1
Else     '第1种情况,上靠
b(i) = b(i) + 1
End If
ElseIf  c + 1 = a(i + 1) Then  '第2种情况,下靠
a(i + 1) = c : b(i + 1) = b(i + 1) + 1
Else '第3种情况,上下不靠
For j =_____________________
a(j) = a(j - 1) : b(j) = b(j - 1)
Next j
a(i + 1) = c : b(i + 1) = 1 : sp = sp + 1
End If
‘下面为输出登记的记录,不包括虚设的两条记录
For i =1 to _______
List3.AddItem "第" & Str(i) & "记录(" & Str(a(i)) & "," & Str(b(i)) & ")"
Next i
End Sub

同类题4

某班师生玩一个游戏,n(n 不超过 1000)个同学站成一圈,逆时针编号为 l - n,有两个老师 A 和 B,A 老师从 1 开始逆时针数 k 个同学,B 老师从 n 开始顺时针数 m 个同学(注意 A,B 老师可能数到同一个学生),被老师选中的 1 个或 2 个学生离开圈子,剩下的学生继续。
程序开始时在 Text1 中输入同学数 n,在 Text2 中输入 k 的值,在 Text3 中输入 m 的值,点击“开始” 按钮,在 label5 中显示依次出圈的学生编号。程序运行如图所示:

VB 程序如下,请将按要求答题:
Dim stu(1 To 1000) As Integer
Dim n As Integer
Private Sub Command1_Click()

Dim left, k, m As Integer

Dim stup1, stup2 As Integer

n = Val(Text1.Text)

k = Val(Text2.Text)

m = Val(Text3.Text)

    ①    
stup1 = n: stup2 = 1
For i = 1 To n
stu(i) = i Next i
Do While left > 0
stup1 = teachount(stup1, 1, k)
stup2 =
Label5.Caption = Label5.Caption & " " & Str(stup1)
left = left - 1
If    ②    Then
Label5.Caption = Label5.Caption & " " & Str(stup2)
left = left - 1
End If stu(stup1) = 0

stu(stup2) = 0

Loop

End Sub
'f=1 表示逆时针数 c 个,f=-1 表示顺时针数 c 个
Function teachount(ByVal p As Integer, ByVal f As Integer, ByVal c As Integer) As Integer
Do While c > 0
    ③    
Do While stu(p) = 0

p = (p + f + n - 1) Mod n + 1

Loop

c = c - 1

Loop teachount = p
End Function
(1)加框处的语句有错误,请改正:______________________________________________ 
(2)请将①处的语句补充完整:______________________________________________
(3)请将②处的语句补充完整:______________________________________________
(4)请将③处的语句补充完整:______________________________________________