实现上述功能的VB程序如下:
Dim a(1 To 8)As Integer ‘存储道次编号
Dim b(1 To 8)As Single ‘存储运动员成绩
Dim num As Integer
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer, p As Integer
Dim t As Single
For i=1 To 7
k=i
For j=i+1 To 8
If Then
k=j
End If
Next j
If k<>i Then
p=a(i):a(i)= a(k):a(k)= p
t=b(i):b(i)= b(k):b(k)= t
End If
Next i
For i=1 To 8
List2.AddItem Str(a(i))&“道:”& Str(b(i))
Next i
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer) ’按回车键录入比赛成绩
Dim cj As Single
If KeyAscii=13 Then ‘是否为回车键
num=num+1
cj=Val(Text1.Text)
If cj>0 And num<=8 Then
a(num)= num
List1.AddItem Str(a(num))&“道:”&Str(b(num))
Else
MsgBox “输入无效”
End If
Text1.Text=“”
End If
End Sub
Function fact(n As Integer) As String
If n = 1 Then
fact = fact & 1
Else
fact = fact(n \ 2) & n Mod 2
End If
End Function
Private Sub Command1_Click()
Dim x As String, i As Integer, r As Integer
x = Text1.Text
For i = 1 To Len(Text1.Text)
If Mid(x, i, 1) = "." Then Exit For Next i
r = Val(Mid(x, i + 1, Len(Text1.Text) - i)) Text2.Text = fact(r)
End Sub
在文本框Text1中输入2019.70,则执行程序段,在文本框Text2中显示的内容是( )
Private Sub Command 1_Click()
Dim s As String,ch As String
Dim i As Integer,n As Integer
Dim max1 As Integer,max2 As Integer
s=Text1.Text:n=Len(Text1.Text)
If Mid(s,1,1)>Mid(s,2,1)Then
max 1=1:max2=2
Else
max1=2:max2=1
End If
For i=3 To n
ch=Mid(s,i,1)
If ch>Mid(s,max1,1)Then
①
max1=i
ElseIf ch>=Mid(s,max2,1)Then
max2=i
End If
Next i
For i=1To n
If ② Then Text2.Text=Text2.Text&Mid(s,i,1)
Next i
End Sub
① ②
按上述要求,编写一个VB程序,功能如下:在列表框List1中显示整理前的所有物资相关数据,单击“库存合并统计”按钮Command1,在列表框List2中显示整理结果,程序运行界面如图所示。

