学进去-教育应平等而普惠
排序:
限于篇幅仅展示1000道试题,请根据关键词精准搜索
舟山城市规模较小,人口流动量不大,通常两个完全不认识的陌生人通过2~3个亲戚或朋友的牵线搭桥就可以建立联系。王老师建立了一种人际关系矩阵来模拟这种现象,如有甲,乙,丙,丁,戊,己6人,相互之间认识,在矩阵中用1表示;相互之间不认识,在矩阵中用0表示;对于自身,用0表示,即矩阵左上角到右下角的对角线全为0。如表所示,当前甲和戊不认识,只需通过一人(乙或丁)牵线即可建立联系。
 







0
1
1
1
0
0

1
0
1
0
1
1

1
1
0
1
0
0

1
0
1
0
1
1

0
1
0
1
0
0

0
1
0
1
0
0
 
王老师设计了一个用来求两个陌生人建立联系所需最少介绍人的VB程序,程序运行时,点击“生成矩阵”按钮Command1,随机产生一个关系矩阵,并在列表框List1中显示。在文本框Text1和Text2中输入两个陌生人的编号,点击“建立联系”按钮Command2,在Labell中输出需要介绍人的最少个数。VB程序运行界面如图所示。
                              
对陌生人pl和p2建立联系的方法:
①pl所在行开始,将其认识的人依次添加到联系人数组b中。
②若数组b中未出现p2,依次搜索下一位联系人所在行,将新出现的认识人添加到联系人数组b中。
③在搜索过程中同时记录搜索步数,数组b内全部搜索完毕,若p2还是未出现,则视为无法建立联系,反之输出介绍人的个数。
程序代码如下:
Const n=8
Dim a(1 To n*n) As Integer
Private Sub Command1_Click()

Dim s As String

List1.Clear

For i=1 To n

For j=i To n
If j=i Then
a((i-1)*n+j)=0
Else
a((i-1)*n+j) = Int(Rnd * 2)
__________
End If
Next j

Next i

For i=1 To n

s=""
For j=1 To n
s=s+Str(((i-1)*n+j))
Next j
List1.AddItem s

Next i

End Sub
Private Sub Command2_Click()

Dim b(1To n)    As Integer

Dim ren(1To n)  As Integer      '记录建立联系的步数

Dim find(1To n)   As Boolean     '记录某人是否被添加到联系人数组中

Dim p1 As Integer,p2 As Integer,cur As Integer,k As Integer,

q As Integer

p1=Val(Text1.xt)

p2=Val(Text2.Text)

cur=p1:k=1:q=0

find(cur)=True

Do While find(p)=False

For i=1 To n
If a( (cur-1)*n+i)=1 And find(i)=False Then
b(k)=i:k=k+1
find(i)=True
_____________
End If
Next i
q=q+1
If q=k Then Exit Do Else_______________

Loop

If find(p2)=True Then

Label1.Caption="需要"+Str(ren(p2)-1)+"个介绍人"

Else

Label1.Caption="无法建立联系"

End If

End Sub
请回答以下问题:
(1)如图所示的人际关系,要建立2号和5号之间的联系需要的介绍人数最少为_____。
(2)请在划线处填入合适的代码。
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
使用VB程序研究“回文素数在素数表中的位置”,程序运行界面如下图所示。程序将10000以内的全部素数按顺序保存到数组a中,在文本框中输入需要查找的回文数,单击“查找”按钮Command1,在标签Label1中显示该回文素数在全部素数中的位置。

实现上述功能的程序如下,划线处的代码有错,请改正。
(1)处代码______________;(2)处代码______________。
Dim a(1 To 10000)As Integer
Dim n As Integer
Private Sub Form _Load()
'将1000以内的素数从小到大依次存人数组a中
'将素数的个数存人变量n中
End Sub
Private Sub Command1_Click()

Dim i As Integer, j As Integer, mid As Integer

Dim key As Integer, flag As Boolean

key = Val(Text1.Text)

If key > 10000 Or Not hws(key) Then

MsgBox "输入的数据不是10000以内的回文数"

Else

i=1:j=n
flag =False
Do While flag =False      '(1)
mid =(i+ j)\2
If key > a(mid)Then
i = mid +1
Else If key < a(mid) Then
j=mid-1
Else
flag = True
End If
Loop
If Not flag Then
Label1. Caption="该回文数不是素数"
Else
Label1. Caption="回文素数"+Str(key)+"是第"+Str(mid)+"个素数"
End If

End If

End Sub
'自定义函数hws(y)用于判断y是否是回文数
Function hws(y As Integer) As Boolean

Dim x As Integer, k As Integer

x=0:k=y

hws = True

Do While k >0

x =x+ k Mod 10     '(2)
k=k\10

Loop

If x<> y Then hws =False

End Function
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
学校把各同学选考组合放在一个数据库中,小明编写了一个VB程序,用于查询每个同学的选考组合,程序界面如图所示,在文本框Text1中输入学号,单击“开始查询”按钮(Command1),就开始查找该学号的信息,如果找到对应的信息,就显示所属学生的姓名和选考组合;如果没有找到,则显示“找不到”。学校共有n名学生,数组a、b分别保存了本次考试所有学生的学号和姓名信息。数据库数据按学号从小到大排列,第i个学生的学号保存在a(i),对应的姓名保存在b(i),c(i)保存该学生的选考组合。
             
程序如下,在程序划线处填入适当的代码,把程序补充完整。
Dim n As Integer, a(1000)As String,
Dim b(1000)As String, c(1000)As String
Private Sub Command1_Click()
Dim x As String, pos As Integer
Dim conn As New ADODB. Connection,rs As New
ADODB. Recordset
conn. ConnectionString="provider =Microsoft. AC
A.
OLEDB.12.0; data source="&.App. Path&"\students.accdb"
conn. Open
Set rs. ActiveConnection = conn
rs. Open"学生信息"
n=0    '考生数初始化
Do While Not rs. EOF

n =n+1

a(n)=rs. Fields(0)

b(n)=rs. Fields(1)

c(n)=rs. Fields(2)

______

Loop
x = Text1.Text
If pos >0 Then
②______
Text2.Text=b(pos)
Text3.Text =c(pos)
Else
Text2.Text="找不到"
End If
End Sub
Function Search(Key As String)As Integer
Dim i As Integer, j As Integer, m As Integer
i=1: j=n: Search =0
Do While i <=j m=Fix((i+j)/2)
If Key =a(m)Then
______
Exit Function

Else lf a(m)> Key Then

j=m-1
Else

i=m+1

End If
Loop
End Function
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
数组 a 初始值均为 0,生成 n 个 1 到 100 之间的随机整数依次存入数组a,要求a(1)至 a(n)中的奇数位上的都是偶数,偶数位上的都是奇数且都升序排序,例如 n=4 时有数列 2,5,6,9,n=5 时有数列 2,5,6,9,8,运行程序,向文本框 text2 输入个数,单击“生成”按钮后按上面的规则生成数据并排序,然后在文本框 text1 中显示结果,在文本框 text3 中输入一个 1 到 100 之间的整数,单击“添加”则向已生成的数据中添加该数,要求保持偶数在奇数位上升序,奇数在偶数位上升序,如存在与该数相同的数据则插入到最后一个相同数据的后面,并将最终结果显示在 text1 中。运行程序生成 5 个数据“28,5,50,25,98”,”添加 1 次 17得到“28,5,50,17,98,25,”,再添加 1 次 17 得到“28,5,50,17,98,17,0,25,”,运行效果如下图所示。

(1)为了“生成”按钮 command1 被单击后处于不可点状态,应该向程序添加代码___(单选填字母:
A.command1.Visible=FalseB.command1.Enabled=FalseC.command1.Caption="False")
(2)请将划线部分补充完整。
Dim a(1 To 1000) As Integer
Dim n As Integer, p As Integer, q As Integer
Private Sub Command1_Click() '生成随机数据
n = Val(Text2.Text)
If    n Mod 2 = 0  Then p = n - 1:q = n Else p = n: q = n – 1
'p,q 分别为生成的数列的奇数位和偶数位最大下标
'以下代码为生成随机数并按要求排序输出,代码略
End Sub
Private Sub Command2_Click() '添加数据
Key = Val(Text3.Text)
If   Key Mod 2 = 0 Then

i = 1: j = p: p = p + 2

Else

i = 2: j = q: q = q + 2

End If
Do While i <= j

m = (i + j) / 2

If Key Mod 2 = 0 And m Mod 2 = 0 Then m = m - 1

If Key Mod 2 = 1 And m Mod 2 = 1 Then m = m - 1

If__________Then i = m + 2 Else j = m – 2

Loop
If Key Mod 2 = 0 Then '插入一个偶数

For   k =_____ 

a(k) = a(k - 2)

Next k a(k)

= Key

Else

'插入一个奇数,代码略

 
End If
If p > q Then n = p Else n = q
For i = 1 To n
s = s + Str(a(i)) + ","
Next i
Text1.Text = s
End Sub
(3)运行程序时在 text1 中生成“6,53”,先后添加数据“2”和“8”则在 text1 中显示的内容为__________。
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
编写一个查找最接近的数的VB程序:程序运行时,在文本框Text1中输入产生随机数的个数(1到100之间),单击命令按钮"产生随机数并升序排列"后,在列表框Listl中显示已经按升序排列后的随机整数,然后在文本框Text2中输入要查找的整数,单击命令按钮"查找"后,在标签Label3中显示随机整数序列中与待查找数最接近的整数(当最接近的数有2个时,输出较大的一个).程序运行效果如图所示.

