Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer
a = Val(text1.Text)
b = Val(text2.Text)
c = (a + b + Abs(a - b)) \ 3
Text3.Text = Str(c)
End Sub
运行该程序,分别在文本框Text1、Text2中输入5、9,单击命令按钮Command1后,文本框Text3中显示的内容是( )
提示:本题“除 2 取余倒排法”的方法将十进制转化为二进制,算法如下: 例如十进制数“97”转化为二进制的过程如右图所示:
因此“97”二进制值为:1100001
Dim a As Integer, c As Integer, w As Integer, i As Integer
Dim s As String, k As String
c = 0
For m = 1 To 100
k = ""
i = 2 * m
Do While i > 0
a=i Mod 2
k = str(a) + k
Loop
For n = 1 To Len(k)
s = Mid(k, n, 1)
If s = "1" Then w = w + 1
Next n
If w = 4 Then
c = c + 1
End if
Next m
Text1.Text = Str(c) End Sub
实现上述功能的VB程序如下,请回答下列问题:
Private Sub Command1_Click()
Dim a(20) As Long
Dim i As Integer, j As Integer, s As String List1.Clear
n = Val(Text1.Text)
a(1) = 1
List1.AddItem Str(a(1)) For i = 2 To n
s = ""
For j = Step -1
a(j) = ①
s = s + Str(a(j))
Next j
② Next i
① ②
Dim a(1 To 10) As Integer, f(1 To 20) As Boolean
'f数组各元素的初值设为False,代码略
For i = 1 To 10
t =int(rnd()*20+1)
If Not f(t) Then
a(i) = t: ⑴
For j = i To 2 Step -1
If ⑵ Then
tmp = a(j): a(j) = a(j - 1): a(j - 1) = tmp
End If
Next j
Else
⑶
End If
Next i
上述程序中3处下划线应填入的程序代码是( )
p = 1: q = 10
Do While p < q
iMin = p: iMax = p
For i = p + 1 To q
If a(i) < a(iMin) Then iMin = i
If a(i) > a(iMax) Then iMax = i
Next i
t = a(iMin): a(iMin) = a(p): a(p) = t
t = a(iMax): a(iMax) = a(q): a(q) = t
p =" p" + 1
q =" q" - 1
Loop
要使程序实现上述算法思想,则方框中的语句是
Private Sub Command1_Click()
Dim t1 As Integer, t2 As Integer
Dim i As Integer, t As Integer
Dim f As Single
List1.Clear
t1 = Val(Text1.Text)
t2 = Val(Text2.Text)
If Then '(选填字母,从下列A、B、C、D四个选项中选取一项)
t = t1: t1 = t2: t2 = t
End If
i = t1
Do While '(选填字母,从下列A、B、C、D四个选项中选取一项)
f = i * 9 / 5 + 32 '摄氏温度转换为华氏温度
List1.AddItem Str(i) + " " + Str(f)
'(填程序代码)
Loop
End Sub
划线①、②处的选项:
A .i <= t2 B .f <= t2 C .t1 > t2 D . i < f
a=5
b=10
S=2*(a+b)
往池中倒入一定的水量V (每1单位水量刚好填充一个格子, 格子大小为1×1),现要求倒入水后,每一列水位高度一致。
如图b所示,往池中倒入V=11的水量,则水位高度为3.5(解释:第一层没有空白单位,首先填满第2层的3个单位,然后填满第3层的5个单位,此时还剩氽11-3-5-3个单位的水量,第4层有6个单位的空白,不足以填满,此时3/6=0.5,故总填充高度为3+0.5=3.5)。
为了解决该问题,小吴设计了二分算法:通过枚举水位高度,计算所儒的水量与实际输入水量比较,如果所需水量大于实际水量(精确到0.01),则需降低水位高度,否则增加水位高度,直到得到正确结果。程序功能:运行程序时,在文本框Text1中输入倒入的水量V,在文本框Text2中输出能达到的水位高度(保留1位小数输出)。程序运行界面如图c所示。
程序代码如下:
Dim V As Double
Dim a(1 To 100)As Integer, n As Integer
Private Sub Form_Load() ‘初始化池底
n=8
a(1) = 2:a(2) = 1: a(3) = 4: a(4) = 2
a(5)= 1:a(6) = 3: a(7) = 1: a(8) = 4
End Sub
Function check(g As Double) As Boolean
Dim sum As Double ‘变量sum用于计算水位高度为g时所儒水量
Sum = 0
For i = 1 To n
If g > a(i) Then 【sum = sum + g】
Next i
If sum < V Then check = True Else check = False
End Function
Private Sub Command1_ Click()
Dim L AS Double, R As Double, mid As Double
L= 0:R = 32767
V = Val(Text1.Text)
Do While L + 0.001 < R
mid=(L + R)/ 2
If Then
R= mid
Else
L =
End If
Loop
Text2.Text = “高度为:”+ Str(Int(R * 100 + 0.5) / 100)
End Sub
⑴将数组a中的n个元素依次分割出若干个数据块,每个数据块有2m个元素,分割时,按尽可能大的数据块进行分割。
⑵对每个分割出的数据块进行求和,将和依次存储在数组b中。
例如:n=13,可将a(1)~a(13)依次分割成3个数据块,元素的个数分别为8、4、1。将3个数据块的和依次存储在b(1)、b(2)、b(3)中。
小明依据上述描述设计了如下VB程序,运行界面如图所示。请回答下列问题:
Const n = 13
Dim a(1 To n) As Integer Dim b(1 To n) As Integer Private Sub Command1_Click()
Dim start As Integer ‘当前未分割数据的第1个元素下标
Dim i As Integer, k As Integer, pb As Integer, left As Integer, m As Integer
'读取n个数据,依次存储到a(1)、a(2)、……a(n)中,并对数组b赋初值为 0,代码略
start = 1: left = n: m = 0
Do While 2 ^ m <= left ‘寻找第1个数据块
①
Loop
m = m - 1
pb = 1
Do While left > 0
For i = start To start + 2 ^ m - 1
②
Next i
List1.AddItem Str(2^m) + " " + Str(b(pb)) pb = pb + 1
‘改错
left = left - 2 ^ m
Do While left < 2 ^ m
m = m - 1
Loop
Loop
End Sub
① ②
k=int(input("输入一个四位数:"))
x=
y=k%100
if :
print("符合")
else:
print("不符合")
m = int(input("请输入一个正整数:")) x = m y = m for i in range (9):n = int(input("请输入一个正整数:")) if n<x : x = n if n<y : y = n print(x, y) 程序运行后,依次输入:12 35 9 11 23 88 13 19 29 55 |
运行结果是:
编写一个验证哥德巴赫猜想的VB程序:程序运行时,在文本框Text1中输入一个大于等于4的偶数,单击“验证”按钮Command1后,如果哥德巴赫猜想验证成功,则在文本框Text2中显示“Yes”,并在列表框List1中显示用两个素数表示该偶数的等式,否则显示“No”。程序运行结果如图所示。
实现上述功能的VB代码如下,但加框处代码有错,请改正。
′函数pp(x)的功能是判断整数x是否为素数,若是素数则返回True,否则返回False
Function pp(x As Integer) As Boolean
Dim j As Integer
pp = True
j = 2
Do While j <= Int(Sqr(x)) And pp=True
If x Mod j = 0 Then pp = False Else
'①
Loop
End Function
Private Sub Command1_Click()
Dim n As Integer, p As Integer, q As Integer, pd As Boolean
n = Val(Text1.Text)
p = 1
pd = False
Do While Not pd And p < n
p = p + 1
'②
If pp(p) And pp(q) Then
Text2.Text = “Yes”
pd = True
List1.AddItem Str(n) + “=” + Str(p) + “+” + Str(q)
End If
Loop
If pd = False Then Text2.Text = “No”
End Sub
程序中加框①处应改正为;
加框②处应改正为。