题库 高中信息

题干

某VB程序段如下所示:
Dim x As String
Private Sub Form_Load()
x = ""
End Sub
Private Sub Text1_Change()
Dim s As String, k As String
Dim i As Integer
s = "0123456789ABCDEF"
k = Text1.Text
For i = 1 To Len(s)
If Mid(s, i, 1) = k Then x = x + k
Next i
If x = "" Then x = "没有找到!"
Label1.Caption = x
End Sub
若在文本框Text1中依次输入“2”和“9”,则Label1上显示的内容为
A.11B.2C.9D.29
上一题 下一题 0.99难度 选择题 更新时间:2019-05-06 06:34:46

答案(点此获取答案解析)

同类题1

(加试题)编写一个成绩查询程序,输入要查找的分数,输出该分数的名次及同分人数,其算法是:用数组a存放不同的分值,数组m存储相同分数的人数,数组mc存储不同分数的名次。例如,数据库中有一组成绩(已按降序排列):98,95,95,92,90,90,87,按该算法,各数组值如下表所示:
i
1
2
3
4
5
a
98
95
92
90
87
m
1
2
1
2
1
mc
1
2
4
5
7
 
程序界面如下图所示,在文本框Text1中输入查询成绩,点击“查找”按钮,若找到,则输出该分数的名次和同分数的人数,若找不到,则输出“查无此分”。

程序代码如下,请在划线处填入合适的代码。
Dim n As Integer
Dim a(l To 1000) As Integer ’存放不同的分数值
Dim m(0 To 1000) As Integer ’存放相同分数的人数
Dim mc (0 To 1000) As Integer ’存放此分数的名次
Private Sub Form_Load()
Dim conn As New ADODB. Connection
Dim rs As New ADODB. Recordset
Dim tmp As Integer
Dim s As Integer
tmp = -1: n = 0
conn. Connectionstring = 〃provider=Microsoft. AC
A.OLEDB. 12. 0; data source=〃 & App. Path & 〃\mydb. accdb〃
conn. Open
Set rs. ActiveConnection = conn
rs.Open "Select * from score"
mc(0) = 1: m(0) = 0

Do While Not rs. EOF

s = rs. Fields (〃成绩〃)
If s = tmp Then ’当前读入分数与上一个分数相同
m(n) = __________
Else
n = n + 1
a(n) = s
m(n) = 1
mc(n) = ___________ 
End If
_____________
rs. MoveNext

Loop

End Sub
Private Sub Command1_Click0
Dim key As Integer, i As Integer, j As Integer, mid As Integer
key = Val (Text1.Text)
i = 1: j = n
mid = (i + j) \ 2
Do While i <= j And ____________ 

mid = (i + j) \ 2

If a(mid) < key Then

j = mid – 1

Else

i = mid + 1

End If

Loop
If a(mid) = key Then

Label2. Caption = 〃名次: 〃+ Str(mc (mid)) + 〃同分人数: 〃+ Str(m(mid))

Else

Label2. Caption = 〃查无此分〃

End If
End Sub

同类题4

(加试题)最大回文子串。回文字符串是具有回文特性的字符串:即该字符串从左向右读, 与从右向左读都一样.如:凤落梧桐梧落凤,abcba 等。“最大回文子串”是指一个字符串中长 度最大的回文字符串,其基本算法思想如下:
(1)每个回文都有一个“中心”,当回文字符数为奇数时,中间的那个字符就是回文中心;但是当回文的字符数为偶数时,回文的中心是最中间的那两个字符,且这两个字符相同。
(2)对任意一个字符或者相同的两个连续字符,我们都可以假设它为回文的“中心”,向它的 左右两边扩展出尽可能长的回文。对于每种假设,我们都能得到一个回文,而最长回文必定由 其中的某个假设中得到!
现编写一个 V
A.程序,在 Text1 中输入一串字符,单击“统计”按钮,在 Text2 中显示该字 符串中的最大的回文子串(长度相同时,输出最左边的子串)。请回答下列问题:
(1)当 Text1 中输入“123321344332423112113123”时,则输出的结果为_________。
(2)请在划线处填入合适的代码。
Dim n As Integer
Dim a(0 To 100) As String Private Sub Command1 Click() Dim s As String
Dim left As Integer, right As Integer, i As Integer
Dim max As Integer, m As Integer, b1 As Integer
'变量 b1 用于记录回文子串的左端起点 Text2.Text = ""
s = Text1.Text n = Len(s)
For i = 1 To n

a(i) = Mid(s, i, 1) Next i

max = 0: left = 0: right = 0
For i = 1 To n left = i
right = i
m = longest(left, right) If m > max Then
b1 = i - m \ 2 max = m
End If left = i
right = i + 1
If a(left) = a(right) Then
m = longest(left, right) + 1
If m > max Then
①________
max = m
End If
End If
Next i
For i = b1 To ②________

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

End Sub
Function longest(left As Integer, right As Integer) As Integer
Dim p As Integer p = 1
Do While left > 1 And right < n And ③________
left = left - 1 right = right + 1 p = p + 2
Loop
longest = p
End Function