Private Sub Command1_Click()
Dim y As Long
Text1.Text = ""
y = f(3)
Label1.Caption = Str(y)
End Sub
Function f(n As Integer) As Long
Text1.Text = Text1.Text + Str(n)
If n <= 1 Then
f = 1
Else
f = f(n - 1) + 2
End If
End Function
Private Sub Command1_Click( )
Dim c1 As String, c2 As String, s1 As String, s2 As String
s1 = Text1.Text: s2 = Text2.Text
i = 1: j = 1
Do While i <= Len(s1) And j <= Len(s2)
c1 = Mid(s1, i, 1): c2 = Mid(s2, j, 1)
If Then
i = i + 1: j = j + 1
Else
Exit Do 'Exit Do表示退出循环
End If
Loop
If i > Len(s1) And j > Len(s2) Then T3.Text = "相同" Else T3.Text = "不相同"
End Sub
Function toLowerCase(x As String) As String '该函数把大写字母转成小写
If x >= "A" And x <= "Z" Then
toLowerCase = Chr(Asc(x) + 32)
Else
End If
End Function
划线处的代码从以下代码中选择,每条划线一句代码:
①toLowerCase = Chr(Asc(x) - 32) ②toLowerCase = x
③toLowerCase(c1) = toLowerCase(c2) ④c1 = c2
选择代码组合正确的是
Private Sub Command1_Click()
Dim n As Integer, d As String, b As String
For i = 1 To 999
n=i
d=CStr(n) 'CStr函数的功能是数值转换为字符串
①
If ishws(d)Aind ishws(b)Then
List1.AddItem Str(i)+" "+b
End If
Next i
End Sub
Function dtob(k As Integer)As String '进制转换
Do While k >0
dtob =CStr(k Mod 2)+ dtob
k=k\2
Loop
End Function
Function ishws(x As String)As Boolean
ishws = True
For j=1 To Len(x) \2
If ② Then
ishws = False
Exit For
End If
Next j
End Function
①②
def chanageInt(number2):
number2 = number2+1
print("changeInt: number2= ",number2)
#调用
number1 = 2
chanageInt(number1)
print("number:",number1)
打印结果哪项是正确的( )
编写“商品销售统计”程序功能如下:窗体加载时从数据库中读取商品的相关数据,对各商品类别总销量及名次进行统计,结果在列表框List1中显示;单击“查询”按钮Command1,按商品类别编号从小到大排列,同一类别商品按销量从大到小排序,在列表框List2中显示。程序运行界面如图c所示。
Dim a(1 To 2000) As Integer, b(1 To 2000) As Integer, s(1 To 2000) As Integer
Dim gid(1 To 100) As Integer, t(1 To 2000) As Integer
Dim c(1 To 2000) As String, gtype(1 To 100) As String
Dim ts(1 To 100) As Integer '数组 ts 存储每个类别商品总销量
Dim k(1 To 2000) As Integer '数组 k 存储每个类别商品总数
Dim m As Integer, n As Integer
Private Sub Form_Load()
'从数据库读取 m 条记录中类别编号、商品类别数据分别存储在数组 gid、gtype 中
'从数据库读取n 条记录中类别编号、商品名称、商品销量数据分别存储在数组 b、c、s中,代码略
For i = 1 To n '统计各类别商品总销量及商品总数
k(b(i)) = k(b(i)) + 1
Next i
For i = 1 To m '计算各类别商品总销量的名次
p = 0
For j = 1 To m
If ts(i) < ts(j) Then p = p + 1
mc(i) = p + 1
Next j
Next i
List1.AddItem "类别 销量 名次"
For i = 1 To m
List1.AddItem gtype(i) + " " + Str(ts(i)) + " " + Str(mc(i))
Next i
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer, pos As Integer, tmp As Integer, p As Integer
p = 1
For i = 1 To m
a(i) = p
p = p + k(i)
Next i
For i = 1 To n
p = b(i)
t(a(p)) = i
a(p) = a(p) + 1
Next i
pos = 1
For i = 1 To m '对各类别商品按商品销量进行排序
For j = pos To pos + k(i) - 2
tmp =t(j): t(j) = t(p): t(p) = tmp
Next j
pos = pos + k(i)
Next i
List2.AddItem "类别 商品 商品销量"
For i = 1 To n
List2.AddItem + " " + geshi(c(t(i))) + " " +Str(s(t(i)))
Next i
End Sub
Function f(head As Integer, tail As Integer) As Integer
Dim i As Integer, p As Integer
p = head - 1
For i = head To tail
If s(t(i)) > s(t(p)) Then p = i
Next i
f = p
End Function
Function geshi(s As String) As String '格式输出,代码略
End Function
实现上述功能的VB程序如下,但加框处代码有错误,请改正。
Const n=10
Dim d(1 To n)As Integer
Private Sub Form Load()
′随机产生n整数并存储在数组d中,并把数组d按升序排序
′在列表框中显示排序后的数据,代码略
End Sub
Private Sub Command1_Click()
Dim key As Integer, p As Integer
key =Val(Text1.Text)
‘①
If p<>0 Then
Label2. Caption="该数据在第"+Str(p)+"个位置"
Else
Label2. Caption="没有找到! "
End If
End Sub
Function search(key As Integer) As Integer
i=1: j=n
Do While i<= j
m=(i+j)\2
If d(m)=key Then
search =m
Exit Function
ElseIf key<d(m)Then
j=m-1
Else
i=m+1
End If
Loop
‘②
End Function
·第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
以上程序段运行时,为了实现上述功能,画线处应填入的代码为:①;②;③。
编写一个VB程序,实现上述功能。程序运行时,在列表框List1中显示n名学生的姓名、性别和成绩,在文本框Text1中输入性别,Text2中输入k,单击“筛选”按钮Command1,在列表框List2中显示筛选出的学生姓名、性别和成绩。程序运行界面如图所示。
Dim n As Integer
Dim xm(1 To n) As String
Dim xb(0 To n) As String
Dim cj(0 To n) As Integer
Private Sub Form_Load()
'读取学生姓名、性别和成绩分别存 xm、xb 和 cj 数组,并在列表框 List1 中显示。
'学生人数存变量 n,代码略。
End Sub
Private Sub Command1_Click()
Dim s As String, k As Single, m As Single, mm As Integer
Dim c As Integer, p As Integer, i As Integer, j As Integer
Dim t1 As String, t2 As Integer
s = Text1.Text
k = Val(Text2.Text)
c = 0
For i = 1 To n
If xb(i) = s Then
Next i
m = c * k / 100
If m < 1 Then
mm = 1
Else
mm =
End If
i = 1
Do While i <= n
p = i
For j = i + 1 To n
If xb(j) = s Then
If Then p = j
End If
Next j
If i <> p Then
t1 = xb(i): xb(i) = xb(p): xb(p) = t1
t2 = cj(i): cj(i) = cj(p): cj(p) = t2
End If
If i > mm And (xb(i) <> xb(i - 1) Or cj(i) <> cj(i - 1)) Then Exit Do
i = i + 1
Loop
For i = 1 To mm
List2.AddItem xm(i) + " " + xb(i) + " " + Str(cj(i))
Next i
End Sub
⑴初始时,建立一个空字典,把26 个小写字母加入字典中。26 个小写英文字母编码为 1-26,字母“a”的编码为 1,字母“b”的编码为2,其它字母的编码依次增加。
⑵从字符串第一个位置开始扫描,若遇到空格(空格用“*”表示),则得到一个单词,截取该单词并存入变量中。
⑶若该单词在字典中,则取出该单词在字典中的编码值;否则,依次取出该单词中各字母在字典中的编码值,(编码值之间用一个空格分隔),同时产生该单词的编码(编码为字典中的最大编码值加1),加入字典中。
⑷继续扫描字符串,截取单词,并按照步骤⑶的方法进行处理,直至整个字符串编码完毕。字符串“ab ab”LZW编码过程如图所示。
Dim pos As Integer, a(1 To 100)As String
Private Sub Form_Load()
'将字母“a”至“z”依次存入数组元素a(1)到a(26)
End Sub
Function judge(ss As String) As Integer '判断字典中是否有ss这个单词
Dim i As Integer judge = 0
For i = 27 To pos
If a(i) =Then judge = i
Exit For
End If
Next i
End Function
Private Sub Command1_Click()
Dim s As String, i As Integer, j As Integer, k As Integer, ch As String, word As String, result As String, Dim id As Integer, idletter As Integer
s = Text1.Text pos = 26: i = 1
Do While i <= Len(s)
j = i
Do While Mid(s, j, 1) <> " "
j = j + 1
If j > Len(s) Then Exit Do
Loop
word = Mid(s, i, j - i)
If Len(word) = 1 Then '单个字母的单词
result = result + Str(Asc(word) -Asc("a") + 1)
Else
id = judge(word)
If id = 0 Then '新的单词
For k = 1 To Len(word) '依次处理该单词中的各个字母编码
ch = Mid(word, k, 1)
Next k
pos = pos + 1 '对该单词编码
a(pos) = word
Else '词典中存在该单词
result = result + Str(id) End If
End If
If j < Len(s) Then result = result + " *"
Loop
Text2.Text = result
End Sub
选手成绩的计算规则是:计算评分最高前k个的平均分avg1,剩余评分的平均分avg2,找到avg1与avg2差值最小,则avg1与avg2的平均数为该选手得分。例如,某选手的评委评分为6,5,3,1,则各位次评分为:
k |
1 |
2 |
3 |
avg1 |
6 |
5.5 |
4.67 |
avg2 |
3 |
2 |
1 |
avg1-avg2 |
3 |
3.5 |
3.67 |
由表格可知,差值最小为3,因此该选手的评分为(6+3)/2=4.5。按上述要求,编写VB程序,功能如下:在列表框List1中显示各选手的评委评分,单击“计算”按钮Command1,在列表框List2中依次按照得分从高到低显示每位选手成绩。程序运行界面如图所示。请回答下列问题:
Const n=8
Const m=12
Dim a(n*m)As Double,b(m)As Integer
Dim f(n)As Double,num(n)As Integer,sum As Double
Private Sub Form_Load()
'读取n个人每个评委的评分,按照选手编号从小到大依次存入数组a,并显示在List1中
'a(1)到a(m)存储第1个选手得到的m个评委的评分
'a(m+1)到a(2*m)存储第2个选手得到的m个评委的评分
'以此类推,代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer,j As Integer,x As Integer,k As Integer
Dim s As Double,avg1AsDouble,avg2AsDouble
Dim ans_v As Double,ans_c As Double
For i=1 To n
sum=0
For j=1 To m
sum=sum+a((i-1)*m+j)
b(j)=0
Next j
s=0
ans_v=-1:ans_c=0
For j=1 To m-1
x=find(i) '找到第i组中m个数中第j大数位置x
avg1=s/j
avg2=(sum-s)/(m-j)
If ans_v=-1 Or avg1-avg2<ans_c Then
ans_v=(avg1+avg2)/2
ans_c=avg1-avg2
End If
Next j
Do While k>=1 And ans_v>f(k)
f(k+1)=f(k)
num(k+1)=num(k)
k=k-1
Loop
f(k+1)=ans_v
num(k+1)=i
Next i
'将结果显示在List2中,代码略
End Sub
Function find(t As Integer)As Integer
Dim i As Integer
find=0
For i=(t-1)*m+1 To t*m
IfThen
If find=0 Or a(find)<a(i)Then find=i
End If
Next i
b(find-(t-1)*m)=1
End Function
n=8
m=float(n)
print(m)
要求s包括大写字母、小写字母、数字以及其它字符。请找出下面代码的两处错误( )
def check(s):
c=0
flag=[0]*4
for i in s:
if "0"<=i<="9": #①
flag[0]=1
elif 65<= ord(i)<=90:
flag[1]=1
elif 97<= ord(i)<=122:
flag[2]=1
else:
flag[3]=1
for j in range(4):
c=c+flag # ②
if c=4: #③
return True
return False #④
一个选项是否被填涂,可以从判断一个像素的颜色开始,像素的填涂情况是通过RGB的值来判断,灰度值低于132的表示该点被填涂;一个信息点64%的像素被填涂,则认为该区域已填涂,返回值为“1”。区域未填涂时返回值为“0”;各选项的编码为:A→“1000”,B→“0100”,C→“0010”,D→“0001”;输入标准答案,程序进行对比并返回结果。答题卡相关信息如下:
from PIL import Image
#输入起始点坐标(xs,ys),信息点宽度高度(fw, fh),间隔宽度高度(sw ,sh),代码略
num = 5 # 判分个数
def bw_judge(R, G, B): # bw_judge用于判断一个像素的填涂情况 代码略
def fill_judge(x, y): # fill_judge用于判断信息点的填涂情况
count = 0
for i in range(x, x + fw + 1):
for j in range(y, y + fh + 1):
R, G, B = pixels[i, j]
if bw_judge(R, G, B) = = True:
count = count + 1
if count >= :
return True
total_width = fw+ sw
total_height = fh + sh
image = Image.open("t2.bmp")
pixels = image.load()
number = ""
bz=[""]*num
df=0
bzd=input('请输入标准答案:')
da={"A":"1000","B":"0100","C":"0010","D":"0001"}
for i in range(len(bzd)):
bz[i]=
for row in range(num): #分数判定
for col in range(4):
y = ys + total_height * row
if fill_judge(x, y) == True :
number = number + '1'
else:
number = number + '0'
if number = = bz[row]:
df+=2
number=""
print("得分为:",df)
from flask import Flask app = Flask( name )
@app.route('/')
def index( ):
return "<p>Hello World!</p>"
if __name__== ' main ':
app.run(host='127.0.0.1',port=80)
以下有关该程序段的说法不正确的是( )