Function f(n as integer) as long
Dim j As Integer
f=1
For j=1 to n
f=f*j
Next j
End Function
Private Sub Command1_Click()
Dim s As Long, AS Integer
S=0
For i=1 to 6
Next i
Text1.text=str(s)
End Sub
方框中正确的语句是 ( )
例如,压缩前的原始数据为:
1111 1100 0101 1010 1011 0000 可表示为十六进制:FC 5A B0
删除每字节的后2 bit:
1111 1100 0101 1010 1011 0000
首尾相连构建新的数据:
11 1111 0101 1010 1100 表示为十六进制:... F5 AC
自此,原数据进行了有损压缩。程序运行界面如下所示:

实现上述算法的VB程序如下,但程序中加框处有误,请改正。
Dim a(1 To 100) As Integer
Const code = "0123456789ABCDEF"
Const n = 100
Private Sub FormLoad()‘ 以随机数模拟读取原始数据
s = ""
Randomize
For i = 1 To n
a(i) = Int(Rnd * 16)
Text1.Text = Text1.Text +
①
Next i
End Sub
Private Sub Command1Click()
For i = 1 To n
t = t + HtoB(a(i))
Next i
For j = 1 To n * 4 Step 8'每8位一组,取前6个字符
s = s + Mid(t, j, 6)
Next j
For i = 1 To 4 * (n - 1) Step 4'每4位一组转为十六进制显示
Text2.Text = Text2.Text + BtoH(Mid(s, i, 4))
Next i
End Sub
Function HtoB(x As Integer) As String'十六进制转为二进制函数
t = ""
m = 0
Do While
②
r = x Mod 2
m = m + 1
t = Trim(r) + t'trim()用于删除前导空格
x = x \ 2
Loop
HtoB = Mid("0000", 1, 4 - m) + t
End Function
Function BtoH(y As String) As String'二进制转为十六进制函数
t1 = Val(Mid(y, 4, 1))
t2 = Val(Mid(y, 3, 1))
t3 = Val(Mid(y, 2, 1))
t4 = Val(Mid(y, 1, 1))
s = t1 + t2 * 2 + t3 * 4 + t4 * 8
BtoH = Mid(code, s + 1, 1)
End Function
① ②

