学进去-教育应平等而普惠
排序:
414道相关试题
袜子颜色配对问题。现有不同颜色的袜子若干(袜子的颜色用数字编号1~15表示),颜色相同的袜子才能组成一双,其中有几只袜子是落单的,现要求找出落单袜子的颜色以及能够配对的袜子数量。编写程序解决该问题,程序运行时,在文本框Text1中依次输入袜子的颜色编号(数据都用逗号分隔并以逗号结尾),单击“查找”按钮,在列表框List1中输出落单袜子的颜色编号,在标签label1中现实能配对的袜子数量。运行界面如图所示,实现上述功能的VB程序如下。

请回答下列问题:
(1)写出VB代码中的方法名____________(只需填一个方法名);
(2)根据题意,请在划线处填入合适代码;
(3)加框处程序代码有错,请改正。
Const n = 15
Private Sub Command1_Click()
Dim a(1 To n) As Integer  '数组a存放不同颜色袜子的数量,默认值为0
Dim s As String, ch As String
Dim c As Integer, i As Integer, t As Integer
List1.Clear
s = Text1.Text
t = 0 :c = 0 : i = 1
Do While i <= Len(s)
ch = Mid(s, i, 1)
If ch >= "0" And ch <= "9" Then
t = t * 10 + Val(ch)
Else
a(t) = _____________
t = 0
End If
i = i + 1
Loop
For i = 1 To n
If __________ Then List1.AddItem "落单袜子的颜色为" + Str(i)
c =  _______________  
Next i
Label1.Caption = "能配对的袜子有" + Str(c) + "双"
End Sub
类型:填空题
难度系数:困难0.15
收藏
纠错
详情
数组 a 存储降序排列的 m 个数据,数组 b 中存储的是升序排列的 n 个数据,且两个数组中存储的数据为区间[1,20]范围内的不重复的随机整数。现将两个数组的数据合并到 c 数组中,使 c 数组的数据为左右交替上升,如下表所示:

当窗体 Form1 加载时,自动产生 a、b 数组的数据,并分别显示在列表框 List1 与 List2
中,单击合并按钮 Command1 后,在 c 数组中保存按规则合并后的 a、b 数组的数据,并显示在列表框 List3 中。程序截图如下所示:

实现该功能的 VB 程序如下:
Const m = 5
Const n = 6
Dim a(1 To m) As Integer
Dim b(1 To n) As Integer
Dim c(1 To m + n) As Integer
‘窗体加载时,生成数组 a、b 中的数据,并按要求排序后显示在列表框中,代码略
Private Sub Command1_Click()
Dim pa As Integer, pb As Integer, pc As Integer, s As Integer, flag As Boolean
pa = m: pb = 1: pc = 1
flag = True
Do While ____________________  
If a(pa) < b(pb) Then

s = a(pa)

pa = pa - 1

Else

s = b(pb)

pb = pb + 1

End If
c(pc) = s
If flag Then

pc = m + n - pc + 1

Else

pc =  

End If
__________________________
Loop
‘处理 a、b 数组中剩余数据,并在列表框 List3 中输出数组 c,代码略
End Sub
(1)窗体加载的事件处理过程名为__________。(填字母:
A.Form1_Click /B.Form_Click /
C.Form1_Load /D.Form_load)
(2)加框处代码有错,请改正。 __________
(3)在划线处填入合适的代码。
类型:填空题
难度系数:困难0.15
收藏
纠错
详情
IPv6 是英文“Internet Protocol Version 6”(互联网协议第 6 版)的缩写。IPv6 地址总共有 128 位,为了便于人工阅读和输入,IPv6 地址使用 16 进制数表示,划分成 8 个块,每块 4 位,块与块之间用“:”隔开,如:ABCD:EF01:0000:0000:ABCD:EF01:0000:6789
同时,对于多个地址块为 0 的情况时,可以使用”::”号,进行化简。
化简原则:
①全 0 块“0000”,可以化简为“0”
②连续多个全 0 块,可以化简为“::”
③一个 IPv6 地址中只能出现一个“::”,出现多个全 0 块时,“::”要化简最长的一段,没有最长的就将最左侧的一段化简为“::”
④“::”可以出现在地址开头或结尾具体示例如下:
程序界面如图所示:

