程序界面如图所示,左边列表框List1中显示的是部分职工的卡号和余额,在文本框Text1中输入职工的IC卡号,单击“查询余额”按钮(Command1)后,如果找到此卡号,则在标签Lab3中显示“此卡号余额为”和对应的余额值,如果未找到则显示“找不到此卡号,请重新输入”。
解决此问题的部分程序段如下:
Const n=500' 设卡号总数为500
Dim zg(1 To n) As Long
Dim ye(1 To n) As Single
Private Sub Form1_Load()
' 此过程用于对数组zg和数组ye进行初始赋值,代码略
End Sub
Private Sub Command1_Click()
Dim x As Long, i As Long, j As Long, m As Long, find As Boolean
x=Val(Text1.Text)
i = 1 : j = n : find = False
Do While ‘改错
m = Int((i + j) / 2
If x = zg(m) Then
①
Else If ② Then
j = m - 1
Else
i = m + 1
End If
Loop
If find = true Then
Lab3.Caption=″此卡号余额为″+Str(ye(m))+″元″
Else
Lab3.Caption=″找不到此卡号,请重新输入″
End If
End Sub
程序中①画线处应填入。
程序中②画线处应填入。
s = “QUOTES:keep on going never give up!”
flag = False: m = 0
For i = 1 To Len(s)
ch = Mid(s, i, 1)
If ch >= “a” And ch <= “z” Then
If Not flag Then
m = m + 1
flag = True
End If
Else
flag = False
End If
Next i
Text1.Text = Str(m)
程序执行后文本框Text1显示的内容是( )
t = Val(Text1. Text): m= 2
For i=t-1 To 1 Step-1
k = a(i)
For j=i To n- 1
①
Next j
②
n=n-1
Next i
s1 = Text1.Text: s2 = Text2.Text
i = 1: j = 1
Do While i <= Len(s1) And j <= Len(s2)
If Mid(s1, i, 1) = Mid(s2, j, 1) Then
Loop
If
Then Label1.Caption = "是子串" Else Label1.Caption = "不是子串"
方框处的可选语句为:
①i = i + 1 ②j = j + 1 ③i > Len(s2) ④j > Len(s2)
以下选项正确的是( )
例如,读取的数据为2、3、15、25、10、14、1、5、30、60、15、25,过程是:
⑴设置区间信息为[2,3],[15,25],[10,14],[1,5],[30,60],[15,25];
⑵按区间左端点升序排序,得到J区间信息为[1,5],[2,3],[10,14],[15,25],[15,25],[30,60],[15,25];
⑶合并区间,得到[1,5],[10,25],[30,60]。说明:区间[1,5]和[2,3]合并为[1,5],区间[10,14]和[15,25]合并为[10,25],区间[10,25]和[15,25]合并为[10,25],因此合并后的结果为:[1,5],[10,25],[30,60]三个区间。
程序功能如下:单击“读数据库”按钮Command1,程序从数据库读取数据,输出在文本框Text1中;单击“开始处理”按钮Command2,程序进行区间排序,并进行区间合并操作,操作后的结果输出在文本框Text2中。程序运行结果如图所示。
实现上述功能的VB程序如下,请回答下列问题:
Dim a(1 To 100) As Integer ′数组a存储合并前的区间
Dim b(1 To 100) As Integer ′数组b存储合并后的区间
Dim n As Integer ′n表示区间个数
Private Sub Command1_Click()
Dim s1 As String, i As Integer
'读取数据,并存储到数组a中,并输出在文本框Text1中,代码略
End Sub
Private Sub Command2_CIick()
Dim s2 As String, i As Integer, j As Integer, k As Integer
Dim n As Integer, t As Integer, x As Integer
For i=1 To n-1
For j=1 To 2 * n-2 * i Step 2
If Then
t=a(j): a(j)=a(j+2): a(j+2)=t
t=a(j+1): a(j+1)=a(j+3): a(j+3)=t
End If
Next j
Next i
k=2
b(1)=a(1): b(2)=a(2)
i=2: j=3
Do While j <=2 * n
If b(i) >=a(j) Then
If b(i) <=a(j+1) Then
Else If b(i)+1=a(j) Then
b(k)=a(j+l)
Else
k=k+1:
k=k+1: b(k)=a(j+1)
i=i+2
End If
j=j+2
Loop
For x=1 To k-2 Step 2
s2=s2 & "[" & b(x) & "," &b(x+1) & "]" & ","
Next x
s2=s2 & "[" & b(x) & "," & b(x+1) & "]"
Text2.text=s2
End Sub
①在搭乘一次地铁后可以获得一张优惠票,有效期为45分钟,在有效期内可以消耗这张优惠票,免费搭乘一次票价不超过地铁票价的公交车。在有效期内指开始乘公交车的时间与开始乘地铁的时间之差小于等于45分钟,即:t_bus-t_ subway <=45
②搭乘地铁获得的优惠票可以累积,即可以连续搭乘若干次地铁后再连续使用优惠票搭乘公交车。
③搭乘公交车时,如果可以使用优惠票一定会使用优惠票;如果有多张优惠票满足条件,则优先消耗获得最早的优惠票。
小轩同学编写了VB程序计算最近公共交通出行的费用,程序运行时,在文本框Text1中输人小轩的公共交通出行记录(各数之间以逗号分隔),单击“获取数据”按钮Command1将数据按顺序存储在数组a中并在List1中显示。其中第i条出行记录乘坐的交通工具存储在数组元素a(3*i-2)中,0代表地铁,1代表公交车;第i条记录乘车的票价存储在数组元素a(3*i-1)中;第i条记录开始乘车的时间(距0时刻的分钟数)存储在数组元素a(3* i)中。如小轩最近6条乘车记录的数据为0,5,1,0,20,16,0,7,23,1,18,31,1,4,38,1,7,68在数组a中的存储结构如下表所示。
|
a(1) |
a(2) |
a(3) |
a(4) |
a(5) |
a(6) |
…… |
a(16) |
a(17) |
a(18) |
|
0 |
5 |
1 |
0 |
20 |
16 |
…… |
1 |
7 |
68 |
单击“计算”按钮Command2,则在标签Label2中显示小轩同学的公共交通出行总费用。程序运行界面如图所示。

Const maxn= 1005
Dima(1 To 3 * maxn) As Integer
Dim ticket(1 To 3 * maxn) As Integer
Dim i,n,k,x,y,cost As Integer
Dim tail,head As Integer
Dim s As String
Dim found As Boolean
Private Sub Command1_Click()
s= Text1.Text
k= 1
For i=1 To L en(s)
c= Mid(s,i,1)
If c="," Then k=k+1 Else
Next i
'将各条出行数据输出在列表框List1中,代码略
End Sub
Private Sub Command2_ Click()
head=1:tail= 1
For i=1 To k\ 3
If a(3 * i-2)=0 Then
cost= cost+a(3 * i-1)
ticket(3 * tail)=a(3 * i)+45
tail= tail+1
Else
Do While head < tail And ticket(3 * head) < < a(3 * i)
head= head+1
Loop
If found= False Then cost=cost+a(3 * i-1)
End If
Next i
Label2.Caption= Str( cost)
End Sub
Function pd(x As Integer, y As Integer) As Boolean
pd= False
For j=x Toy
If ticket(3 * j-1) >=a(3 * i-1) And ticket(3 * j-2)=0 Then
pd=True
ticket(3 * j-2)=1
Exit Function
End If
Next j
End Function
Text1.text="相同":j=1
Do while j<=len(s2)
If mid(s1, 1, 1)=mid(s2, j, 1) then
s1=mid(s1, 2, len(s1)-1)
s2=mid(s2, 1, j-1)+mid(s2, j+1, len(s2)-j)
Else
If
Text1.text="不相同"
End if
End if
Loop
方框中的代码由以下三部分组成:
①j=j+1 ②j=1 ③j=len(s2)+1
则(1)、(2)、(3)中代码顺序正确的是( )
Const n = 10
Private Sub Command1_Click()
num = 0: k = 0
Do While k < n
k = k + 1
If ① Then
num = num + 1
b(num) = a(k)
Else
②
End If
Loop
For j =③
a(j) = b(j - n + num)
Next j
End Sub
下列选项中,①②③中的代码顺序正确的是( )
list=['a','b','c','d','e','f','g']
list1=[]
list2=[]
for i in range(7):
if i%2==0:
list1.append(list[i])
else:
list2.append(list[i])
print(list1)
print(list1)
Dim i As Integer, n As Integer, k As Integer, s As String n = Val(Text1.Text):k = 1: s = ""
Do While 2 ^k < n
k = k + 1
Loop
Do While n <> 0
If n >= 2 ^ (k -1) Then s = s + "1"
n = n - 2 ^ (k -1)
Else
s = s + "0"
End If
k = k - 1
Loop
For i= 1 To k
s = s + "0"
Next i
在文本框Text1输入12,执行该程序段后,变量s、k的值分别为( )
s="水果5fRU2IT!"
ans-res="
for x in s:
if "a"<=x<="z":
ans=ans+chr (ord(x) -32)
elif "A"<=x<="Z":
ans=ans+chr (ord(x) +32)
elif "0"<=x<="9":
res=res+x
t-ans+res
print(t)
程序执行后,输出的结果是( )
如上图所示的棋盘,需要选择第2行第2列、第4行第2列两颗棋子,按照规则进行翻转便可使得棋盘变为纯黑。现编写程序找出实现棋盘纯色所需翻转棋子次数最少的方案并输出所挑选棋子的个数,若无答案则输出“无法翻转为纯色”。
解决该问题的算法原理:棋盘翻转方案为0000000000000000~1111111111111111之间的某几种,即十进制数 0~65535,利用枚举算法在0~65535之间枚举,即可找到最优方案。假设被选翻转棋子状态用1表示被选中,0表示不选中。例如某方案的十进制为1028即 2^10+2^2,转化为一个16位的二进制串0000010000000100就表示该棋盘中的第2行第2列、第4行第2列这两个棋子及其上下左右被选中翻转,我们认为该方案选中两个棋子进行翻转。
程序运行界面如下图所示,请回答下列问题。
'数组a储存棋盘原状态,数组b储存翻转后的棋盘状态
Dim a(1 To 16) As Integer, b(1 To 16) As Integer, minc As Long
Private Sub Form_Load()
'生成原始由0、1组成的棋盘状态,用数组 a(1)-a(16)保存,代码略
End Sub
Private Sub Command1_Click()
Dim k As Integer, c As Integer, i As Long, j As Long
minc = 100
For i = 0 To 65535
For j = 1 To 16 '初始化棋盘
b(j) = a(j)
Next j
k = 16: c = 0: j = i
Do While j > 0
If j Mod 2=1 Then
b(k) = 1 - b(k)
If k > 4 Then b(k - 4) = 1 - b(k - 4)
If Then b(k + 4) = 1 - b(k + 4)
If k Mod 4 <> 0 Then b(k + 1) = 1 - b(k + 1)
If k Mod 4 <> 1 Then b(k - 1) = 1 - b(k - 1)
c = c + 1
End If
k = k - 1
Loop
If
Then minc = c
Next i
If minc = 100 Then Label1.Caption = "无法翻转为纯色!" Else Label1.Caption = "最少翻" + Str(minc) + "次"
End Sub
Function check() As Boolean '判断棋盘是否纯色
Dim flag As Boolean, i As Integer
flag = True
For i = 1 To 15
If Then flag = False: Exit For
Next i
check = flag
End Function
读取学生答案文件后和标准答案进行对照并判分,题型分为单选、多选和填空。
单选阅卷规则:和标准答案一致得全部分数,错选或不选不给分
多选阅卷规则:和标准答案一致得全部分数,漏选给一半分数,错选或不选不给分
填空阅卷规则:标准答案表中允许有多种答案存在。学生的答案在标准答案中存在,得全部分数,不存在或未填不给分。
例如"学生答案.txt"内容如下:
张三|A|D|AC|AD|字符串|
李四|A|D|ACD|A|string|i>=0
标准答案:
|
题号 |
1 |
2 |
3 |
4 |
5 |
6 |
|
题型 |
单选 |
单选 |
多选 |
多选 |
填空 |
填空 |
|
答案 |
A |
D |
ACD |
AD |
字符串或string |
i==0或i>=0 |
|
分值 |
2 |
2 |
2 |
2 |
2 |
2 |
程序执行结果:
张三 成绩: 9 分
李四 成绩: 11 分
def dx(s1,s2,n): # 对多选题进行判分
flag =True
for i in s1:
if :
flag =False
break
if s1==s2:
return n
elif :
return 0
else:
return n/2
f=open('学生答案.txt')
line=f.readline() # 按行读取学生答案.txt 文件
bzda=['单选','A',2,'单选','D',2,'多选','ACD',2,'多选','AD',2,'填空',['字符串','string'],2,'填空',['i==0','i>=0'],2]
while line:
studa=line.split('|') # 将字符串以'|'为间隔分割成成多个字符串组成的列表
zf=0
for i in range(len(studa)-1):
p=3*i
if bzda[p]=='单选': # 对单选题判分
if studa[i+1]==bzda[p+1]:
zf=zf+bzda[p+2]
elif bzda[p]=='多选': # 对多选题判分
zf=
else:
if studa[i+1]!= '' and studa[i+1] in bzda[p+1]:
zf=zf+bzda[p+2]
print(studa[0],'成绩:',zf,'分')
line=f.readline() # 读取下一行
f.close( )
s = 0
n = 1
while s<100:
s = s+n
n = n+1
c = Text1.Text
s1 = "jiayou!" s2 = s1 + s1
For i =1 to len(s1)
If c = Mid(s2, i, Len(s1)) Then Exit For
Next i
Label1.Caption = Str(i)
程序执行完后,Label1中显示的内容是4,则Text1中输入的内容是( )
PRIVATE SUB FORM CLICK()
DIM X AS SINGLE
J=0 : B=0: Q=0: L=0: Y=0
FOR I=1 TO
X=VAL(INPUTBOX(“请输入一个成绩”))
SELECT CASE
CASE
J=J+1
CASE IS>=80
B=B+1
CASE IS>=70
Q=Q+1
CASE
L=L+1
CASE
Y=Y+1
END SUB

data=open("txm.txt")
#班级选课人数存放在列表xknum中,代码略
kmmc="物理化学生物政治历史地理技术"
line=data.readline()
kmnum=[0]*7 #用于存放实际参与教学调查每个选科人数
while line:
for i in range(3): #统计每科参考投票的人数
km=int(line[])-1 #(选填字母,从下列A、B、C、D四个选项中选取一项)
kmnum[km]=kmnum[km]+1 a
line=data.readline()
s=""
for i in range(7):
if : #(填程序代码)
s=s+kmmc[i*2:(i+1)*2]+" "
print("无效的科目有:",s)
划线①处的选项:
A .9+i*2:9+i*2 B .9+i*2:11+i*2
C .8+i*2:9+i*2 D .8+i*2:10+i*2
from PIL import Image
x_start = 11 # 起始点坐标
y_start = 92
fill_width= 24 信息点宽度
fill_height= 10 # 信息点高度
space_width = 15 间隔宽度
space_height = 12 # 间隔高度
ans_cnt = 5 # 题目个数
def bw_judge(R, G, B): # bw_judge用于判断一个像素的填涂情况
Gray_scale = 0.299 * R + 0.587 * G + 0.114 * B
return Gray_scale < 132
def fill_judge(x, y): # fill_judge 用于判断信息点的填涂情况
count = 0
for i in range(x, x + fill_width):
for j in range( ):
R, G, B = pixels[i, j]
if bw_judge(R, G, B) == True:
count = count + 1
if count >= fill_width * fill_height * 0.64:
return True
total_width = fill_width + space_width
total_height = fill_height + space_height
image = Image.open ("card.bmp")
pixels = image.load()
ans = ""
item=[‘A’,’B’,’C’,’D’]
list=[]
for col in range(ans_cnt):
x =
for row in range(4):
y = y_start + total_height * row
if fill_judge(x, y) == True:
list.append(ans)
ans=""
print(list)
string=input('请输入字符串:')
word=input('请输入查询字符:')
count=0
for i in string:
if i==word:
count+=1
age=float(input('请输入age='))
HRrest=float(input('请输入HRrest='))
gender=input("请输入male or female :")
if gender==' ③ ':
④
else:
⑤
HRrest
high=(n-age-HRrest)*0.8+HRrest
print('最适宜的心率是:',low,'~',high)
input("运行完毕,请按回车键退出...")
以上计算最适宜运动心率的公示是有性别差异的,那么如何修改程序可以实现根据性别输出结果呢?
①②③
④⑤。