Const MAXNUM = 100
Dim i As Integer, n As Integer
Dim a(1 To MAXNUM ^ 2) As Integer
Private Sub Command1_Click()
Dim line As String
n = Val(Text1.Text)
line = ""
List1.Clear
Randomize
For i = 1 To n ^ 2
a(i) = ①
If i > 1 And i Mod n = 1 Then
List1.AddItem line
line = Str(a(i))
Else
line = ②
End If
Next i
List1.AddItem line
End Sub
Private Sub Command2_Click()
Label1.Caption = ""
For i = 1 to ③
Label1.Caption = Label1.Caption & Str(a(i + (i - 1) * n))
Next i
End Sub
① ② ③
实现上述功能的 VB 程序如下,但加框处代码有错,请改正。
Const n = 10
Dim a(1 To n) As Integer
Private Sub Command1_Click()
Dim i As Integer, j As Integer
Dim temp As Integer, flag As Boolean
'读取一组正整数,存储在数组a中,代码略
i = 1: j = n
temp = a(j): flag = True
Do While i < j
If flag Then
If a(i) Mod 2 = 0 Then
a(j) = a(i)
j=j-1
flag=Not flag
Else
'⑴
End If
Else
If a(j) Mod 2 = 1 Then
a(i)=a(j)
flag=Not flag
Else
j=j-1
End If
End If
Loop
'⑵
'依次输出排序后的数据,代码略。
End Sub
⑴ ⑵
如果要对两个十进制数进行异或运算,可以按以下步骤进行:
① 先将要进行异或运算的两个十进制数分别转换为二进制;
② 对两个二进制数按位进行异或运算;例:(101101)2⊕(111)2=(101010)2
③ 再把步骤②中的运算结果转换为十进制,该十进制数即为运算结果。
小明编写了一个VB程序来模拟上述运算过程,程序功能如下:在文本框Text1和Text2中分别输入要参加异或运算的十进制数,单击计算按钮Command1,程序对输入的两个数进行异或运算,并将运算结果显示在文本框Text3中,程序运行界面如图所示。
Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer
Dim a1 As String, b1 As String
Dim lena1 As Integer, lenb1 As Integer, i As Integer
Dim result As String
a = Val(Text1.Text)
b = Val(Text2.Text)
If a > b Then
c = a: a = b: b = c
End If
result = ""
a1 = DtoB(a): b1 = DtoB(b)
lena1 = Len(a1): lenb1 = Len(b1)
i = 1
Do While i <= lena1
If Mid(a1, lena1 - i + 1, 1) = Mid(b1, lenb1 - i + 1, 1) Then
result = "0" + result
Else
result = "1" + result
End If
i = i + 1
Loop
result =
Text3.Text = BtoD(result)
End Sub
Public Function DtoB(x As Integer) As String
Dim remainder As String
DtoB = ""
Do While x > 0
remainder = CStr(x Mod 2) '如:CStr(3 Mod 2)的值为"1"
DtoB = remainder + DtoB
Loop
End Function
Public Function BtoD(x As String) As Integer
Dim i As Integer
BtoD = 0
For i = 1 To Len(x)
BtoD =+ Val(Mid(x, i, 1))
Next i
End Function
①把条形码下方数字从右往左依次编序号为“1,2,3,4……”;
②从序号2开始把所有偶数序号位上的数相加求和,并乘以3;
③从序号3开始把所有奇数序号上的数相加求和;
④把第②和第③步结果相加求和;
⑤10减去第④步结果的个位数,得出校验码(如果差值为10,则校验码为0);
如条形码的数字为:977167121601X(X为校验码),则校验码主要产生步骤如下:
1) (1+6+2+7+1+7)×3=72
2) 0+1+1+6+7+9=24
3) 72+24=96
4) 10-6=4
所以最后校验码X=4,此条形码数字为9771671216014。
小何为此编写了VB程序,用以验证条形码输入正确与否。程序运行时,从文本框Text1获取条形码数字部分,单击按钮Command1后,在标签Label1中输出结果。实现上述功能的VB代码如下,请补全代码。
Private Sub Command1_Click()
Dim i As Integer, b As String, Lb As Integer
Dim s1 As Integer, s2 As Integer, tmp As Integer
Dim c As String
Dim d(1 To 13) As Integer '存储数据
Dim res As String '存储结果
b = Text1.Text '输入条形码
Lb = Len(b)
s1 = 0 : s2 = 0
flag = True
res = "输入错误!"
listt1.Clear
If Lb = 13 Then
For i = 1 To 13
c = Mid(b, Lb - i + 1, 1)
If c >= "0" And c <= "9" Then
'输入转换
Else
flag = False : Exit For
End If
Next i
If flag Then
For i = 2 To Lb Step 2
s1 = s1 + d(i) '参数计算1
s2 = '参数计算2
Next i
tmp = s1 * 3 + s2
If Then res = "输入正确!"
End If
End If
Label1.Caption = res
End Sub
Private Sub Command1_Click()
Dim pv As Single, fv As Single, rate As Single, n As Integer
pv = Val(Text1.Text)
fv = Val(Text2.Text)
n = 1
Do While pv<fv
pv = pv * (1 + rate)
List1.AddItem "第" + Str(n) + "年" + " " + Str(pv) + "元"
Loop
End Sub
Private Sub Command1_Click()
Dim r As Integer, k1 As Integer, k2 As Integer, r As Integer
Dim s As String, n As Integer
'从文本框TxtIn中获取字符串
Randomize
r = Int(Rnd() * 10) + 1 '随机生成洗牌次数
n = Len(s)
Do While r >= 1 '洗牌操作
k1 = Int(Rnd() * (n - 2)) + 2
k2 = Int(Rnd() * (n - k1 + 1)) + k1
s = + Mid(s, 1, k1 - 1) + Mid(s, k2 + 1, n - k2)
r = r - 1
Loop
'输出结果
End Sub
B .
C .
D .
Private Sub Command1_Click
Dim x, y As Integer
Dim n As Integer
Dim s As String
x = Val(Text1.Text): y = Val(Text2.Text)
n = Val(Text3.Text)
s = s + Str(x \ y)
s = s + "."
k = x Mod y
For i = 1 To n
‘①
‘②
k = x Mod y
Next i
Label1.Caption = "商为: " + s
End Sub
① ②
Private Sub C1_Click()
Dim n as integer, i as integer Dim s as string
n =
s = ""
For i = 1 To n
If i <= n \ 2 + 1 Then
Else
s = s + End If
Next i Text2.Text = s End Sub
采用以下方法可以建构一个贝尔三角矩阵(见图):
A.第一行第一项是1。
B.对于n>1,第n行第一项等同第n-1行最后一项。
C.对于m,n>1,第n行第m项等于它左边和左上方的两个数之和。
小明编写了一个生成贝尔在角矩阵的程序,其功能如下:
程序运行时在文本框Text1中输入整数n(1≤n≤9),单击按钮Command1后,在列表框List1上输出n阶的贝尔三角矩阵。
Private Sub Command1_Click()
Dim n As Integer, s As String, i As Integer, j As Integer
Dim bell(1 To 100) As Integer
bell(1) = 1
List1.AddItem gs(bell(1))
For i = 2 To n
For j = i To 2 Step -1
bell(j) = bell(j - 1)
Next j
bell(1) = bell(i)
For j = 2 To i
Next j
s = gs(bell(1))
For j = 2 To i
s = s + gs(bell(j))
Next j
List1.AddItem s
Next i
End Sub
Function gs(x As Integer) As String '将x转换为字符串,若不足5位,则用空格补足
Dim i As Integer
For i = 1 To 5 - Len(Str(x))
gs = gs + " "
Next i
End Function
①输入上底a、下底b和高h
②计算梯形面积s(计算公式为:s=(a+b)*h/2)
③输出结果
④结束
上述算法属于( )