实现上述功能的 VB 程序如下,请回答下列问题:
(1)请在划线处填入合适的代码。
Private Sub Text1_Change()
Dim a(1 To 8) As String, ipstr As String, ips As String
Dim lenth As Integer, max_lenth As Integer, start As Integer ipstr = Text1.Text
For i = 1 To 8
a(i) =_________'将 IPv6 分段存入数组 a Next i
'对数组进行处理,如果字母或非零数字开头,则不用处理;如果全是数字0,则压缩成    0,如果前导为 0,则去掉,处理完毕存回数组。
'///------ 处理过程略----- /////
'如果只有一串0,则将该串“0”用“::”代替,如果不止一串0,则将最长的一串“0”简化为“::”,如果有连续  0,则将左边的一串零简化,右侧保留。
max_lenth = 0
For i = 1 To 7
If_________Then lenth = lenth + 1
Else
If    lenth > max_lenth    Then
max_lenth = lenth: start = i - lenth: lenth = 0 End If
End If Next i
If lenth > max_lenth Then    max_lenth = lenth: start = i - lenth  '根据连续 0 串的位置确定输出简化后的结果
ips = ""
If    start = 1 And max_lenth    =    7 Then     '开头是 0 且全 0 ips = "::"
ElseIf    start = 1 Then    '开头是 0 但不全为 0 ips = "::"
For    i = start + max_lenth + 1    To    7 ips = ips + a(i) + ":"
Next i
ips = ips + a(i)
ElseIf    start > 1 And    start + max_lenth = 8    Then    '开头不是 0 但 0 到最后 For i = 1 To start - 1
ips = ips + a(i) + ":"
Next i
ips = ips + ":"
ElseIf start > 1 Then                   '开头不是 0 且 0 不到最后 For i = 1 To start - 1
ips = ips + a(i) + ":"
Next i
ips = ips + ":"
For i =_________To 7  ips = ips + a(i) + ":"
Next i
ips = ips + a(i)
Else                  '无连续 0 出现
For i = 1 To 7
ips = ips + a(i) + ":"
Next i
ips = ips + a(i) End If
Text2.Text = ips End Sub
(2)IPv6  地址:3BCD:0000:0000:ABCD:0000:0000:0000:6789,则化简后为_______。
类型:填空题
难度系数:困难0.15
收藏
纠错
详情
试场编排方法:每试场人数30,尾数试场可能不足30,按6行5列的布局编排试场,每个试场的座位号如下图所示。编写一个VB程序实现上述功能:在文本框Textl中输入学生数n,在文本框Text2中输入试场号m,单击“确定”按钮Commandl,在列表框中Listl中输出第m试场的编排表,程序运行界面如图b所示。

(1)999个学生的考号依次是001,002,...,998,999。根据上述试场编排方法,可知第3试场第2行第3列的学生考号是_______________。
(2)小王根据上述算法,设计了一个加密程序,其VB代码如下,请在划线处填入合适的代码。
Const k=30
Function adj(s As String)As String
‘功能:在字符串s前添加若干个空格,代码略。
End Function
Function convert(n As Integer) As String
‘功能:把n转字符串,不足3位则在前面补0,代码略。
End Function
Private Sub Commandl_Click()
Dim kh(1 To 999)As String
Dim n As Integer,m As Integer,kcs As Integer
Dim i As Integer,j As Integer,line As String
Dim start As Integer,ofsetl As Integer,offset2 As Integer
n=Val(Text1.Text)
m=Val(Text2.Text)
For i=1 To n.

kh(i)=convert(i)

