|
a(1) |
a(2) |
a(3) |
…… |
a(n-2) |
a(n-1) |
a(n) |
|
27 |
35 |
39 |
…… |
49 |
39 |
33 |
小华由此设计一个VB程序,功能如下:单击“排序”按钮Command1,随机生成10个两位奇数,将随机生成的数据序列显示在文本框Text1中,在文本框Text2中显示完成排序后的数据序列,运行结果如图所示。
Private Sub Command1_Click()
Dim a(1 To 10) As Integer
Randomize
Const n = 10
For i = 1 To n
a(i) = ①
Text1.Text = Text1.Text + Str(a(i))
Next i
For i = 1 To n \ 2
For j = n - i + 1 To i + 1 Step -1
If a(j) < a(j - 1) Then
t = a(j - 1)
②
a(j) = t
End If
Next j
For j = i + 1 To n - i
If
Then
t = a(j): a(j) = a(j + 1): a(j + 1) = t
End If
Next j
Next i
For i = 1 To n
Text2.Text = Text2.Text + Str(a(i))
Next i
End Sub
①从左往右依次获取各字符的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
解题思路:随机生成 10 条船的载重量[1,10]和费用[1,30],然后将它们按费用从小到大排序,若费用相同,则载重大的在前,运输时,先把费用低的船装满,再按费用向下将船装好,运输。
图 a
Dim f(1 To 10) As Integer, w(1 To 10) As Integer, b(1 To 10) As Integer
Private Sub Command2_Click()
Dim n As Integer, count As Integer, yf As Integer
Dim s As String, i as integer
n = Val(Text1.Text)
count = 0
yf = 0
cz = n
i = 1
Do While n > 0
If n >= w(b(i)) Then
Else
yf = yf + n * f(b(i))
End If
count=count+1
s = s + Str(b(i)) + "号船"
i=i+1
Loop
Label2.Caption = "总计费用为:" + Str(yf) + "元 " + Str(count) + " 条船,分
别为 " + s
End Sub
Private Sub form_load()
Dim t As Integer, i as integer, j as integer
List1.Clear
List1.AddItem "编号 载重 费用'"
For i = 1 To 10
w(i) = Int(Rnd * 10 + 1)
f(i) = Int(Rnd * 30 + 1)
b(i) = i
List1.AddItem Str(b(i)) + " " + Str(w(i)) + " " + Str(f(i))
Next i
For i = 1 To 9
For j = 10 To i + 1 Step -1
If Then
t = b(j): b(j) = b(j - 1): b(j - 1) = t
End If
Next j
Next i
End Sub
小王利用VB程序实现这一加密功能,程序界面和代码如下所示:
Private Sub Com_ jm_ Click()
Dim x As String, ch As String, cl As String
Dim s1 As String, s2 As String, s As String
Dim i As Integer, n As Integer, y As Integer
x= Text1. Text
n=Len(x)
For i=1 To n
ch= Mid(x, i, 1)
If ch >= "0" And ch <= "9" Then
①
s2=s2 & y
Elself ch >="a" And ch<="z" Then
y=(Asc(ch)-Asc("a")+3) Mod 26
②
s1=c1+s1
Else
y=(Asc(ch)- Asc("A")+3) Mod 26
c2=Chr(Asc("A")+y)
s1=c2+s1
End If
Next i
③
Text2 Text=s
End sub
① ② ③
Private Sub Command1_Click()
Dim i, k As Integer
Dim x1, y1, x2, y2 As Single
Dim v As Singie, maxd As Single
Dim s As String, pos zb As String
List1.Clear
s=Text1.Text
x1=1: y1=1
t="": k=1: j=1
List1.AddItem"坐标点" & "距离"
For i=1 To Len(s)
If Mid(s, i, 1)="," Then
v=Val(Mid(s,j,i-j))
j=
If k Mod 2=1 Then
x2=v
Else
y2=v
d=Sqr((x2-x1)^2+(y2-y1)^2)
If Then
maxd=d
pos="(" & Str(x2)& "," & Str(y2)& ")"
End If
List1.AddItem"(" & Str(x2)& "," & Str(y2)& ")" & Str(d)
End If
k=k+1
End If
Next i
Label1.Caption="距离(1, 1)最远的点为"& pos &"距离为"& Str(maxd)
End Sub
count = 0
For i = 1 To 20
a(i) = Int(Rnd ∗ 100) + 1
Next i
For i = 1 To 20
Next i
For i = 1 To 100
If b(i) <> 0 Then count = count + 1
Next i
Label1.Caption= "不重复数字个数" + Str(count)
为实现上述功能,则程序①处应填入的语句为( )
Dim a(1 To 9) As String, k As Integer
Dim s1 As String, s2 As String
s1= Text1.Text:s2 = Text2.Text
For i = 1 To Len(s1)
k = Val(Mid(s1, i,1))
a(k) = Mid(s2, i, 1)
Next i
For i=1 To 9
s=a(i)+s
Next i
Label1.Caption = s
在文本框Text1中输入“52463”,文本框Text2中输入“happy”, 执行该程序段后,标签Label1中显示的内容是( )
| a=5: b=10 m=(a+b)/2+Abs(a-b)/2 Print“m=”; m |
map =“ 01234567890123456789012345”
tel = Text1.Text
For i = 1 To Len(tel)
c = Mid(tel, i, 1)
If c >=“ 0” And c <=“ 9” Then
s = s + c
ElseIf c >“ A” And c <=“ Z” Then
s = s + Mid(map, Asc(c) - Asc(“A”) + 1, 1)
End If
Next i
在text1 文本框中输入“hi,NICETOSEEYOU-2016”,程序执行完后s 的结果是( )
import jieba
str="热烈庆祝建党100周年"
fc=jieba.lcut(str)
print(fc)
for i in fc[::1]:
print(i)
已知分词之后的文本输出fc为:['热烈庆祝', '建党', '100', '周年'],则程序运行结束后的结果是( )
建党
100
周年
C . 热烈庆祝建党100周年 D . 年周001党建祝庆烈热____
a,b=[0]*10,[False]*10
i=0
while i<=9:
____
if not b[r]:
a[i]=r
____
i=i+1
print(a)
则划线处的代码依次是( )
① r=random.randint(0,10)
② b[r]=True
③import random
④ b[i]=True
⑤from random import randint
⑥ r=random.randint(0,9)
a=int(2.9)
print(a)
s=[1,3,5,7,9]
s.insert(2,6)
print(s)
a=input()
b=input()
c=a+b
print(c)
请填空完善该程序,实现功能:按程序提示依次输入行和列的数字,则按行列打印由“*”组成的矩形。例如,按提示输入:
请输入行数:3
请输入列数:5
屏幕将打印以下图形:
a=int(input("请输入行数:"))
b= ①
for i in range( ② ):
for j ③
print( ④ , end=' ') #end=' '表示接上一个输出项后输出,不换行
print( )