a(0) = 0 i = 1
Do While i <= 6
a(i) = Int(Rnd * 5) * 2 + 1
If Not flag(a(i)) Or a(i) > a(i - 1) Then
flag(a(i)) = True
i = i + 1
End If
Loop
已知数组flag各元素的初值为False,该程序段运行后,数组元素a(1)到a(6)的值可能为 ( )
a=2:b=5
If b>=a Then a=a+2
b=b+2
If b Mod 2=1 Then b=b*a+1
Text1.Text=Str(b)
程序运行后,文本框Text1上显示的内容为。
·变化段:数组中相邻两个元素构成一个变化段。变化段有上升段(a(i)>a(i-1))、下降段(a(i)<a(i-1))和持平段(a(i)=a(i-1))。数组a中的n个元素可构成n-1个依次排列的变化段。
·波峰:从上升段转到下降段形成一个波峰。波峰的起点是峰顶前所有连续上升段中的第1个。终点是峰顶后所有连续下降段中的最后1个。
·对称波峰:上升段与下降段个数相同的波峰称为对称波峰。
图为一组数据的变化段及波峰示意图。
现要求统计数组a中各元素依次变化过程中“对称波峰”的个数,小李依据上述描述设计了如下VB程序,请回答下列问题:
Const n=20
Dim a(1 To n)As Integer
Private Sub Form_Load( )
´读取数据,并存储到数组a中。代码略
End Sub
Dim flag As Integer ‘存储变化段的状态:1表示升,-1表示降,0表示平。
Dim count As Integer ‘存储对称波峰的个数
Dim steps As Integer
Dim i As Integer
flag=0:steps=0:count=0
For i= ① To n
If a(i)>a(i-1)Then
If IsSymPeak(flag, steps)Then count=count+1
If flag=0 Or flag=-1 Then
②
Else
steps=steps+1
End If
flag=1
ElseIf a(i)=a(i-1) Then
If IsSymPeak(flag, steps) Then count=count+1
steps=0:flag=0
Else
steps=steps-1
flag=-1
End If
Next i
If IsSymPeak(flag, steps) Then count=count+1
Text1. Text=Str(count)
End Sub
Function IsSymPeak(flag As Integer, steps As Integer) As Boolean
If ③ Then
IsSymPeak=True
Else
IsSymPeak=False
End If
End Function
以上程序段运行时,为了实现上述功能,画线处应填入的代码分别为:①;②;③。
string = input("请输入您的车牌:浙A ")
for i in range ( , -1):
if string[i]>== "0" and string[i]<="9":
if string[i]=="0" or string[i]=="5":
print("周五限行!")
elif string[i]=="4" or string[i]=="6":
print("周四限行!")
elif string[]=="3" or string[i-="7":
print("周三限行!")
elif string[i]=="2" or string[i]=="8":
print("周二限行!")
elif string[i]=="1" or string[i]="9":
print("周一限行!")
break
string = input("请输入您的车牌:浙A ")
score = int(input('\n'))
if score>= 90:
grade= 'A'
elif score >= 60:
grade = 'B'
else:
grade= 'C'
print (score, grade)
运行程序,输入“78”后回车,程序的输出结果是( )
数据连接(代码略)
userID = request.POST.get(‘txtUserID’)
userPassword = request.POST.get(‘txtPassword’)
cursor.execute(u""" Select * FROM [student] where [学号]
= '%s' and 密码= '%s'""" %(userID,))
list=cursor.fetchall( )
:
for row in list :
request.session['userID']=
request.session['userName']=
return HttpResponseRedirect("")
else :
warn= u""
如:输入十进制数35,将其转换为二进制数为100011,其中最长连续数字是3个“0”。程序运行界面如图所示。

Private Sub Command1_Click()
Dim n As Integer, i As Integer, j As Integer, m As Integer
Dim s As String, ch As String, ch1 As String, ch2 As String
n = Val (Text1. Text)
Do While n<>0
s=CStr(n Mod 2)+s ‘CStr将数字转化为字符串,但不会有前导空格
Loop
ch1 = Mid(s, 1, 1): ch = ch1
i=2:j=1:m=0
For i=2 To Len(s)
ch2 = Mid(s, i, 1)
If Then
If i-j> m Then
m=i-j
ch = ch1
End If
ch1 = ch2
End If
Next i
![]()
Text2. Text = Str(m) & “个”& ch
End Sub
解题思路:A矩阵放a数组,B矩阵放b数组,相乘后的结果放在d数组
矩阵相乘的方式为:
⒈用A的第1行各个数与B的第1列各个数对应相乘相加,得到的结果就是第1行第1列的数;
⒉用A的第1行各个数与B的第2列各个数对应相乘相加,得到的结果是第1行第2列的数;
……
⒋依次进行,(直到)用A的最末行各个数与B的第末列各个数对应相乘相加,结果是最末行第末列的数。
图 a
图 b
Dim a(1 To 9) As Integer, b(1 To 9) As Integer '矩阵 A,B 的数组
Private Sub Command1_Click()
Dim s As String, i As Integer, ch As String
Dim x As Integer, y As Integer, k As Integer
Dim d(1 To 9) As Integer '新矩阵的数组
s = Text1.Text 'B 矩阵以字符串的形式输入
k = 1
'输入 B 矩阵的值
For i = 1 To Len(s)
ch = Mid(s, i, 1)
If ch = "0" Or ch = "1" Then
b(k) = Val(ch)
k = k + 1
If k = 10 Then Exit For
End If
Next i
'计算出新的矩阵的值
For i = 1 To 9
For j = 1 To 3
Next j
Next i
'输出新矩阵的值
For i = 1 To 3
ch = ""
For j = 1 To 3
ch = ch + Str(d((i - 1) * 3 + j)) + " "
Next j
List2.AddItem ch
Next i
Max = 1
For i = 2 To 9
If d(Max) < d(i) Then Max = i
Next i
x = ((Max - 1) \ 3 + 1)
y =
Label2.Caption = "最大的数是" + Str(d(Max)) + "位置(" + Str(x) + "," + Str(y) +
")"
End Sub
Private Sub Form_Load()
Dim i As Integer, j As Integer, s As String
s = ""
Randomize
'生成矩阵 A 数组
For i = 1 To 9
a(i) = Int(Rnd * 20 + 1) * (-1) ^ (Int(Rnd * 2))
If Then
List1.AddItem s
s = ""
End If
s = s + " " + Str(a(i))
Next i
List1.AddItem s
End Sub
计算机的管理规则如下:
·对于某人需要的物品数量,若仓库有足够的物品,将直接分配给该人。
·若某人需要的物品数量超过了当前的库存量,仓库会拒绝该人的请求。
管理员希望知道有多少人没有顺利取到物品。
现编写VB程序实现对物品的管理,在文本框Text 1中输入物品库存总量,在文本框Text 2中输入每人所需要物品的数量(以逗号分隔),单击“统计”按钮count,在Label 4中显示一天中没有取到物品的人数。程序设计界面如图所示。
Private Sub count_Click()
Dim sum As Integer,num As Integer
Dim cnt As Integer
Dims As String,chAs String,tmp As String
cnt= 0
sum=Val(Text 1.Text)
s=Text 2.Text
For i=1 To Len(s)
ch=Mid(s,i,1)
If ch=","Then
num=Val(tmp)
If num>sum Then
cnt=cnt+ 1
Else
End If
tmp=""
Else
End If
Next i
Label 4.Caption=Str(cnt)
End Sub
a=2
b=5
If a<b Then
m=a
Else
m=b
End If
该程序段运行后,变量m的值为( )。
n = Val(Text1.Text)
For i=2 To n- 1
If n Mod i= 0 Then
a= False
End If
Next i
If
Then Label1.Caption = "不是素数" Else Label1.Caption = "是素数"
程序段中有3处加框的地方需要完善代码,现有如下代码:
①Exit For
②a=True
③a = False
则程序段里从上往下方框里的代码分别是( )
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
下列选项中,①②③中的代码顺序正确的是( )
1)如果“-”号右边的字符按照ASCI码的顺序大于左边字符,输出时,用连续递增的字母或数字串替代其中的“-”号,例如:“c-g”输出为“cdefg”,“3-7”输出为“34567”。

