试卷征集
加入会员
操作视频

亲戚寻找。小李总是因为认不清亲戚而苦恼,于是他设计了如下程序来模拟亲戚寻找的过程。已知:如果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=0
b=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题程序”,则可在
     
    (单选,填字母:A.Form_Click(  )/B.Form_Load(  )/C.Forml_Click (  )/D.Forml_Load (  ))事件过程 中添加代码:Forml.Caption=“第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
深圳市菁优智慧教育股份有限公司
粤ICP备10006842号公网安备44030502001846号
©2010-2025 jyeoo.com 版权所有
APP开发者:深圳市菁优智慧教育股份有限公司| 应用名称:菁优网 | 应用版本:5.0.7 |隐私协议|第三方SDK|用户服务条款
广播电视节目制作经营许可证|出版物经营许可证|网站地图
本网部分资源来源于会员上传,除本网组织的资源外,版权归原作者所有,如有侵犯版权,请立刻和本网联系并提供证据,本网将在三个工作日内改正