Private SubCommand1_Click()
Dim a( 1 To 100) As Integer, b( 1 To 100) As Integer, c( 1 To 1000) As Integer
Dim t As Integer, k As Integer, i As Integer, jAs Integer
Dims1As String, s2As String, output As String
s 1=Text 1.Text:s2=Text2.Text:Text3.Text=“”
For i=1 To Len(s1)
a(i)= ① ‘将文本框Text 1中的自然数按从低位到高位的顺序依次存放在数组a(1),a(2) ……a(len(s1))中
Next i
‘将文本框Text2中的自然数按从低位到高位的顺序依次存放在数组b(1),b(2) …… b(len(s2))中,代码略
len c=Len(s1) +Len(s2) -1
For i=1 To Len(s1)
For j=1 To Len(s2)
c(i+j-1)=c(i+j-1)+a(i)*b(j)
c(i+j)= ②
c(i+j-1) =c(i+j-1) Mod 10
Next j
Next i
If c(len c+1) > 0 Then ③
Do While c(len c) =0Andlenc> 1 (2)
len c=len c-1
Loop
output=“”
For i=len c To 1 Step-1
output=output+Mid(Str(c(i)),2,1)
Next i
Text 3.Text=output
End Sub
①②③
20项的和。(最后结果四舍五入精确到0.01)
注:请书写VB代码,画流程图不得分。
某市出租车收费标准如下:
⑴3公里内(含3公里),收费8元;
⑵超过3公里但未超过6公里部分,按1.5元/公里收费;
⑶超过6公里部分,按2.25元/公里收费。
根据以上标准,输入出租车行驶的公里数,请计算顾客需付费多少元?
【参考代码】
Dim s As Single
Dim p As Single
s=Val(InputBox(“s=”))
If s<=3 Then
p=8
End If
If Then
p=1.5*(s-3)+8
End If
If s>6 Then
p=2.25*(s-6)+1.5*3+8
End If
Print p
根据上述回答下列问题:
某省2016年的GDP是6.7万亿元,如果每年按7%的比例增长,问多少年以后此省的GDP超过15万亿?
【算法分析】
假设n 年后此省的GDP超过15万亿元,根据题意得出数学关系式?求最小的n。
【参考程序】
Dim p As Single ‘p用于记录GDP的值
Dim r As Single ‘r用于记录GDP的年增长比例
Dim n As Integer ‘n用于统计年数
p=6.7
r=0.07
n=0
Do While
p=p*(1+r)
n=n+1
Loop
Print n & ”年后,GDP的值超过15万亿元。”
根据上述回答下列问题:
rmb=float(input(输入人民币数量:))
fx=float(input(输入汇率:))
usd=
print(usd)
下列选项中适合填入程序划线处并能实现程序功能的语句是( )
Private Sub Commandl_Click( )
Dim s As Integer, cz As Integer 'cz存储超重克数
Dim k As Integer
'依次从1~5号瓶中取出1、2、4、8、16粒药,并计算总重量,存储在变量s中,代码略
cz=s-310
Text1.Text= ①
k=0
Do While cz<>0
k=k+1
If ② Then List 1.Addltem"第"+Str(k)+"瓶"
cz=cz\2
Loop
End Sub
① ②
假设银行的年存储利率为3%,如果现在存储10000元钱,问多少年后连本带利超过12000元。设定:连本带利=本金*(1+利率)∧年数
假设n年后连本带息超过12000,根据题意得出数学关系式:10000*(1+3%)∧n>12000,求最小的n。
(参考程序)
Dim s as single
Dim r as single
Dim n as integer
s=10000
r=0.03
n=0
Do while
n=n+1
s=s*(1+r)
Loop
Print n;“年后”:“连本带利超过”;s
根据上述回答下列问题: