小明基于选择排序算法编写了一个VB程序,功能如下:某班有50个学生,从中选择10个身高最高的同学,要求被选的任何两个人不能身高一样(所给的数据保证能选10个)。
实现上述功能的VB程序如下,但加框处代码有错,请改正。
Const  n = 50
Dim d(0 To n) As single , name(1 to n) as string
'读入50个学生的身高,依次存入d(1)…d(50), 最高身高小于2,姓名存入name(1)…name(50)
'代码略
Private Sub Command1_Click()

Dim i As Integer, j As Integer, temp As single, k As Integer,r as string

d(0) = 2

For i = 1 To 10

  For j = i To n

    If d(j) < d(i - 1) Then

If  Then

k = j

End If

    End If

  Next j

  If k <> i Then

temp = d(k):  d(k) = d(i):  d(i) = temp

r=name(k) : name(k)=name(i) : name(i)=r

  End If

Next i

For i = 1 To 10  ‘输出被选的10个人的名字和身高。

  List2.AddItem  name(i) & d(i)

Next i

End Sub
当前题号:1 | 题型:填空题 | 难度:0.99
酒店房间管理:酒店房间(房间数小于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),65
小王依据上述描述设计了如下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
当前题号:2 | 题型:填空题 | 难度:0.99
古希腊著名科学家毕达哥拉斯把1、3、6、10、15、21、28……称为三角形数。这些三角形数序列有一定的规律,后一个数与前一个数的差刚好构成一个等差数列2、3、4、5、6、7、……,所以,第2位的“3”等于序列的第1位数“1”加上等差数“2”,第3位的6等于序列的第2位数“3”加上等差“3”……,第n位数m等于序列的第n-1位数加上等差数n。小金利用这个规律编写了一个判断三角形数的VB程序,在文本框Textl中输入一个大于1的正整数,单击“判断”按钮Commandl,在标签Labell中显示判断结果。程序设计界面如图所示。

(1) 在设计程序界面时,要清空标签中显示的内容“Labell”,应修改该标签的_________属性。
(2) VB程序代码如下,请在划线处填入合适代码。
Private Sub Command1 Click()

Dim n As Integer, s As Integer

s = 0

n = Val(Textl. text)

If n > 1 Then

For i = 1 To n
s =________________________
If n = s Then
Labell. Caption = Str(n) +〃是一个三角形数。"
Exit For
______________________________________
Labell. Caption = Str(n) +"不是一个三角形数。"
Exit For
End If
Next i

Else

Labell.Caption = 〃请输入一个大于1的正整数"

End If

End Sub
(3)若文本框Text1中输入的内容为“27”,单击按钮Commandl后,标签Labell中显示的内容是_________________
当前题号:3 | 题型:填空题 | 难度:0.99
某流程图如图所示。执行该算法,下面说法错误的是………………(  )
A.s的值最终为-5
B.语句“k=k+1”共执行了4次
C.语句“s≤0”共判断了5次
D.该算法转成VB代码时能用Do循环语句实现
当前题号:4 | 题型:选择题 | 难度:0.99
现要求编写VB程序实现如下功能:在文本框Text1中输入正整数n(n为奇数),单击“生成”按钮后,在文本框Text2中会显示一个有规律的对称数字串,形成为“1 3 ...  n-2  n  n-2 ...3  1”。例如n=9时,显示的数字串为“1 3 5 7 9 7 5 3 1”。
 
(1)应用程序界面设计时,为添加按钮,就使用如左图所示的“控件工具箱”中_______(填写数字标号);为将按钮上的字设置为“生成”,应在对应的属性窗口中______属性值修改为“生成”,根据代码可知,命令按钮“生成”的对象名是________。
(2)实现上述功能的VB程序如下。请在划线处填入合适的代码。
Private Sub Cmd1_Click()
Dim n As Integer,i As Integer,s As string
________________________
S=“”
For i=1 To n
If i<=n\2+1 Then

Else
S=s+ _______________
End if
Next i
Text2.Text=s
End Sub
(3)当n=9时,在实现程序功能的情况下,如果将程序中加框处的代码换成“s=str(2*i-1)+s”,单击“生成”按钮,其输出结果为___________________。
当前题号:5 | 题型:填空题 | 难度:0.99
某算法流程图如图所示,该算法实现的功能为
A.交换x,y两数的值
B.求x,y两数最大值
C.求x,y两数最小值
D.以上都不对
当前题号:6 | 题型:选择题 | 难度:0.99
某地区公共自行车收费信息如下:“60分钟内免费;60分钟以上至120分钟(含),收费1元;120分钟以上至180分钟(含),收费2元;租用超过180分钟(含)以上的时间,按每小时3元计费(不足一小时的按一小时计)”。现按要求编写VB程序,界面如图图所示,程序功能如下:在文本框Text1中输入租车时间,单击“计费”按钮Command1,在标签Label5中输出对应的租车费用。
(1)在应用程序界面设计时,为添加“计费”按钮,应使用第2图所示的“控件工具箱”中的___(请填写相应编号),并在3图所示的“属性窗口”中,将____属性值设置为“计费”。