2)如果“-”号右边的字符按照ASCII码的顺序小于或等于左边字符,输出时,保留中间的“-”号,例如:“a-a”输出为“a-a”,“4-1”输出为“4-1”。
3)如果“-”号右边的字符恰好是左边字符的后继,则删除中间的“-”号,例如“d-e”应输出为“de”,“3-4”应输出为“34”。
某同学按照上述算法,编写了VB程序,功能如下:在文本框Text 1中输入简写字符串,单击“展开”按钮Command 1,程序进行字符串展开处理并显示在文本框Text 2中。程序运行界面如图所示。
Private Sub Command1_Click()
Dim st1 As String, st2 As String, i As Integer
st1=Text1. Text
n=Len(st1)
st2=""
For i=1 To n
If pos(st1, i)Then<> "-" Then
st2=st2+pos(st1, i)
Else
If pos(st1, i-1)<pos(st1, i+1) Then
For j=Asc(pos(st1, i-1))+1 To Asc(pos(st1, i+1))-1
Next j
Else
st2=st2+"-"
End If
End If
Next i
Text2. Text=st2
End Sub
Function pos(s As String, x As Integer) As String '返回字符串s中x位置的字符
End Function
flag = False: txt = "Fighting"
For i = 1 To Len(txt)
ch = Mid(txt, i, 1)
If (ch>="a" And ch<="z" Or ch>="A" And ch<="Z") And Not flag Then
s = ch + s: flag = True
Else
flag = False
End If
Next i
Text1.Text = s
程序运行结束后,Text1中显示的内容是( )
PRIVATESUB FORM_CLICK( )
DIM X AS SINGLE
X=VAL(INPUTBOX(“请输入一个成绩”))
SELECT CASE
CASE
PRINT “优”
CASE
PRINT “良”
CASE
PRINT “一般”
CASE
PRINT “及格”
CASE
PRINT “不及格”
END SUB
分析已知条件,抽象建立数学模型,算法描述区间测速。根据要求,回答问题。
■采集的数据:测速路段长度,用s表示,单位为千米
抓拍同一车辆时间间隔,用t表示,单位为分钟
测速路段限速limit,单位为千米/时
■区间测试问题的初始表征:用表征车辆通过区间测速路段平均时速(选填:
/
),假如测速路段限速limit为每小时80公里,如果v≤limit,则判定为,否则判定为(选填:“符合限速要求”/“已超速”)。


