亲戚寻找。小李总是因为认不清亲戚而苦恼,于是他设计了如下程序来模拟亲戚寻找的过程。已知:如果1和2是亲戚,1和3是亲戚,则2和3也是亲戚。代码思维如下:
(1)将每个人看成是一个钩码,能挂在另一个挂钩底下,自己底下也能挂其他挂钩。
(2)如果两个钩码在同一条钩码串上,则为亲戚(如2、3都能找到1)。
(3)如果两个是亲戚但不在一串钩码上,则可将其中一串的最上面的钩码挂在另一串的下方。
例如从图a加框处的前三行数据可得到图b所示的钩码串1和钩码串2,从第四行数据可知9、5也为亲戚,则可将两串钩码合并,合并后3为2的顶端,5为3的顶端,其余数据以此类推。
根据算法思想,编写VB程序功能如下:程序初始化时给出6条亲戚关系显示在List1中,单击“理关系”按钮,在List2中显示每个人所在钩码的顶端编号。在Text1和Text2中分别输入两人的编号,单击“询问”按钮,输出两个人是否为亲戚关系。程序运行界面如图a所示。

(1)根据图a数据,若输入两人的编号为4和5,则两人的关系是否为亲戚是是(填:是/否)。
(2)实现上述功能的VB程序如下,请在横线处填入合适的代码。
Const n=9'总人数
Const m=6'已知的亲戚关系数
Dim a(1 To n) As String,b(1 To n) As String
Dim f(1 To n) As String'记录不同的亲戚钩码串成员,每条亲戚钩码串内互为亲戚
Dim k As Integer'亲戚钩码串的数目
Private Sub Form_Load ( )
'初始化List1和List2,生成m条亲戚关系,每条亲戚关系的编号对应存储在数组a(i)和b(i)'中,在List1中输出a(i)和b(i),代码略
End Sub
Private Sub Command1_Click ( )
Dim i As Integer,x As Integer,y As Integer
f(1)=a(1)+b(1)'利用a(1)、b(1)生成第一条钩码串存储在f(1)中
k=1'k为钩码串编号
For i=2 To m
x=root(a(i),0):y=root(b(i),0)'x为调用函数获取a(i)所在的钩码串编号
If x=0 And y=0 Then k=k+1:①f(k)=a(i)+b(i)f(k)=a(i)+b(i)'根据x与y分类讨论
If x<>0 And y=0 Then f(x)=f(x)+b(i)
If x=0 And y<>0 Then f(y)=f(y)+a(i)
If x<>y And x<>0 And y<>0 Then'x、y在不同钩码串则将两条钩码串合并
f(x)=f(x)+f(y):f(y)=f(k):k=k-1
End If
Next i
For i=1 To n'输出每个人所在钩码的顶端编号
x=root(CStr(i),0):y=root(CStr(i),1)'Cstr( )( )函数用于去除字符前导空格
If x<>0 Then
If y=Len(f(x)) ThenList2.AddItem Str(i)+““+CStr(i)
If y<>Len(f(x)) Then List2.AddItem Str(i)+““+②Mid(f(x),y+1,1)Mid(f(x),y+1,1)
End If
Next i
End Sub
'按钮Command2的功能为判断输入的两个人是否为亲戚关系,代码略
Function root(a As String,b As Integer) As Integer'参数a表示待查找目标,参数b
'表示返回值类型,0表示返回目标所在钩码串编号,1表示返回目标在该钩码串中的位置
Dim m As Integer,n As Integer,i As Integer,j As Integer
m=0:n=0:i=k:j=0
Do While i>0
If a=Mid(f(i),Len(f(i))-j,1)Thenm=i:n=Len(f(i))-j:Exit Do
j=j+1
If j=Len(f(i)) Then i=i-1:j=0
Loop
If ③b=0b=0 Then root=m Else root=n
End Function
【考点】应用程序的试运行和保存.
【答案】是;f(k)=a(i)+b(i);( );Mid(f(x),y+1,1);b=0
【解答】
【点评】
声明:本试题解析著作权属菁优网所有,未经书面同意,不得复制发布。
发布:2024/4/20 14:35:0组卷:4引用:1难度:0.3
相似题
-
1.大部分社交软件都有好友推荐的功能,当用户 A 和用户 B 的共同好友数量超过阈值 p 时,由系统向用户 A 推荐用户 B。
编写 VB 程序,实现好友推荐功能。运行程序,列表框 Listl 中显示用户 id 及好友列表,在文本框 Textl 中 输入推荐目标用户 id,在文本框 Text2 中输入阈值 p,点击“推荐”按钮,在列表框List2 中显示用户之间的关系,在标签 Label5 中显示向目标用户推荐的好友列表。程序运行界面如图:
(1)根据如图所示数据,若输入用户 id 为“3”,输入阈值为“3”,则推荐好友为:
(2)实现上述功能的 VB 程序如下,请在横线处填入合适的代码。发布:2025/1/2 10:30:2组卷:0引用:1难度:0.3 -
2.某学校开展了艺术节活动,数组a中存储了n个节目的编号和得分数据,数组存储结构如图所示:
小明使用选择排序思想对上述n个节目按得分进行降序排序(得分相同的按编号升序排列),并依据得分插入各个节目的排名信息,处理后数组a的存储结构如图所示:
程序运行时,单击命令按钮Command1后读取数据到数组a中并显示在列表框List1中,单击命令按钮Command2后将节目按照上述规则进行排序,并将排名结果显示在列表框List2中。
实现上述功能的VB程序如下,请回答下列问题:
(1)已知窗体名称为Forml,要使程序加载时,窗体标题自动显示为“第15题程序”,则可在
(2)请在横线处填入合适的代码。
(3)加框处代码有误,请改正。发布:2025/1/2 10:30:2组卷:0引用:1难度:0.3 -
3.小明用python语言中对大小为100*100像素的图像“上.jpg”(如图所示)进行简单处理,部分代码如图:
程序执行后的图像效果是( )发布:2024/12/20 9:30:2组卷:3引用:5难度:0.4