1图     2图 3图
(2)请根据题意将下列程序补充完整。
Private Sub Command1_Click()
Dim zysj As Single, zyfy As Single   ‘zysj:租用时间,zyfy:租用费用
zysj = Val(Text1.Text)
If zysj <= 60 Then
zyfy = 0
ElseIf zysj <= 120 Then
zyfy = 1
ElseIf zysj <= 180 Then
_____________________
ElseIf zysj Mod 60 = 0 Then
zyfy = (zysj - 180) / 60 * 3 + 3
Else
zyfy = (Int((zysj - 180) / 60) + 1) * 3 + 3
End If
Label5.Caption = Str(zyfy)
End Sub
当前题号:7 | 题型:填空题 | 难度:0.99
(加试题)一个简单的四则混合运算式子(算式中只包含整数、+、-、*、/、=)的运算规则是先进行“*”或“/”,再进行“+”或“-”,下列是用 VB编写的简单四则混合运算的程序,运行程序时在文本框 Text1 中输入四则运算式子,单击命令按钮 Command1,在标签Label1 中输出结果。程序界面及代码如下。请回答以下问题。
(1) 若在文本框 Text1 中输入式子“12*5-32/4+20=”,则运行程序后在标签 Label1 中显示的内容是_________。

(2) 请在划线①②③处填入合适的代码,让程序能实现计算功能。
Private Sub Command1Click
Dim a(1 To 100) As Single, b(0 To 100) As String
Dim s As String, c As String   
Dim sz As Integer, i As Integer, k As Integer
s = Text1.Text:k = 0
For i = 1 To Len(s)

c = Mid(s, i, 1)

If c >= "0" And c <= "9" Then

sz = 0
Do While c >= "0" And c <= "9"
sz= ①________
i = i + 1
c = Mid(s, i, 1)
Loop
k = k + 1: a(k) = sz: b(k) = c
End If
Do While k > 1 And ②________
If b(k - 1) = "+" Then a(k - 1) = a(k - 1) + a(k)
If b(k - 1) = "-" Then a(k - 1) = a(k - 1) - a(k)
If b(k - 1) = "*" Then a(k - 1) = a(k - 1) * a(k)
If b(k - 1) = "/" Then a(k - 1) = a(k - 1) / a(k)
b(k-1) = b(k)
k = k - 1
Loop
Next i
Label1.Caption = "运算的结果是:" + Str(a(1))
End Sub
Function yxj(x As String) As Integer

If x = "*" Or x = "/" Then

yxj = 1

ElseIf x = "+" Or x = "-" Then

yxj = 2

Else

 ③________

End If

End Function
当前题号:8 | 题型:填空题 | 难度:0.99
某多选题共有6个候选项(A、B、C、D、E、F),得分规则是:全部答对得2分,部分答对得1分,未作答或有错误答案0分。设计一个能够评分的程序,要求如下:在文本框Text1中输入标准答案,在文本框Text2中输入学生答案。点击评分按钮Command1后,将得分显示在标签Label4中。程序界面如图所示:

(1)要使程序运行后,窗体Form1的标题栏中显示“评分”,正确的做法是_____ (单选,填字母:
A.将窗体的Text属性改为“评分”/B.在Form1_Load事件中输入代码Form1.Caption=”评分”/C.在Form1_Load事件中输入代码Form1.Name=”评分”);
(2)实现上述功能的程序如下,请在划线处填入合适的代码:
Private Sub Command1Click
Dim cans As String ,ans As String ,c As String ,count As Integer
Dim f(1 To 6) As Boolean
cans = Text1.Text:ans = Text2.Text
count = 0
For i = 1 To Len(cans)
c = Mid(cans, i, 1)
f(Asc(c) - 64) = True
Next i
For i = 1 To ①______     
c = Mid(ans, i, 1)
If f(Asc(c) - 64) = False Then
count = 0: Exit For
Else
count = count + 1
End If
Next i
If count = 0 Then
Label4.Caption = "0分"
ElseIf ②______ Then    
Label4.Caption = "2分"
Else
Label4.Caption = "1分"
End If
End Sub
(3)若去除加框处代码,且将文本框Text2的内容改为“BCD”,标签Label4显示的内容是_______。
当前题号:9 | 题型:填空题 | 难度:0.99
下列VB程序段的功能为:生成n个不重复的随机整数,保存在数组a中,并升序排序。
Const n = 6
Dim a(1 To n) As Integer, f(1 To 10) As Boolean
Dim tmp As Integer, i As Integer, j As Integer, t As Integer
’f数组各元素的初值置为False,代码略
For i = 1 To    (1)  
t = Int(1 + Rnd * 10)
If Not f(t) Then
a(i) = t : f(t) = True
For j = (2)   
If a(j) < a(j - 1) Then
tmp = a(j): a(j) = a(j - 1): a(j - 1) = tmp
End If
Next j
Else
(3)  
End If
Next i
上述程序段3个方框处的表达式分别为
A.(1)n - 1 (2)2 to i    (3)i = i - 1
B.(1)n (2)i to 2 Step -1    (3)i = i - 1
C.(1)n - 1    (2)2 to i    (3)t = Int(1 + Rnd * 10)
D.(1)n (2)i to 2 Step -1    (3)t = Int(1 + Rnd * 10)
当前题号:10 | 题型:选择题 | 难度:0.99