实现上述功能的VB代码如下,请在横线处填入合适代码.
Dim n As Integer'存储随机数的个数
Dim f(1To100)As Boolean
'f(i)为True时表示随机整数i已经产生过
Dim a(1 To 100)As Integer
'依次存放升序排序后的n个随机数
Private Sub Commandl_Click()

'命令按钮"产生随机数并升序排列"的单击事件

Dim i As Integer

Randomize

For i=1 To 100

f(i)=False

Next i

n=Val(Text1. Text)

For i=1 To n

t=Int(Rnd * 100+1)
Do While f(t)=True
t=Int(Rnd * 100+1)
Loop
(1)________________

Next i

j=0

For i=1 To 100 '实现排序并输出

If f(i)=True Then
(2)________________
a(j)=i
List1.AddItem Str(i)
End If

Next i

End Sub
Private Sub Command2_Click()

'命令按钮"查找"的单击事件

Dim key As Integer

key=Val(Text2. Text)

If key <=a(1)Then Label3. Caption=Str(a( 1)):Exit Sub

If key >=a(n)Then Label3. Caption=Str(a( n)): Exit Sub

L=1:R=n

Do While L<=R'找到与key较为接近的两个数a(R)和a(L)

m=(L+R)\2
If key<=a(m)Then
R=m-1
Else
L=m+1
End If

Loop

If(3)____________Then

'在a(R)和a(L)中选出更接近key的数

Label3. Caption=Str(a(R))

Else

Label3. Caption=Str(a L))

End If

End Sub
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
某密码强度判断程序功能如下:在文本框Text1中输入由大写字母、小写字母、数字和其他字符4种不同类型字符组成的密码字符串,单击“判断”按钮Cmd1,在标签框Label3中显示判断结果。程序运行界面如图所示。
                             
密码强度判断条件如下:密码长度小于6,则强度为“弱”。在密码长度大于等于6的情况下,若只出现一种字符,则密码强度为“弱”;若出现两种不同字符,则密码强度为“中”,出现三种以上不同字符,则密码强度为“强”。
(1)Cmd1对象属于_________类。(单选,填字母:
A.LabelB.TextBox/C.CommandButton)
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Private Sub Cmd1_Click()

Dim n As Integer,i As Integer,m As Integer,s As

String,c As String

①__________

If n<6 Then

Label3.Caption="弱"

Else

s="0000"
For i=1 To n
c=Mid(Text1.Text,i,1)
If c>="0" And c<="9" Then
Mid(s,4,1)="1" '将字符串s第4位上的字符替换为"1"
Elself c>="A" And c<="Z" Then
Mid(s,3,1)="1"
Elself c>="a" And c<="z" Then
②__________
Else
Mid(s,1,1)="1"
End If
Next i
m=0
For i=1 To 4
If Mid(s,i,1)="1" Then ③__________
Next i
If m<2 Then
Label 3.Caption="弱"
Elself m=2 Then
Label 3.Caption="中"
Else
Label3.Caption="强"
End If

End If

End Sub
(3)若文本框 Text1中输入的内容为“a26$gh2!”,则单击“判断”按钮Cmd1,事件过程运行结束时,变量s的值为________。
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
n个数据的冒泡排序需要经过n-1遍加工,每一遍加工自下而上比较相邻两个数据,把较小者交换到上面。小刘发现:当某一遍加工过程中没有数据交换,说明数据已经有序,无需进一步加工。为此,小刘对算法进行优化,编写了一个VB程序,功能如下:运行程序时,在列表框List1中显示排序前数据,单击“排序”按钮Command1,在列表框List2中显示这些数据按升序排序后的结果,在标签Label3中显示排序过程的加工遍数。运行效果如图所示。

实现上述功能的VB代码如下,但加框处代码有错,请改正。
Dim a(1 To 8) As Integer
Dim n As Integer
Private Sub Form_Load()
' n=8 ,排序前数据存储在数组 a 中,并在列表框Listl中显示
'代码略
End Sub
Private Sub Command1_Click()
Dim flag As Boolean                ' flag 值为 True 表示一遍加工中发生过交换
i = 1
flag = True
Do While          i <= n - 1 Or flag = True       '(1)

flag = False

For j = n To i + 1 Step -1

