m = Int(Rnd * 4 + 2)
For i = 1 To 6 - m
For j = 1 To 6 - i
If a(j) - a(j + 1) < 0 Then
t = a(j): a(j) = a(j + 1): a(j + 1) = t
End If
Next j
Next i
数组元素a(1)到 a(6)的值依次为“49,45,5,61,42,71”,执行该程序段后,a(1)~a(6)各元素值不可能的是( )
移红包规则:
①编号为1的堆上的红包,只能移到编号为2的堆上;
②编号为n的堆上的红包,只能移到编号为n-1的堆上;
③其它堆上的红包,可以移到相邻左边或右边的堆上。
现要求找出最少的移动次数使每堆的红包数-样多。如图所示,在文本框Text1中输入红包堆数n,在文本框Text2中依次输入每堆红包的红包个数(以“,”为分隔符和结束符),单击“移红包次数统计”按钮Command1后,在标签Labe13中显示最少的移动次数。

Const Sum = 40 ‘红包总个数
Private Sub Command1_Click()
Dim n As Integer ‘红包的堆数
Dim s As String, k As Integer
Dim avg As Integer '最终每堆的红包个数
Dim ml As Integer, m2 As Integer
Dim tmp As Integer, count As Integer, ans As Integer
n=
s = Text2. Text
avg=Sum/n
tmp=0:count=0:ans=0
For k=1 To Len(s)
c = Mid(s, k, 1)
If c <>”,”Then
tmp =
Else
count = count + 1
If count = 1 Then
m1 =tmp
Else
m2 = tmp
If m1 <> avg Then
m2=m2-(avg-m1)
ans=ans+1
End If
End If
tmp=0
End If
Next k
Labe13. Caption = Str (ans)
End Sub
For i = 1 To 6
x = Int(Rnd * 10) + 1
If i Mod 2 <> x Mod 2 Then
a(i) = x
Else
a(7 - i) = x
End If
Next i
数组a各元素的初始值为0,执行程序后a数组各元素的值不可能是( )

Private Sub Command1_Click()
Dim i As Integer, count As Integer, length As Integer
Dim ch As String, key As String, s As String
s= Text1.Text
length=
key= Mid(s,1,1)
i= 2 : count= 1
Do While i <= length
ch= Mid(s,i,1)
If ch = key Then
Else
Text2.Text = Text2.Text + Str(count) + key
count= 1
key= ch
End If
Loop

