- 基础理论
- 数据及数据库技术
- 人工智能
- 算法理论
- 过程和自定义函数
- 枚举算法及程序实现
- + 解析算法及程序实现
- 递归算法及程序实现
- 排序算法及程序实现
- 查找算法及程序实现
- 多媒体理论
- 基础软件操作
- 算法软件操作
- 多媒体软件操作
- 网络技术应用
小王设计制作了一个VB程序用于获取英文单词,然后背诵这些英文单词。为了使背诵英文单词更有效率,小王决定要显示的英文单词要由相同的英文字幕组成。
程序执行过程如下:程序运行后,先从数据库中获取单词,然后单击“分析单词”按钮,查找出由相回字母组成的英多单词保留下来显示,例如:获取的英文单词有:tea,pea,eta,eat,help,three,there。通过分析得知tea,eta和eat是由相同字母组成的英文单词,three和there是由相同字母组成的英文单词,则这五个英文单词保留下来,显示在label1中。如图所示:

VB部分程序如下,请将程序补充完整:
Dim wordcharsort (1 To 3000)As String'存储每个英文单词字母排序后的内容
Dim words (1 To 3000) As string'存储由相同字母组成的英文单词
Dim wordscount As Integer
Dim Getwords (1 To 3000) As String
Private Sub Form_Load()
'从数据库中获取3000个英文单词存储到数组 Getwords中,代码略
End Sub
Private Sub Command1_ Click()
For j=i+1 To 3000
If wordcharsort(j)<wordcharsort(k) Then k=j
Next j
If i<>k Then
t1= wordcharsort(i):wordcharsort(i)= wordcharsort(k):wordcharsort(k)=tl
___________
End if
Next i
For key=1 To 3000
wordscount= search( wordcharsort(key),key, wordscount)
Next key
For i=1 To wordscount
Label1. Caption= Labell. Caption+" "+words(i)
Next i
End sub
'查找相同字母组成的英文单词,存储在 words数组中
Function search(a As String, b As Integer, c As Integer)As Integer
For j=1 To c
If words(j)=Getwords(b) Then flag=True
Next j
If flag=False Then
Words(c)=Getwords(b)
__________
End if
End If
Next i
search=c
End function
'对英文单词中的字母进行排序
Function rank(s As String)As String
tmp=c(kk):c(kk)=c(kk-1):c(kk-1)=tmp
End if
Next kk
Next k
For j=1 To Len(s)
rank -rank & c(i)
Next j
End function
程序执行过程如下:程序运行后,先从数据库中获取单词,然后单击“分析单词”按钮,查找出由相回字母组成的英多单词保留下来显示,例如:获取的英文单词有:tea,pea,eta,eat,help,three,there。通过分析得知tea,eta和eat是由相同字母组成的英文单词,three和there是由相同字母组成的英文单词,则这五个英文单词保留下来,显示在label1中。如图所示:

VB部分程序如下,请将程序补充完整:
Dim wordcharsort (1 To 3000)As String'存储每个英文单词字母排序后的内容
Dim words (1 To 3000) As string'存储由相同字母组成的英文单词
Dim wordscount As Integer
Dim Getwords (1 To 3000) As String
Private Sub Form_Load()
'从数据库中获取3000个英文单词存储到数组 Getwords中,代码略
End Sub
Private Sub Command1_ Click()
Dim key As Integer
For i=1 To 3000
Wordcharsort(i)=rank(Getwords(i))Next i
For i=1 To 3000-1
k=iFor j=i+1 To 3000
If wordcharsort(j)<wordcharsort(k) Then k=j
Next j
If i<>k Then
t1= wordcharsort(i):wordcharsort(i)= wordcharsort(k):wordcharsort(k)=tl
___________
End if
Next i
For key=1 To 3000
wordscount= search( wordcharsort(key),key, wordscount)
Next key
For i=1 To wordscount
Label1. Caption= Labell. Caption+" "+words(i)
Next i
End sub
'查找相同字母组成的英文单词,存储在 words数组中
Function search(a As String, b As Integer, c As Integer)As Integer
For i=1 To 3000
flag=False
If a=wordcharsort(i) And______ ThenFor j=1 To c
If words(j)=Getwords(b) Then flag=True
Next j
If flag=False Then
Words(c)=Getwords(b)
__________
End if
End If
Next i
search=c
End function
'对英文单词中的字母进行排序
Function rank(s As String)As String
Dim c(l To 45) As String
wordscount=1
For xk=1 To 45
c(xk)=" "Next xk
For j=1 To Len(s)
c(j)= _______Next j
For k=1 To Len (s)-1For kk=Len(s) To k+1 Step-1
If Asc(c(kk))<Asc(c(kk-1))Thentmp=c(kk):c(kk)=c(kk-1):c(kk-1)=tmp
End if
Next kk
Next k
For j=1 To Len(s)
rank -rank & c(i)
Next j
End function
对一段字符(仅包含大小写字母和数字)加密,加密规则为:①字母和数字都往后循环顺移3位,如“a”变为“d”,“y”变为“b”;“0”变为“3”,“7”变为“0”②加密后字母在前,数字在后③字母按逆序排列,数字按顺序排列,如输入明文“ab7Z8x3”,这密文为“aCed4016”。
小王利用VB程序实现这一加密功能,程序界面和代码如下所示:
(1)根据程序代码分析,“加密”按钮的名称是_____________________________。
(2)根据加密规则,明文“9G78fbY5”,则密文为__________________________。
(3)请在画线处填入合适的代码:

Private Sub Com_ jm_ Click()
Dim x As String, ch As String, cl As String
Dim sl 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
小王利用VB程序实现这一加密功能,程序界面和代码如下所示:
(1)根据程序代码分析,“加密”按钮的名称是_____________________________。
(2)根据加密规则,明文“9G78fbY5”,则密文为__________________________。
(3)请在画线处填入合适的代码:

Private Sub Com_ jm_ Click()
Dim x As String, ch As String, cl As String
Dim sl 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
有如下ⅤB程序段:
For i=1 To 10
num=0
Fori=0 To 9
数组b各元素初始值为0,数组元素a(1)到a(10)的值依次为“68,17,24,30,36,40,55,58,61,66”,执行该程序段,num的值为( )
For i=1 To 10
b(a(i) Mod 10)= b(a(i) Mod 10)+1
b(a(i)\10)=b(a(i)\10)+1
Next inum=0
Fori=0 To 9
If b(i>num Then num b(i)
Next i数组b各元素初始值为0,数组元素a(1)到a(10)的值依次为“68,17,24,30,36,40,55,58,61,66”,执行该程序段,num的值为( )
A.2 | B.3 | C.4 | D.5 |
(加试题)某种字符加密方法描述如:
①将待加密的字符分成若干个字符串组,每组n个字符,剩余字符(个数小于n)自成一组。
②将每组字符按以下方法重新组合,得到新的字符串。
例如:明文="ABCDEFGHIJK",n=4的字符加密过程如下:

(1)已知n=3,则待加密数据"ABCDEFG"加密后的密文为_________________。
(2)小张根据上述加密算法,设计了一个对应的加密程序,其VB代码如下,请在划线处填入合适的代码。
下面进行重新组合:重组后数据保存到s1中


下面进行字符变换:字符变换后数据保存到ans中

划线处应填入的代码分别为:(1)______________ (2)______________ (3)______________
①将待加密的字符分成若干个字符串组,每组n个字符,剩余字符(个数小于n)自成一组。
②将每组字符按以下方法重新组合,得到新的字符串。
重新组合规则:取每组第个字符依次连接生成第i个新的字符串,共n组。
③将底组后的n组字符串依次进行字符交换,得到加密字符(加密前后字符均为大写)。字符变换规则:按字母顺序后移i个位置后输出。
④依次合并变换后的字符串,即为密文。例如:明文="ABCDEFGHIJK",n=4的字符加密过程如下:

(1)已知n=3,则待加密数据"ABCDEFG"加密后的密文为_________________。
(2)小张根据上述加密算法,设计了一个对应的加密程序,其VB代码如下,请在划线处填入合适的代码。
下面进行重新组合:重组后数据保存到s1中


下面进行字符变换:字符变换后数据保存到ans中

划线处应填入的代码分别为:(1)______________ (2)______________ (3)______________
全国两会中有代表又提到了个人税金问题。代表提议将个税作以如下的调整:月收入在2万及以上的收10%,月收入在1万(含)至2万的收5%,月收入在5千(含)至1万的收2%,月收入少于5千的免收。
小明用VB设计了计算个税的程序,程序运行时界面如图1所示,在文本框Text1中输入月收入后,点击“开始计算”按钮后,在文本框Text2中显示该产品应征收的税金。

(1)为应用程序界面添加“开始计算”按钮,应使用图2中的____________(填写相应编号),并将图3所示中的“属性窗口”中,将________属性设置成“开始计算”。

(2)根据题意,将下列程序空格处补充完整。
Private Sub Command1_Click()
Dim x As Single, p As Single
x = Val(Text1.Text)
If x >= 20000 Then
p = 0.1 * x
Else If x >= 10000 Then
p = 0.05 * x
Else If x >= 5000 Then
p = 0.02 * x
Else
P = 0
End If
___________= Str(p)
End Sub
小明用VB设计了计算个税的程序,程序运行时界面如图1所示,在文本框Text1中输入月收入后,点击“开始计算”按钮后,在文本框Text2中显示该产品应征收的税金。

(1)为应用程序界面添加“开始计算”按钮,应使用图2中的____________(填写相应编号),并将图3所示中的“属性窗口”中,将________属性设置成“开始计算”。

(2)根据题意,将下列程序空格处补充完整。
Private Sub Command1_Click()
Dim x As Single, p As Single
x = Val(Text1.Text)
If x >= 20000 Then
p = 0.1 * x
Else If x >= 10000 Then
p = 0.05 * x
Else If x >= 5000 Then
p = 0.02 * x
Else
P = 0
End If
___________= Str(p)
End Sub
某商场元月举行VIP客户积分换购活动,VIP客户根据卡内积分多少可换取不同额度的代金券。假设VIP客户共有n名,VIP卡内积分存放在数据库“customer.accdb”的Integral表中,换购活动的VB程序代码如下,程序运行时界面如图所示。工作人员在文本框Text1中输入VIP卡号后,单击“换购”按钮Command1,在文本框Text2中输出VIP客户的积分数,在标签Label3中显示可以换购的代金券额度,积分清零。按此要求编写程序如下, 但加框处代码有错,请改正。

Dim ID( ) As String '用于存放客户卡号
Dim total( ) As Long '用于存放积分数
Dim sc As Long 'VIP客户人数
Dim jf As Long '积分数
Private Sub Command1_Click( )
Dim k As String '客户卡号
Dim q As Long '代金券额度
Dim i As Long
k = Text1.Text
For i =" 1" To sc ’顺序查找
If ID(i) =" k" Then
jf = total(i)
cash(jf) = q ’①
Exit For
End If
Text2.Text = Str(jf)
Label3.Caption = “您可换购的代金券总额为:”+ Str(q) + “元”
Next i
End If
End Sub
' cash函数用于计算VIP客户可换购的代金券额度
Function cash(jf As Long) As Long
If jf >=" 2000" And jf <=" 20000" Then
Cash = jf\2000*10
ElseIf jf > 20000 And jf <=" 50000" Then
Cash = jf\2000*11
ElseIf jf > 50000 And jf <=" 100000" Then
Cash = jf\2000*12
ElseIf jf > 100000 And jf <=" 150000" Then
Cash = jf\2000*13
Else jf > 150000 Then ’ ②
Cash = jf\2000*14
End If
End Function
Private Sub Form_Load()
Dim conn As New ADODB.Connection, rs As New ADODB.Recordset
Dim intSQL As Long
conn.ConnectionString = "Provider="Microsoft.ACE.OLEDB.12.0;Data" Source=" + App.Path + "\ customer.accdb"
conn.Open
intSQL = "SELECT score FROM Integral"
Set rs.ActiveConnection = conn
rs.CursorType = adOpenStatic
rs.Open intSQL
sc = 0
Do While Not rs.EOF
sc =" sc" + 1
total(sc) = rs.Fields("score")
rs.MoveNext
Loop
rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
End Sub
(1)加框处①有错,应改为_____________________。
(2)加框处②有错,应改为_____________________。

Dim ID( ) As String '用于存放客户卡号
Dim total( ) As Long '用于存放积分数
Dim sc As Long 'VIP客户人数
Dim jf As Long '积分数
Private Sub Command1_Click( )
Dim k As String '客户卡号
Dim q As Long '代金券额度
Dim i As Long
k = Text1.Text
For i =" 1" To sc ’顺序查找
If ID(i) =" k" Then
jf = total(i)
cash(jf) = q ’①
Exit For
End If
Text2.Text = Str(jf)
Label3.Caption = “您可换购的代金券总额为:”+ Str(q) + “元”
Next i
End If
End Sub
' cash函数用于计算VIP客户可换购的代金券额度
Function cash(jf As Long) As Long
If jf >=" 2000" And jf <=" 20000" Then
Cash = jf\2000*10
ElseIf jf > 20000 And jf <=" 50000" Then
Cash = jf\2000*11
ElseIf jf > 50000 And jf <=" 100000" Then
Cash = jf\2000*12
ElseIf jf > 100000 And jf <=" 150000" Then
Cash = jf\2000*13
Else jf > 150000 Then ’ ②
Cash = jf\2000*14
End If
End Function
Private Sub Form_Load()
Dim conn As New ADODB.Connection, rs As New ADODB.Recordset
Dim intSQL As Long
conn.ConnectionString = "Provider="Microsoft.ACE.OLEDB.12.0;Data" Source=" + App.Path + "\ customer.accdb"
conn.Open
intSQL = "SELECT score FROM Integral"
Set rs.ActiveConnection = conn
rs.CursorType = adOpenStatic
rs.Open intSQL
sc = 0
Do While Not rs.EOF
sc =" sc" + 1
total(sc) = rs.Fields("score")
rs.MoveNext
Loop
rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
End Sub
(1)加框处①有错,应改为_____________________。
(2)加框处②有错,应改为_____________________。
下面是用于实现S=1*2+3*4+5*6+7*8+9*10的算法的流程图,则划线处分别应填写:( )


A.S<=10 I←I+1 |
B.I<=10 I←I+1 |
C.S<10 I←I+2 |
D.I<10 I←I+2 |
已知Asc(“A”)的值为65,下列Visual Basic表达式的值等于数值131的是( )
A.ASC(“A+B”) |
B.CHR(65)+CHR(66) |
C."13"+"1" |
D.Abs(69-200) |