Const n= 2000 ‘物资总项数
Const nc = 26 ‘物资种别数,最多不会超过26
Dim items(1 To n) As String, supplies(1 To n) As String, totals(1 To n) As Long
Dim g(1 To2 * nc) As Long ‘存储各种物资3天、7天的需求数量
Dim b(1 To nc) As Long ‘存储各种物资的库存量
Dim c(1 To nc) As Long
Dim q(1 To nc) As Integer
Private Sub Form_Load()
‘本过程读取编号、品名、收支、需求的数据分别存储在数组items、supplies、totals、g数组中,并在List1中显示有关数据:g数组中g(1)、g(2)存储物资A的3天、7天的需求数量;g(3)、g(4)存储物资B的3天、7天的需求数……代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer, top As Integer, bottom As Integer
Dim r As Long, s As String, t As Integer, m As Integer
For i=1 To nc.
b(i)=0:c(i)=0
Next i
For i=1 To n ‘统计每种物资的库存量
k = Asc(Mid(items(i), 2, 1))- Asc("A")+1
①
c(k)=i
Next i
j=0
For i=1 To nc
If c(i)<>0 Then j=j+1: q(j)=i
Next i
top = 0: bottom=j+ 1
j=1: k=bottom-1
Do While j<bottom ‘按各种物资的需求量进行等级分类
m=q(j)
②
If r<g(2*m-1) Then
top=top+1
If top<>j Then t= q(top): q(top)=q(j): q(j)=t
j=j+1
ElseIf r>= g(2*m) Then
bottom=bottom-1
t= q(j): q(j)=q(bottom): q(bottom)=t
Else
j=j+1
End If
Loop
List2.AddItem "编号 品名 库存"
List2. AddItem "------------------------------"
For i= 1 To k
s= fp(i, top, bottom)
List2.AddItem" " & s & " " & supplies(c(q(i))) & " " & b(q(i))
Next i
End Sub
Function fp(pos As Integer, head As Integer, tail As Integer) As String
If ③ Then
fp= "A"
ElseIf pos < tail Then
fp= "B"
Else
fp="C"
End If
fp = fp & Mid(items(c(q(pos))), 2, 1)
End Function
① ② ③
Dim a(10) as Integer
Dim i As Integer
Dim s As Integer
For i=1 to 5
a(i)=i*1
Next i
s=a(3)+a(4)
Print s
上述程序运行后,变量s的值是 。
请回答下列问题。
Constn= 10
Dim a(1 To n) As Integer
Private Sub Command1_ Click()
Dim Left As Integer, Right As Integer, Lstart As Integer, Rstart As Integer
Dim i As Integer, j As Integer, t As Integer, s As String
'随机生成n个不重复元素的数组a,并在左边环形显示,代码略
k= 1
For i= 2 Ton
If a(i) < a(k) Thenk=i
Next i
Lstart = (k+n- 2) Mod n+ 1: Rstart= k Mod n+ 1
i= 1
Do Whilei<= (n-1)\2
Left = Lstart
For j= 1 To
p= (Left+ n-2) Mod n+ 1
If a(Left) > a(p) Then
t= a(Left): a(Left) = a(p): a(p)= t
End If
Left= p
Next j
Rstart= Rstart Mod n + 1
Right = Rstart
Do
While
p=RightModn+1
If Then
t= a(Right): a(Right) = a(p): a(p)=t
End If
Right= p
Loop
Lstart =
i=i+ 1
Loop
排序后的数据在右边环形显示,代码略
End Sub
最佳方案为初始时所有人聚集在2号房间,此时花费的最小能量为7×0+8×1+6×2+4×3+4×4=48。
实现上述功能的VB代码如下,但加框处代码有误,请改正。
Dim a(1 To 100)As Integer ‘依次存储编号为1到100的房间的最多居住人数
Private Sub Form_Load( )
‘产生n的值
‘本过程从数据库中依次读取编号为1到n的房间的最多居住人数,并存储在数组a中
‘代码略
End Sub
Private Sub Command1_Click( )
Dim i As Integer,j As Integer,w As Integer
Dim t As Long,ans As Long
ans=32767
For i=1To n
t=0
For j=0 To n-1
‘①
If w=0 Then w=n
‘②
Next j
If t<ans Then ans=t
Next i
Text2.Text=Str(ans)
End Sub
以上程序段运行时,为了实现上述功能,加框处代码应改正为:①;②。
|
数学问题 |
错误的表达式 |
正确的表达式 |
|
⑴判断a是否能被b整除 |
a//b=0 |
|
|
⑵求二进制数1011的十进制数值 |
1×23+0×22+1×21+1×20 |
|
校验码的计算方法如下:
①将身份证号码的前17位数字分别乘以对应的系数。对应关系如下:
|
号码位 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
|
系数 |
7 |
9 |
10 |
5 |
8 |
4 |
2 |
1 |
6 |
3 |
7 |
9 |
10 |
5 |
8 |
4 |
2 |
②将17位数字和系数相乘的结果累计求和;
③用所求的和除以11得到余数;
④用余数与身份证号码的最后一位校验码进行对应,对应关系如下:
|
余数 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
|
校验码 |
1 |
0 |
X |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
ID=input("请输入十八位身份证号码: ")#输入身份证号码
sex={0:"女",1:"男",2:"女",3:"男",4:女,5:"男": 6:"女",7:"男"."8:"女",9:"男"}
ID_ birth=ID[6:14]
ID_ sex=ID[16]
ID_ check=ID[17]
#求出year,month,day
|
① |
print("出生日期: "+year+"年"+ month+"月"+day+"日")
print("性别:", ② )
ID=list(ID) #把字符串转成列表
ID=list(map(int, ID[0:17])) #把前17个元素转成整型
ID_ CHECK=["1","0'","X'","9“,"8","7”,"6“,"5”,"4","3","2"]
|
③ |
#用列表存储每一位权值 #17位数字和系数相乘的结果累计求和 #求余数 #求验证码 |
print("验证码是否正确:", check-= =ID_check)
xx=[35,29,28,42,21,38,17,44,18,19]
sum=0
for i in :
sum=sum+i
print("信息学科平均分为:"+str(ave))
xx=[35,29,28,42,21 ,38,17,44,18,19]
ty=[29,31,26,38,40,41,26,41,21,33]
c=0
for i in :
if :
c=c+1
print("技术学科分数大于等于80分的学生有:"str(c)+"个"
a(1)=68:a(2)=88:a(3)=76:a(4)=60:a(5)=98
a(6)=100:a(7)=64:a(8)=85:a(9)=99:a(10)=59
For i=1 to 9
b(i)=Abs(a(i +1)-a(i))
c(b(i)\10)=c(b(i)\10)+1
Next i
For i = 0 To 10
If c(i)> 0 Then Label1. Caption = Label1. Caption + " "+Str(c(i))
Next i
数组c各元素初值为0,执行该程序段,标签Label1上显示的内容是( )
x=1
while x>0:
x=x+1
print( x)
n=int(input("请输入一个整数:"))
m=int(input("请输入一组数据的第一个数:"))
=m
max=m
for i in range(1,n):
t=int(input("请输入后续的数:"))
if t<:
min=t
if t>max:
print() #输出极差的值
input("运行完毕,请按回车键退出...")
编写完成后原名保存并关闭应用软件。