If a(j) < a(j - 1) Then
k = a(j): a(j) = a(j - 1): a(j - 1) = k
flag = True
End If
Next j
i = i + 1
Loop
Label3.Caption = "排序过程的加工遍数为" + Stri'(2)
For i = 1 To n
i <= n - 1 Or flag = True
Str(i)

List2.AddItem Str(a(i))

Next i
End Sub
划线处代码应该改为:
(1)____________________________________
(2)____________________________________
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
如图所示加密程序:在文本框Text1中输入明文,单击命令按钮“加密”,在文本框Text2中输出密文。加密算法思路如下:
                            
1)只针对英文字符和数字进行加密,其余字符不变;
2)将原文中的小写字母转换为大写字母;
3)根据第2步所得结果,若是英文字符,则逐个后移4位
(例如:A→E,Z→D),若是数字,则逐个前移2位(例如:3→1,1→9)。
综上所述:原文为Jim is at room 4!,加密后输出密文为:NMQ MW EX VSSQ 2!
(1)程序代码如下,请填空。
①处代码______________;②处代码______________。
Private Sub Command1_Click()
Dim str1 As String, str2 As String, ch As String
Dim i As Integer, j As Integer, n As Integer
str1 = Text1.Text:str2 ="   ":n =Len(Text1.Text)
For i=1.To n

ch =Mid(str1, i, 1)

If ch >="a" And ch <="z" Then

    

End If

If ch >="A" And ch <= "Z" Then

ch= Chr((Asc(ch)-Asc("A")+4) Mod 26+ Asc("A"))

ElseIf ch >= "0"And ch <= "9" Then

ch=Chr((    ) Mod 10+Asc("0"))

End If

str2 =str2 + ch

Next i
Text2.Text =str2
End Sub
(2)若在Text1中输入的明文为:Num 15*,则程序运行后在Text2中输出的密文为:_______。
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
星座问题:已知十二星座的名称和起始日期,根据身份证号码来计算星座名称。具体功能如下:在文本框Texti中输入身份证号码,单击“计算”按钮Cmd1,在标签Label2中显示星座名称。程序运行界面如图所示。
                            
(1)结合题目描述,程序中①处应填入的内容是___________。
(2)实现上述功能的VB程序如下,请在②③划线处填入合适的代码。
Private Sub    Click()
Dim sfz As String, Csny As String, str1 As String, str2
As String
Dim i As Integer, t As Integer, sl As String
sfz =Text1.Text
str1-="012002190321042005210622072308230923102411231222"
str2="水瓶座、双鱼座、白羊座、金牛座、双子座、巨蟹,座、狮子座、处女座、天秤座、天蝎座、射手座、摩羯座"
Csny = Mid(sfz, 11, 4)
If Len(sfz)= 18 Then

If Csny <"0122"Then Csny ="13"+ Mid(Csny, 3, 2)

i=1

Do While i <= 45

s1 = Mid(str1, i, 4)
If i= 45 Then s2="9999"Else s2 = Mid
(str1, i +4, 4)
If Csny >=s1.And Csny <s2 Then

______

i= Len(str1)

End If
_____
Loop
Label2.Caption ="你的星座为"+Mid(str2, t, 3)
Else
Label2.Caption ="你输入的身份证号码不正确!"
End If
(3)若文本框Text1中输入“33052220050101218X”,根据算法,星座为______。
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
二进制转十六进制,从文本框TextB输入二进制整数,单击“转换”按钮,将二进制转换为十六进制并显示在文本框TextH中。程序界面如图所示。转换方法:先从右往左将二进制数分割成4位一组,若最左边的一组不足4位,则用0将高位补足,然后将每4位二进制数转换为1位十六进制数。

(1)观察程序代码,“转换”按钮的对象名为_____________(单选,填字母:
A.TextB /B. TextH/B.Command1/C.Convert/D.转换)
(2)为实现上述功能,请在划线处填入合适的代码。
Private Sub Convert_ Click()
Const zf ="0123456789ABCDEF"
Dim a(1 To 100)As Integer, temp As Integer
Dim s As String, res As String, n As Integer, r As Integer
res ="  ": s= TextB. Text: n = Len(s)
For i =1 To n

a(i)= Val(Mid(s, i, 1)).

Next i
t=n\4
______
temp =0
For i=1 Tor'将最高的r位转换为十六进制

temp =temp*2+a(i)

Next i
res=Mid(zf, temp+1, 1)
For i=1 To t'将t组4位二进制转换为十六进制
temp =0
For j=1 To 4
temp= temp*2+______
Next j
res= res + Mid(zf, temp+1, 1)
Next i
TextH. Text = res
End Sub.
(3)若在文本框TextB中输入“101000111”,则单击“转换”按钮后的输出结果为:_______________。
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
首页
上一页
下一页
尾页