n="p4y2t3h1o9n4";p=""
for i in n:
if "0"<=i<="9":
if p=="":
p+=i
elif i>=p[-1]:
p+=i
elif i<p[0]:
p=i
执行该程序段后,则p的值是( )
k=3 : sum=0 : j=0 : c=0
For i=1 To Len(s)
ch=Mid(s, i, 1)
If ch >= "0"And ch<= "9" Then
c=c * 10+Val(ch)
j=j+1
Else
If j=k Then sum=sum+c
j=0:c=0
End If
Next i
字符串s为“ab300cde2022fg002h”时,执行该程序段后,sum的值为( )
现在设计一个VB程序,计算三个年级每一个批次进入食堂排队打菜完需要的相对等待时间平均值(输出到标签Label1,单位:分钟),以及抽样调查:在文本框Text3中输入某年级第n位进入食堂的同学,排队打到饭菜需要的时间(单位分钟,取整)并输出到标签Label2中。程序运行界面如第16题图所示。
Const n= 1500:Const nj = "
Dim d(1 To 3 * 5) As Integer, cw(1 To 100) As Integer, w(1 To n) As Integer
Private Sub Command1_Click()
Dim i As Integer, j As Integer, t(1 To 3) As Integer
Dim k As Integer, sum As Long, aver As Integer
t(1) = TtoM(Text1.Text):k = Val(Text2.Text)
For i = 1 To 3
If i > 1 Then t(i) = '三个年级的午餐时间
For j = 1 To 5
d((i -1) * 5 + j) = t(i) + j -1 '记录三个年级每个批次进入食堂的时间点
Next j
Next i
List1.Clear
For i = 1 To 15
'输出三个年级每个批次进入食堂的时间点,代码略
Next i
For j = 1 To n
If j Mod 15 = 1 Then
i = (j -1) \15 + 1
cw(i) = (i -1) * 10 '每个打菜窗口的等待时间(单位:秒)
End If
w(j) = cw(i) -() * 60 '每位同学打菜等待时间
sum = sum + w(j)
Next j
aver = sum \n \60
Label1.Caption = "平均排队打菜时间:" + Str(aver) + "分钟"
End Sub
Private Sub Command2_Click()
Dim i As Integer, j As Integer, k As Integer, s As String
s = Text3.Text
i = 1
Do While i <= 3
If Then j = (i -1) * 500 + Val(Mid(s, 4)): Exit Do
i = i + 1
Loop
Label2.Caption = s+"进入食堂的同学大约" +Str(w(j)\60)+ "分钟左右打到饭菜。"
End Sub
Function TtoM(t As String) As Integer
'将时间转换为绝对数值,例如t="12:01"→TtoM=721,代码略
End Function
Function MtoT(m As Integer) As String
'将时间绝对数值转换为时间格式,代码略
End Function