
实现上述功能的 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
⑴ ⑵
Private Sub Command1_Click()
Dim n,m As Integer
Dim ch,s As String
s = "01234567"
ch = ""
Do While n > 0
m = n Mod 8
n = n \ 8
Loop
Text2.Text = ch
End Sub
Private Sub Command1_Click()
i=1
j=7
Do While ____①____
i=____②____
j=____③____
Loop
Text1.Text=Str(i)
Text2.Text=Str(j)
End Sub
则下列说法正确的是( )

Private Sub jf_Click()
Dim s As String, d As String, i As Integer
Dim f1 As Single, f2 As Single, f3 As Single
s = Text1.Text
i = 1
Do While ①
d = Mid( s, i, 3)
If Mid(d, 1, 1)= "1" Then
fI = fl + Val(Mid(d, 2, 2))
Elself Mid(d, 1, 1)="2" Then
f2 = f2 + Val(Mid(d, 2, 2))
Else
f3 = f3 + Val(Mid(d, 2, 2))
End If
②
Loop
Label1.Caption = "作品1平均分为:"+Str(fl/5)+"作品2平均分为:"+Str(f2/5)+"作品3平均分为:"+Str(f3/5)
'以下省略“处理并列最高平均分,并在 Label2中输出选取的参赛作品”的代码
End Sub
①②
编写“幻圆求解”VB程序,实现如下功能:
单击“随机出题”按钮Command 1,按照圆环从外向里,每个圆环从12点位置开始按顺时针方向,将32个位置上的数字依次存入a数组,若某位置上的数字空缺则其值为0,空缺的数字最多不超过10个,并确保随机生成的数据有解,在列表框List 1中按4行8列的形式输出a(1) ~a(32)的值,若值为0则显示[]。
单击“显示结果”按钮Command 2,从第1个空缺位置开始,验证该位置是否为本行上的唯一空缺或是本列上的唯一空缺,如果不是则验证下一位置;否则输入其值并回到第1个空缺位置重新开始验证,直至所填满所有的空缺。最后,将结果按规定格式输出在列表框List 2中,程序运行界面如图所示:
Dim a(1 To 32) As Integer
Dim b( 1 To 10) As Integer
Private SubCommand1_Click()
'随机生成有解的数据,并在列表框
List1中输出,代码略
End Sub
Private Sub Command2_Click()
Dim n As Integer, i As Integer, x As Integer
n=0
For i= 1 To 32
If a(i) = 0 Then
n=n+1:b(n)=i
End If
Next i
x=1
Do While x<=n
If a(b(x) ) = 0 Then
If ① Then x= 0
End If
x=x+1
Loop
'将结果按规定格式在列表框List2中输出,代码略
End Sub
Function R check(x As Integer) As Boolean
Dim count As Integer, sum As Integer, y As Integer, i As Integer
check=False
If a(x) <>0ThenExit Function
count=0:sum=0:y= ②
For i= 1 To 8
If a(y*8+i) = 0 Then count =count+ 1
sum=sum+a(y*8+i)
Next i
If count = 1 Then
a(x)= ③ :R check=True
End If
EndFunction
Function C check(x As Integer) As Boolean
'用于验证是否为本列唯一空缺, 如果是则填入值并返回True, 否则返回False
'实现上述功能的代码略
EndFunction
①②③
设计一个VB程序,通过在文本框Text1输入托运行李的质量,计算并输出托运行李的费用,行李质量超过150千克,则显示“行李超重!”。结果在文本框Label1中显示。程序运行界面如图a所示。
Private Sub Command1_Click( )
Dim x As Double,y As Double
①
If x>150 Then
Label1l.Caption="行李超重!"
Else
If ② Then
y=0.35*50+0.5*(x-50)
Else
y=0.35*x
③
Label1.Caption="行李收费"+ ④ 十"元"
End If
End Sub
画线处应填入的代码为:①;②;③;④。
①给定24小时内的租赁起始时间和结束时间:输入租赁开始的时间和结束的时间。注:时间的输入格式为hh:mm:ss,如10:23:11。
②计算租车时间time:计算租车起始时间和结束时间的时间差time。
③计算租车费用pay:若time小于等于1,则pay为0;若,则pay为time;若time大于10, 则pay为10。
Stime=input('租车开始时间:')
etime=input('租车结束时间:')
#stime.split(":")[0]切出的是租车开始时间的时
#stimespli(":")[1]切出的是租车开始时间的分
#stime.split(":")[2]切出的是租车开始时间的秒
if int(etime. split(":")[0])>=int(stime.split(":")[0]):
time=int(etime. split(":")[0])-int(stime.spilt(":")[0])
if int(etime.split(":")[1]>int (stime.split(":"))[1):
time=time+1
elif int (etime.split(":")[1])= int(stime.split(":")[1]) and int(etime.split(":")[2]>= int(stime.split(":")[2]):
time= time+1
if time<=1:
pay=0
elif
pay=time
else:
print(pay)
假设银行的年存储利率为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
根据上述回答下列问题:
Private Sub Form_Click()
Dim y, s, n As Integer
n = InputBox("输入n")
y = 0:
Do While n \ 10 <> 0
y = n Mod 10
s = s + y
n = n \ 10
Loop
Print s
End Sub
①处应填写:;②处应填写:。
str1 = “ABCDEFGHIJKLMNOPQRSTUVWXYZ”
s = “”
For i = 1 To 4
t = Int(Rnd*10) + 1
If t Mod 2 = i Mod 2 Then
t = t + 1
Else
t = t + 2
End If
s = s + Mid(str1,t,1)
Next i
List1.AddItem s
执行该程序段后,列表框List1中可能显示的内容是( )
①输入m,n
②以m为被除数,n为除数,r为m除以n的余数
③判断r的值
若r=0,输出公约数n
若r≠0,则n将赋值给m,再将r赋值给n,转为执行步骤②
①密码是八位数字,前两位为19
②最后两位数字是91
③能被77和133整除
程序界面如图所示,单击“找回密码”按钮(Command1)后,可能的密码显示在列表框List1中。
解决此问题的相应的程序如下:
Private Sub Command1_Click()
Dim i As Long, s As Long
For i = 0 To 9999
s = ① 's表示该八位数密码
If ② Then '符合密码的条件,s能被77和133整除
List1.AddItem Str(s)
End If
Next i
End Sub
① ②
|
题号 |
1-12 |
13-25 |
26-29 |
30- 33 |
|
科目题型 |
信息客观题 |
通用客观题 |
信息主观题 |
通用主观题 |
|
满分分值 |
每题2分 |
每题2分 |
4/8/7/7 |
6/9/3/6 |
小李根据上述描述,设计了一个统计所有同学信息各题得分率的算法。程序运行后首先在列表框List1显示信息技术各小题得分,单击“计算”按钮“Command1",在列表框List2显示信息各题的题号和得分率,在文本框Text1输出所有同学的信息平均分(平均分=各题得分率*分值之和)。算法的VB程序如下,回答下列问题。
Dim a(1 To 1000) As Integer, n As Integer
Private Sub Command1_Click()
Dim i As Integer, j As Integer
Dim fz(1 To 16) As Integer 'fz数组存储信息各题满分值
Dim b(1 To 33) As Double '数组b存储全卷各题的平均得分
For i=1 To 16 '数组fz存储信息16个小题的满分值
If i<= 12 Then fz(i)=2
fz(13)=4 : fz(14)=8 : fz(15)=7 : fz(16)=7
Next i
For i=2 To n '把数组a数据分别统计到各题中
b(j)=a(i)+ b(j)
Next i
For i=1 To 33 '仅处理信息各题的平均分
If i<= 12 Then
b(i)=b(i) / (a(1) * fz(i)) ' 计算信息选择题各题的得分率
ElseIfi>= 26 Andi<= 29 Then
b(i)=
End If
Next i
For i=1 To 16
If i> 12 Then j=i+13 Else j=i
b(j)=Int(b(j) * 1000+0.5) / 10 '对结果四舍五入保留1位小数
List2. AddItem Str(i) 十Str(b(j))+"%"
ave=
Next i
Text1. Text=Str(ave / 100)
End Sub
Private Sub Form_ Load()
'读入数据到数组a,数据个数n,代码略
End Sub