- 基础理论
- 数据及数据库技术
- 人工智能
- 算法理论
- 过程和自定义函数
- + 枚举算法及程序实现
- 解析算法及程序实现
- 递归算法及程序实现
- 排序算法及程序实现
- 查找算法及程序实现
- 多媒体理论
- 基础软件操作
- 算法软件操作
- 多媒体软件操作
- 网络技术应用
例如,共有N=5个景点,每个景点连接的下一个景点分别是2,4,5,5,2。
景点号 | 1 | 2 | 3 | 4 | 5 |
下一景点号 | 2 | 4 | 5 | 5 | 2 |
则他可以从2号景点出发,最多可以游玩2号、4号、5号三个景点。

程序代码如下:
Private Sub Command1_Click()
Dim a(1 To 100) As Integer, d(1 To 100) As Integer
Dim jd As String, m As String, c As Integer, i As Integer
Dim s As Integer, p As Integer, k As Integer, ans As Integer
jd = Text1.Text + ","
s = 0: c = 0
For i = 1 To Len(jd)
m = Mid(jd, i, 1)If m <> "," Then
①
Else
c = c + 1: a(c) = s: s = 0
End If
Next i
ans = 0: k = 0
For i = 1 To c
For k = 1 To cd(k) = 0
Next k
If d(i) = 0 Then
p = i
Do While p <= c
If d(p) = 0 Then
k = k + 1: d(p) = k
Else
②
If y > ans Then ans = y
k = 0
Exit Do
End If

Loop
End If
Next i
Text2.Text = Str(ans)
End Sub(1)要使程序运行时,Form1的BackColor属性值为黑色,以下代码正确的是______(单选,填字母)。
End Sub |
(2)若有7个景点,且每个景点的连接情况为:6,3,7,2,7,5,4,那么小龙最多可以游玩的景点数是__________。
(3)请把划线处的代码补充完整:
①__________
②__________
(4)程序加框处代码有错,请改正:_________
以下VB程序用于解决这个问题,在文本框Text1输入n的值,点击“求解”按钮 command1后,在列表框List1中输出所有方案。运行界面如下图所示:
提示:若用0代表A,用1代表B,那么每一种方案都对应一个n位的二进制数。

(1)要使command1按钮上显示的文本改为“求解”,可在其属性窗口中将_____(填属性名)属性的属性值改为“求解”。
实现上述功能的程序如下:
Private Sub Command1_Click ()
Dim n As Integer, m As Integer, k As Integer
Dim flag As **
Dim i As Integer, j As Integer
Dim a(1 To 1000) As Integer
①
List1. Clear '清空文本框list1
s = ""
For i =0 To ②
'每一种方案对应一个n位的二进制数,枚举i对应的方案是否符合要求m =i
For j=1 To n
a(j)= m Mod 2
③
Next j
flag =True
For

If a(k-1)= a(k) And a(k)= 1 Then
flag = False
End IF
Next k
If flag Then
For k= 1 To n
If a (k) = 1 Then s = "B" + s Else s = "A" + s
Next k
List1. AddItem s
End If
s = ""
Next i
End Sub(2)阅读代码,变量flag的数据类型应定义为_____
(3)加框处代码有错,请改正:__________
(4)请在划线处填入合适的代码:
①__________
②__________
③__________
有一张单据,编号为四位数,号码为:8□□0.中间两位被污浊看不出来。已知该单据能被23和37整除,请用编程求出该单据号码。
(算法设计)
设百位数字为x,十位数字为y;x和y的范围都是0到9。
4位数:8xy0=8*1000+x*100+y*10
列举()()里的两个数字的所有可能情况:
00,01,02,03,04,05,06,07,08,09
10,11,12,13,14,15,16,17,18,19
……
90,91,92,93,94,95,96,97,98,99
逐一判断找出符合条件的数字。
(参考代码)
Dim x as long
Dim y as long
Dim n as long
For x=0 to 9
For y=0 to 9
n=8*1000+x*100+y*10
If then
Print n
End if
Next y
Next x
根据上述回答下列问题
(1)解决该问题采用的算法是:___________(填:解析法/穷举法/排序法/递归法)
(2)根据题意,程序中空白处应填写:______(填写字母:A/B/C/D)
A.n mod 23 =0 or n mod 37 =0 |
B.n\23=0 and n\37=0 |
C.n\23=0 or n\37=0 |
D.n mod 23 =0 and n mod 37 =0 |
A.查找法 | B.解析法 | C.排序法 | D.穷举法 |
注:福彩“双色球”玩法;在1-33个红色球影申随机生成6个号码,在1~16个蓝色球号码中随机生成个号码,共计6+1个号码开奖。
程序运行界面如图所示。