Text2.Text = Text2.Text + Str(count)+ key
End Sub
·第1段是从数组首个元素开始,元素值都属于第1区间的最长连续元素段。如果首个元素不属于第1区间,则第1段元素个数为0。
·第1段分割后的剩余元素,用同样的方法来依次分割第2段,第3段…,第m段。
·第m段分割后的剩余元素分割到第m+1段(剩余段)。
若第p(1≤p≤m-1)段末尾连续元素的值也同时属于第p+1区间,则这块连续元素称为第P段“重叠块”,该段其余部分称为第p段“非重叠块”。由于不存在第m+1区间,这里特别规定:第m段的全部元素都分制到第m段“非重叠块”,第m段“重叠块”的元素个数为0。一个数组分段示例如图所示。图中数组第1个元素10不属于第1区间[0,5],因此第1段的元素个数为0。10和20属于第2区间,而33不属于第2区间,因此第2段只包含10和20两个元素。第3段末尾连续三个元素的值也同时属于第4区间,因此,第3段“非重叠块”包含38,58,46,第3段“重叠块”包含5,62,69。
Const n=18,m=6
Dim a(1 To n)As Integer
Dim b(1 To 2*m)As Integer
b(1)、b(2)为第1区间的下限和上限,b(3)、b(4)为第2区间的下限和上限……
Dim c(1 To 2*m+1)As Integer
‘c(1)、c(2)分别存储第1段“非重叠块”和“重叠块”的元素个数;
‘c(3)、c(4)分别存储第2段“非重叠块”和“重叠块”的元素个数……
‘c(2*m-1)存储第m段“非重叠块”的元素个数,c(2m)存储第m段“重叠块”的元素个数(值为0); ‘c(2*m+1)存储剩余段的元素个数
Private Sub Command1_Click( )
Dim i As Integer,p As Integer,i As Integer,LL As Integer
‘读取n个数据并保存在数组a中,代码略
‘读取m个区间的下限和上限并保存在数组b中,代码略
For i=1 To 2*m+1
c(i)=0
Next i
i=1:p=1
L=0:LL=0
Do While ①
If IsIn(i, p)Then
If IsIn(i, p+1)Then
LL=LL+1
Else
②
LL=0
End If
i=i+1
Else
c(2*p-1)=L
c(2*p)=LL
L=0:LL=0
p=p+1
End If
Loop
If i<=n Then
c(2*p-1)=n-i+1
Else
c(2*p-1)=L
c(2*p)=LL
End If
‘输出统计结果,代码略
End Sub
‘函数IsIn用来判断a(i)值是否属于第p区间
Function IsIn(i As Integer, p As Integer)As Boolean
If p>m Then
IsIn=False
Else
If ③ Then IsIn=True Else IsIn =False
End If
End Function
以上程序段运行时,为了实现上述功能,画线处应填入的代码为:①;②;③。
①从左往右依次获取各字符的ASCII码值;
②对奇数位字符的ASCII码值做加法处理,对偶数位字符的ASCII码值做减法处理;
③将上述结果取绝对值后除以26求余数,余数为0~25,分别对应大写字母A~Z,则该大写字母即为验证字符。
小李编写字符串验证程序,功能如下:在文本框Text1中输入待检验字符串(最后一位为验证字符),点击按钮Command1,在标签Label1中显示输入字符串是否验证成功。程序运行界面如图所示。
Private Sub Command1_Click()
Dim s As String, t As String
Dim cha As Integer, ans As Integer
Dim a As Integer, b As Integer, i As Integer
s =
t = Mid(s, Len(s), 1)
ans = 0
For i = 1 To Len(s) - 1
cha = Asc(Mid(s, i, 1))
If Then
ans = ans - cha
Else
ans = ans + cha
End If
Next i
ans = Abs(ans) Mod 26
If
Then
Label1.Caption = "验证成功!"
Else
Label1.Caption = "验证失败!"
End If
End Sub
如:输入十进制数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
Private Sub Command1_Click()
Dim p As String, k As String, i As Integer
Dim result As String
result = ""
p = Text1.Text
k = Text2.Text
i = 1
Do While i <= Len(p) - Len(k) + 1
If Mid(p, i, Len(k)) <> k Then
i = i + 1
Else
End If
Loop
Text3.Text =
End Sub
Private Sub Command1_Click()
Dim msg As String c As String, tmp As String, s As String, flag As Boolean msg = Text1.Text msg = msg + "/" '标记字符串结束符
tmp = "" :s = "" : flag = True
For i = 1 To Len(msg)
c = Mid(msg, i, 1)
If Then
flag = False
tmp = tmp + c
ElseIf flag = False Then s = s + tmp + ","
tmp = ""
End If
Next i
Text2.Text = s
End Sub
Dim s As String, t As String, res As String Dim i As Integer, k As Integer
s = "jpqzaabdcfb"
i = 1: k = 1: res = "" t = Mid(s, 1, 1)
Do While i < Len(s)
If Mid(s, i + 1, 1) >= Mid(s, i, 1) Then
k = k + 1
Else
res = res + CStr(k) + t
k = 1
t = Mid(s, i + 1, 1)
End If
i = i + 1
Loop
Label1.Caption = res
执行该段程序段后,Label1中输出的值为 ( )
⑴起点与终点之间共有10 个站点(包括起点与终点),依次为站点1、站点2……、站点10。参赛选手均从起点(站点1)出发,最先恰好到达终点(站点10)的一组选手为胜;
⑵对“恰好到达终点”的界定。比赛前,参赛选手随机抽取一个行进方案,该方案由5个正整数(范围为1~6)组成,表示参赛选手整个行程分5 个阶段完成,并规定了每个阶段能行进的站点数。若某一阶段按所给站点数行进还未到达终点,则向前(终点方向)行进;若某一阶段按所给站点数行进超过终点,则要折回直至行进完所给站点数;前四个阶段不出现按所给站点数行进恰好到达终点的情况,直至行进满五个阶段,且第五阶段按所给站点数行进恰好到达终点,则称为“恰好到达终点”。如方案“3,1,6,4,3,”满足“恰好到达终点”,按该方案行进的过程如图a所示:
组织方为了验证设计方案,编写了如下VB 程序:在文本框Text1 中输入待检验的方案(输入1~6 范围内的整数并以逗号分隔,且以逗号结束。例如:“3,1,6,4,3,”),单击“验证”按钮Command1,判断方案是否能恰好到达终点。若能,在标签Label2中显示“可行方案!”;若不能,则显示“不可行方案!”。程序界面如图b所示。
Const n = 10
Private Sub Command1_Click( )
Dim a(1 To n)As Integer '表示每一个起点距离终点的站点数
Dim b(1 To 5)As Integer
Dim start As Integer, cnt As Integer, endsAs Integer
Dim i As Integer, j As Integer, c As String, sAs String
Dim flag As Boolean
s = Text1.Text: j = 1
For i = 1 To n
a(i) = n - i
Next i
For i = 1 To Len(s)
c = Mid(s, i, 1)
If c = "," Then
Else
b(j) = Val(c)
End If
Next i
cnt = 1: flag = True
start = 1: ends = 0
i = 1
Do While flag = True And i <= 5
If b(i) = a(start) Then
flag = False
Else
ends = start + b(i)
start = adjust(ends)
cnt = cnt + 1
End If
i = i + 1
Loop
If Then
Label2.Caption = "可行方案!"
Else
Label2.Caption = "不可行方案!"
End If
End Sub
'adjust函数的作用是:根据参数ends的值来调整start的值
Function adjust(endsAs Integer) As Integer
Dim start As Integer
If ends < n Then start = ends Else start =
adjust = start
End Function
Private Sub Command1_Click()
Dim s As String, d As Integer, i As Integer
Dim max As Integer, c As String, ans As String
s = Text1.Text
d = 0 : max =0
For i = 1 To Len(s)
c = Mid(s, i, 1)
If c >= "A" And c <= "Z" Then
d = d + 1
Else
If d > max Then
ans= Mid(s, i - d, d)
End If
d = 0
End If
Next i
Text2.Text=
End Sub
1)查找相邻两个非降序数据段:在未处理的数据区域中,从前往后找出第一个最长非降序数据段。若该数据段后面没有元素,则本轮处理完毕:否则在第1个数据段的后面,从前往后找出数组中第二个最长非降序数据段。
2)合并两个数据段:借助数组tmp.将查找到的两个相邻数据段合并成一个非降序数据段,然后将合并后的数据依次存回到原数组中。
3)若数组中还有未处理的数据,则重复(1)(2)步骤。每一轮数据处理完毕后,重新从数组第1个数据开始进行下一轮处理。若检测到某一轮没有合并处理,则说明n个数据已构成非降序数据段,数据处理结束。