Next i
If n Mod k=0 Then kcs=n\k Else___________
If m>kcs or m<l Then

Label3.Caption="无该试场!"

Else

___________

For i=l To 6

line=""
offsetl=i
line=line+adj(kh(start+ofst))
For j=2 To 5
If j Mod 2=1 Then
Offsetl=offset1+12
line=line+adj(kh(start+ffset!))
Else
___________
line=line+adj(kh(start+offset2))
End If
Next j
List1.AddItem line

Next i

End If
End Sub
类型:填空题
难度系数:困难0.15
收藏
纠错
详情
(加试题)编写一个VB程序实现数据左右交替上升排序。功能如下:随机产生n个不重复的整数存数组a,并在列表框listl中显示,单击“排序”按钮Commandl,在列表框list2中显示排序后的数据。某遍程序运行后,数组a中存储的左右交替上升排序的n个正整数,如下表所示:

a(1)

a(2)

a(3)

……

a(n-2)

a(n-1)

a(n)

1

4

7

……

8

6

2

实现该功能的VB程序如下,但加框处代码有错,请改正。
Constn=10
Dima(1 To n) As Integer
Private Sub Form_Load()
‘随机产生n个不重复的整数存数组a,并在列表框listl中显示。代码略。
End Sub
Private Sub Command1_Click()

Dim i As Integer,j As Integer,t As Integer

Dim i minl As Integer,imin2 As Integer

For i=1 To n\2

Imin l=i:imin2=i+1
If a(iminl)>a(imin2) Then t=iminl:iminl=imin2:imin2=t
For j=i+2 To n-i+1
If a(j)<a(imin1) Then
imin2=iminl;iminl=j
             ‘(1)  _______________________________ 
imin 2=j
End If
Next j
If i◇imin 1 Then t=a(i):a(i)=a(imin1):a(imin1)=t
If imin 2=i Then                       ‘(2)  _______________________________ 
If n-i+1◇imin2 Then t=a(n-i+1):a(n-i+1)=a(imin2):a(imin2)=t

Next i

For i=1 To n

Text2.Text=Text2.Text+Str(a(i))

Next i

End Sub
类型:填空题
难度系数:困难0.15
收藏
纠错
详情
某数据加密方法描述如下:
(1)以字节为单位进行加密处理;
(2)将1个字节的8位二进制数分割成前4位与后4位两个二进制数;
(3)分别将上述两个4位二进制数转换为十进制数;
(4)将每个十进制数转换为1个加密字符,对应的“密码表”如下:
值(十进制)
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
加密字符
I
l
i
k
e
C
H
N
P
0
s
t
c
a
r
d
 
小明按照上述方法,设计了一个字符串(仅包含ASCII字符)加密的VB程序,功能如下:单击“加密”按钮Commandl,程序依次将文本框Textl中每个字符的ASCII码值作为1个字节转换为两个加密字符,连接这些加密字符,最后在文本框Text2中输出加密结果。下表显示了字符串中一个字符的加密过程:

程序运行效果如图所示。

实现上述功能的VB程序如下:
(1)请在划线处填入合适代码。
Private Sub Command1_Click()
Dim n As Integer, s As String, i As Integer, ss As String
Dim a As Integer  '存储加密前字符的ASCII码
Dim b1 As Integer, b2 As Integer    '分别存储分割、转换后的两个十进制数
s = Text1.Text

For i = 1 To n
a = Asc(Mid(s, i, 1))
b1 =a \ 16
b2 =a Mod 16
ss = ss + Code2Char(b1) + Code2Char(b2)
Text2.Text = ss
Next i
End Sub
'十进制值转换为加密字符的函数
Function Code2Char(c As Integer) As String
Dim s As String
s = "IlikeCHNpostcard"
Code2Char =        ②
End Function
(2)若将“密码表”中值为“0”对应的加密字符“I”改成“i”,加密后的密文可能无法解密,原因是
类型:填空题
难度系数:困难0.15
收藏
纠错
详情
n个数据的冒泡排序需要经过n-1遍加工,每一遍加工自下而上比较相邻两个数据,把较小者交换到上面。小刘发现:当某一遍加工过程中没有数据交换,说明数据已经有序,无需进一步加工。为此,小刘对算法进行优化,编写了一个VB程序,功能如下:运行程序时,在列表框List1中显示排序前数据,单击“排序”按钮Commaiid1,在列表框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                                  '(1)  