(1)实现上述功能的VB程序如下,请完善画线处的代码。
Dim red(l To 600) As Integer '用于存储100*6红色球信息
Dim blue(1 To 100) As Integer '用于存储100*1蓝色球信息
Private Sub Form_Load()
'本过程用于从数据库data. accdb中读取最近100期双色球开奖信息
'将100*6个红色球开奖信息依次存储在数组red()中
'将100*1个蓝色球开奖信息依次存储在数组blue()中
'将最近100期开奖信息格式化后显示在列表框List1中
'本过程代码略
End Sub
Private Sub Command1_Click()
Dim min As Integer
Dim s As string
Dim f(1 To 33)As Integer
'——以下开始处理蓝色球部分——
For b= 1 To 100
f(blue(b))= f(blue(b))+1
Next b
min= 100
For i= 1 To 16
If f(i)< min Then min f(i)
Next iFor i=1 To 16
If f(i)= min then s= ①_______
f(i)=0Next i
List2. Additem"蓝色球重点买人:"十s
'——以下开始处理红色球部分——
For r=1 To 600
②_________
Next r
③_________

(2)在某次红球部分处理时,若数组f中的,f(1)至f(33)的值依次为:
f(1)-f(11): | 6 | 8 | 20 | 25 | 16 | 21 | 14 | 20 | 24 | 28 | 26 |
f(12)-f(22): | 1 | 30 | 8 | 1 | 10 | 10 | 33 | 28 | 32 | 20 | 6 |
f(23)-f(33): | 4 | 34 | 29 | 18 | 25 | 30 | 4 | 13 | 30 | 20 | 6 |
结合加虚线框处代码的算法,输出的内容是:
红色球重点买入:________________________.(按输出顺序写出6个红球号码)。
Private Sub Command1_Click( )
Dim s As Integer
Dim I As Integer
S=0
For i="1" To 10
s=s+i\7
Next i
Text1.text=str(s)
End sub
该程序段运行后,文本框Text1中显示__________

请根据算法将下列程序补充完整。
Function prime(a As Integer) As Boolean
Dim j As Integer
prime = True
j = 2
Do While prime And j <=" a" \ 2
If a Mod j =" 0" Then
prime = False
Exit Do
End If
①
Loop
End Function
Private Sub Command1_Click( )
Dim i As Integer, a As Integer, b As Integer
Dim count As Integer
a = Val(Text1.Text)
b = Val(Text2.Text)
For i =" a" To b
If ② =" True" Then
List1.AddItem Str(i)
count =" count" + 1
End If
Next i
Label1.Caption = "素数共有" + Str(count) + "个!"
End Sub
原始数据 | 24 | 27 | 16 | 15 | 24 | 18 |
第一遍 | 27 | 24 | 16 | 15 | 24 | 18 |
第二遍 | | | | | | |
第三遍 | 27 | 24 | 24 | 15 | 16 | 18 |
第四遍 | 27 | 24 | 24 | 18 | 16 | 15 |
第五遍 | 27 | 24 | 24 | 18 | 16 | 15 |
A.冒泡排序,27 24 16 15 24 18 | B.冒泡排序,27 24 18 16 15 24 |
C.选择排序,27 24 16 15 24 18 | D.选择排序,27 24 18 16 15 24 |
A.枚举算法 | B.解析算法 | C.冒泡排序 | D.顺序查找 |
(1)使用循环列出1到99999中的每一个数zmsknz
(2)通过自定义函数ddknzms拆解得到每个数中的每位数上的数码及它们对应的n次幂之和
(3)将zmsknz与ddknzms进行比较,若相等则说明是自幂数,可将其加入列表。
编写VB程序,使用枚举法得到5位数以内的自幂数,程序设计界面如图所示:

请根据算法及相应注释将下面的程序补充完整:
Function ddknzms(zmsknz As Long) As Long '得到可能的自幂数
Dim zmsknz_str As String '字符串类型自幂数可能值
Dim zmsknz_length As Integer, zmswsxh As Integer '字符串类型自幂数可能值字符个数
zmsknz_str = Trim(Str(zmsknz))
zmsknz_length = Len(zmsknz_str)
For zmswsxh =" 1" To zmsknz_length
ddknzms =" ddknzms" + Val(Mid(zmsknz_str, zmswsxh, 1)) ^ ①
Next zmswsxh
End Function
Private Sub Command1_Click()
Const ZMSWS = 5
Dim zmsknz As Long, zmsknz_zz As Long
zmsknz_zz =" 10" ^ ZMSWS - 1
For zmsknz =" 1" To zmsknz_zz
If ② Then List1.AddItem (Str(zmsknz))
Next zmsknz
End Sub