Const n = 10
Dim a(1 To n + 5) As Integer
Din tmp(1 To n + 5) As Integer
'读取n个整数保存到数组a中,并在文本概Text1中显示,代码略。
Private Sub Comnand1_ Click()
Do While True
If Not Merge() Then Exit Do
'在列表概List1中输出这一轮合并后的数据,代码略。
Loop
End Sub
Function Position(low As Integer) As Integer
Din i As Int eger
For i=low To n-1
If Then Exit For
Next i
Position = i
End Function
Function Merge() As Bool ean
Dim i As Integer, flag As Boolean, p1 As Integer, p2 As Integer
Dim low1 As Integer, high1 As Integer, high2 As Integer
flag = False: low1= 1
Do While low1 < n
high1 = Position(low1)
If high1 = n Then Exit Do Else flag = True
high2 = Position(high1 + 1)
p1=low1:p2=high1+1
i = low1
Do While
If p2>high2 Or p1 <= high1 And a(p1) < a(p2) Then
tmp(i)=a(p1):p1=p1+1
Else
tmp(i)=a(p2):p2=p2+1
End If
i =i+1
Loop
For i = low1 To high2
a(i) = tmp(i)
Next i
Loop
Merge = flag
End Function
score=int(input("请输入一个分数"))
if 100>=score>=90:
print("A")
if 90>score>=80:
print("B")
if 80>score>=60:
print("C")
if 60>score>=0:
print("D")
if score<0 or score >100:
print("输入错误!")
程序描述: 所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整数为5,计算过程分别为16、8、4、2、1。
程序要求输入一个正整数(不为1),将经过处理得到1的过程输出来。代码如下:
x=int(input('输入一个正整数:'))
while ①
if ②
x=x/2
③
else:
④
③
if x==1:
⑤
1)只推荐最佳观影区的座位,从前往后,优先选择最中间的位置,若找到最中间位置,则推荐,否则继续寻找下一排,以此类推;
2)购票数为1时,推荐单个靠中间的位置,大于1时,只推荐连续的座位;
3)若在最佳观影区内未找到可以推荐的座位时,系统将提示手工选择。编写VB程序,模拟电影院选座。在文本框Text1中输入购票数,单击“选座”按钮Command1,在标签Labe12中显示机选座位。程序运行界面如图所示。
ConstC=10:ConstR=12 '每排10座,共12排
Dim zw(1 To C * R) As Integer, kzw(1 To C * R) As Integer '座位,空座位
Private Sub Form_ Load ()
'读取影厅座位数据存入数组zw,并将座位信息显示在列表框list1中,代码略
End Sub
Private Sub Command1_Click ()
Dim i As Integer, j As Integer, k As Integer
Dim x As Integer, min As Integer, start As Integer
Dim m As Integer, n As Integer, ans As String
m = Val (Text1.Text) '购票数,确保数值在座位数以内
n=0 '空座位的个数
For i=5 To 10 '统计最佳观影区中的空座位编号
For j=3 To 8
If zw((i-1)*C+j)= 0 Then
n=n+1
kzw(n) =
End If
Next j
Next i
min = C: start=0: k=1
Do While k+m-1<= n
If kzw(k) + m-1= kzw(k +m- 1) Then
x=Abs(C\2-(kzw(k)+kzw(k+m-1))\2 Mod C)
If x < min Then
min=x
start = k '记录满足座位条件的起始空位号
If min=0 Then Exit Do 'Exit Do表示退出循环
End If
End If
Loop
ans =””
If start = 0 Then
ans = "未能推荐座位,请手工选座"
Else
For i = kzw(start) To
'CStr函数把表达式转换为字符串,不产生前置空格
ans = ans + "第"+ CStr(i \C+ 1) +"排"+ CStr(i ModC) +"座"
Next i
End If
Label2.Caption = ans
End Sub
Const n=640 '参加统测总学生数
Const nc =16 '班级数
Dim class(1 To n) As Integer, sname(1 To n)As String, score(1 To n) As Integer
Dim b( To nc) As Integer '存储每个班级的参加统测人数
Dim c(1 To nc) As Integer
Dim d(1 To n)As Integer
Private Sub Form_Load()
'本过程读取每个参加统测学生的班级序号、姓名和统测成绩分别存储在数组class,sname和 score中并在List1中显示,代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer
For i = 1 To nc
b(i) = 0
Next i
For i = 1 To n '统计每个班级统测人数
Next i
k = 1
For i = 1 To nc
c(i) = k
k = k + b(i)
Next i
For i = 1 To n
k = class (i)
c(k) = c(k) + 1
Next i
For i = 1 To nc '对各班级按统测成绩进行排序
Call px(),c(i)-1))
Next i
For i = 1 To n
List2.AddItem " " & class(d(i)) & " "& sname (d(i)) & " " & score(d(i))
Next i
End Sub
Private Sub px(head As Integer, tail As Integer)
Dim i As Integer, j As Integer, t As Integer
For i = head To tail - 1
For j = tail To i + 1 Step -1
If Then
t = d(j): d(j) = d(j - 1): d(j - 1) = t
End If
Next j
Next i
End Sub
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)
例如: 输入报名序号“2022150001”,输出“普通综合类”
while True:
ticket=
num=0
for i in ticket:
if i>="0" and i<="9":
num=num+1
If len(ticket)!=10:
print("输入长度不符合要求")
elif :
print("输入存在非数字字符")
else:
break
dic={"13":"普通艺术类","14":"普通体育类","15":"普通综合类","23":"单项艺术类","24":"单项体育类","25":"单项综合类"}
print("该考生的考试科类为:",s)
y=0
x=1
while x<=10:
if x%5==0:
break
else:
y+=x
x=x+1
print(y)