在通过VB设计“BMI指数”的程序中,王明将变量BZ赋值给Text2.text输出,相应的代码是_____________ 。
当前题号:1 | 题型:填空题 | 难度:0.99
下列程序,当单击窗体时s的值是( )。
Private Sub Form_Click()
s = 11 \ 3 + 11 Mod 3
Print s
End Sub
A.3B.4C.5D.6
当前题号:2 | 题型:选择题 | 难度:0.99
下列VB程序段用于读取某数据库中的数据,相应数据表结构如图所示。

Dim adoConn As New ADODB. Connection
Dim adoRs as New ADODB. Recordset
Dim a(l to 1000) As String, b(l to 1000) As Integer
adoConn. Connection String ="Provider ="Microsoft
ACE. OLEDB 12.0;
DATA Source="&App. Path&"\mydata. Accdb"
adoConn. Open
Set adoRs. ActiveConnection=adoConn
adoRs. Open" Select* From Score"
n=0
Do While Not adoRs. EOF

n=n+1

a(n)= adoRs, Fields("学号"). Value

b(n)=adoRs Fields(3). Value

adoRs. MoveNext

Loop
adoRs. Close:adoConn.Close
下列对于该程序段的理解正确的有(   )
①程序连接的数据库文件名是" mydata.echb"
②程序打开的数据表名称是" Score"
③程序将数据表中的数学成绩存入数组b
④程序运行后,变量n的值表示该数据表中记录的总数
⑤关闭数据表的语句为 adoConn. Close
A.①②④B.②③④C.②④⑤D.②③④⑤
当前题号:3 | 题型:选择题 | 难度:0.99
地球上任意位置可以用纬度、经度描述,纬度区间是[-90,90],经度区间是[-180,180]。如:浙江省绍兴市越城区鲁迅故里的纬度是29.9924099,经度为120.58552218。为表达位置间的邻近关系,引入了地理区域编码,某算法的核心思想如下:
•将地理上某点经纬度分别转换成二进制编码。例如,对于给定纬度lat(299924099),编码规则为:
•将区间[-90,90]二分为[-90,0),[0,90],称为左、右区间,1at属于右区间[0,90],标记为1;
•将区间[0,90]二分为[0,45),[45,90],lat属于左区间[0,45),标记为0;
•重复上述过程,不断划分区间,lat属于左区间则记录0,属于右区间则记录1。直到达到指定编码长度 length(一般为5的倍数)为止类似地,可对经度lng(120.58552218进行二进制编码。
·Base32编码合成为地理区域字符串。以编码长度 length=10为例,如前述计算得到,鲁迅故里的纬度编码为10101 01010,经度编码为11010 10110。地理区域字符串生成规则:
•生成新串:奇数位放经度,偶数位放纬度,将两串编码组合:110110 11001 10011 01100;
•分组转换:将11100 11001 10011 01100每5位一组转成1个十进制整数,分别对应为28,25,19,12;
•Base32编码:使用数字0~9、小写字母(去掉字母a,i,1,o)这32个字符进行Base32编码(见下表)。十进制整数28,25,19,12对应的编码组合就是“wtmd”,即为该位置的地理区域字符串。
  
(1)规定编码长度 length为5,经度lng为120.125 082 58,则经度lng的二进制编码为__________。
(2)小沈根据上述描述,设计了一个“利奇马”台风中心途经经纬度转换为地理区域字符串的算法。该算法VB程序实现如下,请在划线处填入合适的代码
Const m=48, length=20'纬度、经度二进制编码长度均为 length
Dim a(1 To 2.* m)As Double
Dim b(1 To m) As string
′读取m个时刻台风中心的经纬度数据并存入数组a,代码略'a(1),a(2)为台风在时刻1的纬度、经度,a(3),a(4)为台风在时刻2的纬度和经度,......
′b(1)保存台风在时刻1的地理区域字符串,b(2)保存台风在时刻2的地理区域字符串,......
Private Sub Command1 _ Click()

′1at为纬度、1ng为经度,code为地理区域编码

Dim lat As double, Ing As Double, code As String

Dim strLat As String, strLng As String, s As String

Dim i As integer, j As Integer, n As Integer

Const base32="0123456789bcdefghjkmnpqrstuvwxyz"

For i=1 To m

lat=a(2*i-1)
Ing=a(2*i)
S=""
strLat= DoubleToBits (lat,—90,90)     ′纬度转换为二进制
编码
strLng=DoubleToBits(lng,—180,180)    ′经度转换为二进制
编码
For j=1 To length
s=________  ′将两串二进制编码
组合
Next j
n=0: code=""
For j=1 To Len(s)
___________
If j Mod 5=0 Then
code= code+Mid(base32,n+1,1)
n=0
End If
Next j
b(i)=code
Next i
′输出地理区域编码,代码略
End sub
′函数 Doubletobits根据指定的区间[ lower,upper],计算 value的二进制编码
Function Double ToBits( value As Double,lower As Double, upper As Double) As String

Dim ret As String, i As Integer, middle As Double

ret="":i=1: middle=0

Do While i<= length

middle=(upper+lower)/2

If_________Then

lower=middle
ret=ret十"1"

Else

upper=middle
ret t+"0
End If
i=i+1
Loop
DoubleToBits=ret
End function
当前题号:4 | 题型:None | 难度:0.99
数学上把2,4,8,16等数称为2的幂次方。编写程序,实现如下功能:在文本框Text1中输入一个正整数n,单击“查找”按钮,找到一个2的幂次方,使其与n之差的绝对值最小,并在标签框 Label1中输出。如果找到两个同时满足条件的幂次方,则输出较小的。程序运行界面如图所示。

(1)要使程序运行时,标签框Labell的ForeColor属性值为vbRed,可在Form_Load事件处理过程中添加语句___________(单选,填字母:
A.Label1. ForeColor= vbRed/B.Labell. vbRed= ForeColor/C.Fore Color. Label1=vbRed)。
(2)实现上述功能的VB程序如下,请在画线处填入合适的代码。
Private Sub Command 1_ Click()

Dim n As Long, sum As Long, ans As Long

n= Val(Textl. Text)

sum=1

Do While sum <n

   ____________

Loop

If n =sum Then

ans=sum
ElseIf ___________Then
ans=sum/2
Else
ans =sum
End If
Label 1. Caption = Str(ans)
End Sub
(3)若文本框Text1中输入的内容为“24”,单击“查找”按钮,标签框 Label l中显示的内容是______________________。
当前题号:5 | 题型:None | 难度:0.99
纪念品分组问题。某教师节晚会的纪念品分组规则如下:按纪念品价值进行分组,每组总价值不超过限定值w且最多包含两件,要求分组数最少。编写VB程序解决该问题,程序运行时,在文本框Text1中依次输入每件纪念品的价格(不超过w),以逗号分隔,在文本框Text2中输人限定值w,单击“分组”按钮,在标签 Label2上输出最少的分组数。程序运行界面如图所示。

(1)要使程序启动后,窗体的标题栏显示“纪念品分组”文字,可在 Form Load事件过程中添加语句   (单选,填字母:
A.Form1="纪念品分组"/B.Form1.Name="纪念品分组"/C.Form1. Caption="纪念品分组"/D.Fom1.Text="纪念品分组")。
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码;并且加框处代码有错,请改正。
Private Sub Command1 Click()

Dim a(l To 1000), n As Integer, w As Integer,cnt As Integer

Dim i As Integer, j As Integer, t As Integer

Dim s As String, ch As String

Dim p As Integer, q As Integer

S= Textl. Text: w =Val(text2. Text): n=0

For i=1 To Len(s)

ch=Mid(s, i, 1)

If ch="."Then

n=n+1:a(n)=t: t=0

Else

t=____________________

 End If

Next i
For i=n To 2 Step-1

For j=1 To '②

If a(j)< a(j+1)Then
t=a(j):a(j)=a(j+1):a(j+1)=t

End If

   Next j
Next i
cnt= 0
p=1: q=n
Do While p<q

cnt=cnt+1

If _________________ Then

p=p+1:q=q-1

Else

p=p+1

End If

Loop
If p=q Then cnt=cnt+1
Label2 Caption- Str(cnt)
End sub
(3)若在文本框Text1中输入“50,30,100,70,80,40,50,20”,文本框Text2中输人“110”,单击“分组”按钮,标签Labe2中显示的内容是____________。
当前题号:6 | 题型:None | 难度:0.99
过桥问题。n个旅行者在夜晚要通过一座狭窄的桥,桥上最多只能上2个人且必须借助手电筒,手电筒只有一只。为了使所有人在最短时间内过桥,设计算法如下:
(Ⅰ)如果只有1人过桥,时间为个人过桥时间。
(Ⅱ)如果有2人一起过桥,时间以慢的人为准。
(Ⅲ)如果有3个人a、b、c,时Ta<Tb<Tc,过桥方案为让a和b起过桥,a拿手电筒回来,然后与c一起过桥。
(Ⅳ)如果存在多于3个人过桥,如a、b、…y、z需要过桥,耗时Ta<Tb<…<Ty<Tx,这时有两种可选方案,选择其中用时少的,直至剩余人数少于4人。
①最快的1个将最慢的2个分别送过桥。
a拿手电筒与z过桥,然后a拿手电筒回来与y一起过桥,a再拿手电筒回来与b一起过桥。
②最快的2个先将最慢的2个送过桥。
让a、b拿手电筒先过桥,a拿手电筒回来,让y、z拿手电筒过桥,然后b拿手电筒回来与a一起过桥。
为验证方案,小明设计了相应的VB程序。首先从数据库中获取每个人的过桥时间,并显示在列表框List1中,单击“计算”按钮 Command1,在文本框Text1中输入最短耗时,界面如下图所示。
 
(1)VB程序代码如下,请在划线处填入合适的代码。
Dim n As Integer   ‘存放过河人数
Dim t (1 To 100) As Integer ‘存放每个人单独过桥时间
Private Sub Form _ load()

‘从数据库中读取每个人的过桥时间,显示在列表框List1中,并统计总人数n,代码略

End Sub
Private Sub Command1_Click()

Dim i As Integer, k As Integer, j As Integer, temp As Integer

Dim sum1 As Integer, sum2 As Integer, tsum As Integer

sum1 = 0:sum2 = 0:tsum=0

For i = 1 To n – 1 ‘对每个人的过桥耗时进行升序排序

   k = i

   For j = i + 1 To n

If ______ Then k = j

   Next j

If k <> i Then
temp t(i):t(i) = t(k):t(k) = temp
End if
Next i
i=n
do while i>3
sum1=2*t(1)+t(i-1)+t(i) ‘方案①
sum2=t(1)+2*t(2)+t(i)   ‘方案②
if sum1<sum2 then
tsum=tsum+sum2
end if
i=_____
Loop
If n = 1 Then ‘剩下1个人
tsum = tsum + t(1)
ElseIf n = 2 Then ‘剩下2个人
tsum = tsum + t(2)
Else ‘剩下3个人
tsum = _____
End If
Text1. Text = Srt(tsum)
End Sub
(2)如有5个人,他们单独过桥耗时(单位:s)如下图所示,则程序运行后文本框Text2中显示的最短耗时:_________(s)。
当前题号:7 | 题型:None | 难度:0.99
工资问题:某古老的工作和工资计算方式比较奇特,其工作要求如下:必须从1月1日当天开始工作,且连续工作n(n<=365)天才一次性结算得到工资。某年(假设当年为平年)的工资计算细则是:第1天获得1枚金币,接下来的2天(第2天和第3天)每天获得2枚金币,再接下来的3天(第4、5、6天)每天获得3枚金币,……,依次类推,即当连续n天每天获得n枚金币后,会在之后的连续n+1天里,每天获得n+1枚金币。
小王用VB编写了工资计算程序,当输入连续工作的最后一天的日期后,单击“计算”按钮Command1,程序自动计算工资总额,其运行界面如图所示。

实现上述功能的VB程序如下,请回答下列问题:
(1)下列选项中,属于鼠标“单击”事件的是_______。(单选,填字母:
A.DblClick/B.Load/C.Click)
(2)请在划线处填入合适的代码。
①__________
②__________
(3)加框处的代码有错误,请改正。
__________
Private Sub Command1_Click()
Dim i As Integer,j As Integer,k As Integer
Dim m As Integer,d As Integer,n As Integer
Dim md As String,sum As Integer
md = "312831303130313130313031"
n = 0
m = Val(Text1.Text)
d = Val(Text2.Text)
For i = 1 To m - 1
n =    
Next i
n = n + d
i = 0:j = 0
sum = 0:k = 1
Do While i < n
sum =
j = j + 1
If    Then
j = 0
k = k + 1
End If
i = i + 1
Loop
Text3.Text = Str(sum)
End Sub
当前题号:8 | 题型:None | 难度:0.99
小杨同学编写了一个VB程序用于学校里7选3选课情况统计。该程序主要功能有:1.点击“生成选课组合”按钮 Commandl,生成35种选课组合;2.点击“统计选课情况”按钮 Command2,统计出各种组合的选课人数;运行界面如下图。实现上述功能的VB程序如下,请回答下列问题:

(1)分析程序代码,如图里“选课组合”序号为30的组合名称为:___________________。
(2)请在划线处填入合适的代码。请回答下列问题:
Dim zh(1 To 16) As String, zrs As Integer
Dim xk(1 To1000) As String'存放同学的选课科目组合,已知学生人数少于1000人
Dim zh2(1 To 35) As String'存放35种选课科目组合
Dim rstj(1 To 35) As Integer'存放各种选课组合选课人数
Private Sub Form_ Load()
‘本过程从数据库中读取学生的选课情况数据,存放在数组xk中,学生的总人数存放在变量zrs。’代码略
End Sub
Private Sub Command l_ Click( )
Dim i As Integer,j As Integer, m As Integer, n As Integer, k As Integer
Dim km(1 To 7)As String
Listl.Clear
List1. AddIton“序号”+“” +“组合名称”
km(1)= “物”:km(2)= “化”:km(3)= “生”km(4)= “政”
km(5)= “史”km(6)= “地”:km(7)= “技”
m= 1
For i= 1 To 5
For k= i+1 To 6

zh(m)=km(i)+ km(k)

m= m+ 1

Next k
Next i
j= 3:n= 1:y= j
For i= 1 To m

For k= y To 7

zh2(n)=___________________________________
If n< = 9 Then
Listl. AddItem n &""&" "& zh2(n)
Else
Listl. AddItem n &"  "& zh2(n)
End If
n= n+ 1

Next k

y= y+ 1

If y=8 Then

j= ___________________________  :y= j

    End If
Next i
End sub
Private Sub Command2_ Click( )
Dim i As Integer

List2. Clear

List2. Additon"组合名称"+""+"选课人数”

For i= 1 To 35

rstj(i)=_____________________________

List2 AddItem zh2(i)+" "+ Str (rstj (i))
Next i
End Sub
Function tj (zhmc As String) As Integer'统计某种选课组合的选课人数
Dim i As Integer, rs As Integer
rs= 0
For i= I To zrs

If zhmc = xk(i) Then

rs= rs+ 1

End If

Next i
tj= rs
End Function
当前题号:9 | 题型:None | 难度:0.99
输入两个在 1 和 9 之间的正整数 a 和 n ,求 a+aa+aaa+aaaa+…+a…a(n 个 a)之和。为解决该问题,小明设计了一个 VB程序,在文本框 Text1 中输入 a 的值,在文本框 Text2 中输入 n的值,单击“计算”按钮 Command1,在列表框 List1 中输出每次相加的等式和结果,界面如图所示。

(1)要使程序运行时,文本框 Text1 的文字大小 FontSize 属性值设置为 12,可在 Form_Load 事件过程中添加语句__________________(单选,填字母:
A.FontSize = 12 /B.Text1. FontSize =12 /C.FontSize. Text1=12)。
(2)实现上述功能的 VB 程序如下,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim a As Long, n As Integer, s As Long
Dim s1 As String, t As Long
a =Val(Text1. Text)
n =Val(Text2. Text)
If a < 1 Or a > 9 Then
List1. AddItem "输入 a 的值无效"
ElseIf n < 1 Or n > 9 Then
List1. AddItem "输入 n 的值无效"
Else
s = a: t = a
s1 =Str(t)
List1. AddItem s1 +"=" + Str(s)
i =  ①__________ 
Do While i <= n
②__________ 
s = s + t
s1 = s1 + "+" +Str(t)
List1. AddItem s1 + "=" + Str(s)
③__________
Loop
End If
End Sub
当前题号:10 | 题型:None | 难度:0.99