i <=" n" - 1 Or flag = True

 

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

Str(i)

 
Label3.Caption = "排序过程的加工遍数为" +            '(2)

For i =" 1" To n
List2.AddItem Str(a(i))
Next i
End Sub
类型:填空题
难度系数:困难0.15
收藏
纠错
详情
编写VB程序,实现如下功能:在文本框Textl和Text2中分别输入一个整数,单击命令按钮Command1,在列表框List1中显示结果,运行效果如甲图所示。结果包含两列数据,第1列为两数之间的摄氏温度值(间隔1度、升序),第2列为对应的华氏温度值。

(1)要使命令按钮Command1上显示的文本改为“转换”,可在其属性窗口(乙图) 中将Caption属性的属性值修改为“___________”。
(2)为实现上述功能,请在划线处填入合适代码或选项。
Private Sub Command1_Click()
Dim t1 As Integer, t2 As Integer
Dim i As Integer, t As Integer
Dim f As Single
List1.Clear
t1 = Val(Text1.Text)
t2 = Val(Text2.Text)
If     ①      Then  '(选填字母,从下列A、B、C、D四个选项中选取一项)
t =" t1:" t1 =" t2:" t2 = t
End If
i = t1
Do While      ②      '(选填字母,从下列A、B、C、D四个选项中选取一项)
f =" i" * 9 / 5 + 32    '摄氏温度转换为华氏温度
List1.AddItem Str(i) + "          " + Str(f)
③      '(填程序代码)
Loop
End Sub
划线①、②处的选项:
A.i <= t2B.f <= t2C.t1 > t2D.i < f
类型:填空题
难度系数:困难0.15
收藏
纠错
详情
小贝对街机中的”打手掌”游戏很感谢兴趣,于是也用VB做了个打手游戏,界面如图。点击开始按钮command1,标签label1开始从3秒倒计时,倒计时结束开打,如果打中手掌,label1显示”打中了”,如果超过去3.1秒,则显示”没打中”,游戏结束。点开始按钮可以重来。请根据题意将下列程序补充完整。

Dim   t  As Integer   ‘t用来计时
Private Sub Command1_click( )
Image1.left=64
Label1.caption=””
t=0
Timer1.interval=100
(1)______________
Image1.Enabled=False
End sub
Private Sub Image1_click( )
Timer1.Enabled=False
Image1. Enadled=False
Label1.caption=”打中了”
End Sub
Private Sub Timer1.Timer( )
t =" t" +1
if t<="30" then label1.caption=3-int(t/10)
if t>32 then
label1.caption=”没打中”
For i="1" to 10   ‘手迅速移开的动画
Image1.left=Image1.left-20
For j="1" to 10000
Doevents
Nextj
Next i
Timer1.Enabled=False
Image1.Enabled=False
End if
If t="30" then
‘当t=30时,即倒计时3秒结束,允许开打,对象image1开始允许响应事件
­­­­(2)_____________
End if
End sub
类型:填空题
难度系数:困难0.15
收藏
纠错
详情
某一数字显示器由7段发光二极管组成,通过各二极管的亮灭来显示数字。若用“1”表示亮,“0”表示灭,按图1所示的字母先后顺序对各二极管的亮灭状态编码,按此编码方法,图2中数字“9”所对应的编码是(  )
A.1111011B.1110011C.1111100D.1111110
类型:选择题
难度系数:困难0.15
收藏
纠错
详情
首页
上一页
下一页
尾页