题库 高中信息

题干

(加试题)以下VB代码运行后,在文本框Text1输入3,则最终在文本框Text1输出的结果为(   )
Private Sub Text1_Change()
Dim m As Integer, i As Integer
k = Val(Text1.Text)
For i = 2 To 4
If k <= 14 Then
k = k + i
End If
Next i
Text1.Text = Str(k)
End Sub
A.21B.17C.14D.12
上一题 下一题 0.99难度 选择题 更新时间:2019-05-05 07:08:07

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

同类题2

张真同学对数字系统很感兴趣,他已经学会了整数十进制转换为二进制的方法:"除2取余,逆序排列"法。通过查找资料得知,十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数部分,得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。张真同学编写了VB程序如第17题图:程序运行时,在文本框Text1中输入一个带小数的正十进制数(小于32767),点击“进制转换”按钮Command1,在文本框Text2中输出转化后的带小数的二进制数,精确到4位小数。
实现上述功能的VB程序如下,请回答下列问题:

(1)按照本程序的功能,在Text1中输入数据4.125,点击“进制转换”按钮Command1,在Text2中输出     。
(2)请在画线处填入合适的代码:
Private Sub Command1_Click()
Dim k As Integer, i As Integer, pos As Integer, temp As Integer
Dim s As String, c As String, result As String
Dim s1 As Integer,s2 As Single
result = "":i = 1
s = Text1.Text
c = Mid(s, i, 1)
Do While c <> "."
i = i + 1
c = Mid(s, i, 1)
Loop
pos = i
1     
s2 = Val("0." + Mid(s, pos + 1,len(s)-pos))
'整数部分s1转化为二进制
temp = s1 Mod 2
result = str(temp) & result
s1 = s1 \ 2
Do While s1 <> 0
temp = s1 Mod 2
result = str(temp) & result
s1 = s1 \ 2   
Loop
result = result & "."
'小数部分s2转化为二进制,最多保留4位小数
k = 1
Do While   ②     
temp = Int(s2 * 2)
result = result & str(temp)
  3   
k = k + 1
Loop
Text2.Text = result
End Sub

同类题3

过桥问题。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)。