题库 高中信息

题干

编写“数字提取”程序,实现如下功能:在文本框 Text1 中输入包含数字和其他非数字字 符混合的原始数据,点击“数字提取”按钮 Command1,将数据中的数字以“,”间隔输出到文本 框 Text2 中。程序运行界面如图所示,VB 代码如下。请回答以下问题:
 
(1)要使程序运行后,窗体 Form1 标题立即自动显示为“数字提取”,可在 (单选,填字 母:
A.Form_Load /B.Form_Click/C.Command1_Click)事件过程中添加语句 Form1.Caption="数字 提取"。
(2)实现上述功能的 VB 程序如下,请在划线处填入合适的代码。 Private Sub Command1_Click()
Dim s As String, ch As String, flag As Boolean
Dim tmp As String, ans As String
s = Text1.Text
s = s + "." 
tmp = "": ans = ""
flag = False
For i = 1 To Len(s)
ch = Mid(s, i, 1)
If ch >= "0" And ch <= "9" Then
tmp =   ①    
flag = True
ElseIf flag = True Then
ans = ans + tmp + ","
 
flag = False
End If
Next i
Text2.Text = ans End Sub
(3)如图,若删除程序中的语句“s = s + "."”,输入不变,则提取后的数字信息为 。
上一题 下一题 0.99难度 填空题 更新时间:2019-04-16 09:20:49

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

同类题1

“旋转数组”过程是指将数组中的元素向右移动k个位置,其中k是非负数。以数组a向右移动3个位置为例,其移动过程有如下两种方法:
原始数据:
a(1)
a(2)
a(3)
a(4)
1
2
3
4
 
方法一:
①向右旋转1步:
a(1)
a(2)
a(3)
a(4)
4
1
2
3
 
②向右旋转2步:
a(1)
a(2)
a(3)
a(4)
3
4
1
2
 
③向右旋转3步:
a(1)
a(2)
a(3)
a(4)
2
3
4
1
 
方法二:
①将a(1)值放至旋转3个位置后位置a(4):
a(1)
a(2)
a(3)
a(4)
1
2
3
1
 
②将原a(4)值放至旋转3个位置后位置a(3):
a(1)
a(2)
a(3)
a(4)
1
2
4
1
 
③将原a(3)值放至旋转3个位置后位置a(2):
a(1)
a(2)
a(3)
a(4)
1
3
4
1
 
④将原a(2)值放至旋转3个位置后位置a(1):
a(1)
a(2)
a(3)
a(4)
2
3
4
1
 
有n个数存储在数组a中,给定一个整数p(1≤p≤n),将数组a的前p个数与后n-p个数分别向右旋转k次。例如数组a的各个数值分别是1,2,3,4,5,6,7,当p=4,k=1时,旋转后的结果为4,1,2,3,7,5,6。小明为此编写了VB程序,功能如下:在文本框Text2、Text3中依次输入p和k的值,单击“旋转数组”按钮Command1后,数组旋转后结果显示在Text4中。程序运行界面如下图所示,请回答下列问题:

(1)当文本框Text3中输入内容修改为3时,执行该程序后,a(3)的值为___________。
(2)请在划线处填入合适的代码。
Dim a(20) As Integer
Const n = 20
Private Sub Form_Load()
'随机产生n个1,100之间的随机整数,依次存储到a(1)、a(2)、…a(n)中,并在文本框Text1显示,代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer, p As Integer, k As Integer,cnt As Integer,c As Integer,t As Integer
p = Val(Text2.Text)
k = Val(Text3.Text)
i = 1:start = 1:c = a(i):cnt = 1
Do While cnt<= p   '方法二

i =_____________

    t = a(i)
a(i) = c
If ________________ Then
start = start + 1
i = i + 1
c = a(i)
Else
c = t
End If

cnt = cnt + 1

  Loop
For i = 1 To k   '方法一
temp = a(n)
For j = _______________
a(j) = a(j - 1)
Next j

a(p + 1) = temp

  Next i
For i = 1 To n
s = s + Str(a(i))
Next i
Text4.Text = s
End Sub

同类题3

   (加试题)某校秋季运动会共n名运动员参赛,高老师编写了一个运动会号码牌查询软件,输入号码牌就能查询该号码牌所属的班级和运动员姓名。数组hm、bj、xm分别保存了本次运动会所有运动员的号码牌、所在班级和姓名的信息。第i个选手的号码牌保存在a(i)中,对应的班级和姓名保存在bj(i)和xm (i)中。

运动会号码牌查询程序界面如第16题图所示,在文本框Text1中输入号码牌,单击“查询”按钮(Command1),电脑就开始查找该号码牌的信息,如果找到对应的信息,就显示该运动员所属班级和姓名,如果没有找到,则显示“没有该号码牌的信息”。


相应程序如下,在程序①和②划线处填入适当的语句和代码,把程序补充完整。
(1)学生运动会数据存入的数据库文件是_________________;
(2)在程序画线①处应填入________________________;
(3)在程序画线②处应填入________________________。
Dim n As Integer  ‘运动员人数
Dim hm(1000) As Integer, bj(1000) As String, xm(1000) As String
Private Sub Form_Load()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
conn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;DATA Source=" & App.Path & "\games.accdb"
conn.Open
strSQL = "SELECT * FROM Student"
Set rs.ActiveConnection = conn
rs.Open strSQL
n = 0
Do While Not rs.EOF '到记录集最后一条记录后退出循环
n = n + 1 '计数
hm(n) = rs.Fields("号码")
bj(n) = rs.Fields("班级")
xm(n) = rs.Fields("姓名")
rs.MoveNext     '移动到下一条记录
Loop
‘用冒泡排序法按a数组(号码牌)升序排列,显示在列表框List1中,代码略。
End Sub
Private Sub Command1_Click()   
Dim w As Integer
w = Val(Text1.Text)
pos =
If pos > 0 Then
Text2.Text = bj(pos)
Text3.Text = xm(pos)
Else
Text2.Text = "找不到"
End If
End Sub
Function Search(Key As Integer) As Integer
Dim i As Integer, j As Integer,
i = 1
j = n
Do While i <= j
found = Fix((i + j) / 2)
If Key = a(found) Then
Search = found
Exit Function
ElseIf      Then
j = found - 1
Else
i = found + 1
End If
Loop
Search = 0
End Function

同类题5

酒店房间管理问题:某酒店房间(房间数小于1000)编号按1、2、3……连续编号,客房经理对没有入住的房间使用如下方法来登记管理。连续的空房间,登记第一个房间的编号和连续的空房间数,比如空房间1,2,6,7,8,10,则登记3条记录,分别为1_2,6_3,10_1。某旅客如果退房,需要把这个房间号也登记进去,共有4中情况需要处理:
(1)上靠:若退的房间号为3,则原来登记的记录变为1_3,6_3,10_1;
(2)下靠:若退的房间号为5,则原来登记的记录变为1_2,5_4,10_1;
(3)上下靠:若退的房间号为9,则原来登记的记录变为1_2,6_5;
(4)上下都不靠:若退的房间号为4,则原来登记的记录变为1_2,4_1,6_3,10_1
根据上述规则,小明编写了相应的VB程序,程序启动时读入空房间数据,并在列表框List1中显示,在文本框Text1中输入退房号,单击“退房”按钮后更新列表框List1中的数据。
程序界面如下图所示,请回答下列问题:

(1)当前登记的记录有3条,分别为2_3,6_2,9_4。某旅客退掉8号房间,则登记的记录将变为________。
第二部分通用技术(共50分)
(2)实现上述功能的VB程序如下,请将划线处的代码补充完整。
Const n=1000
Dim a(0 To n)As Integer a(i)保存第i条记录的开始房间号
Dim b(0 To n)As Integer b(i)保存第i条记录的房间数
Dim c As Integer, k As Integer, sp As Integer k为原始记录数
Private Sub Form_Load()
程序启动时从数据库中读取原始k条记录,依次存入a(1),b(1),a(2),b(2),…,a(k),b(k),代码略
为了程序处理方便,虚设下面两条记录
A(0)=0:b(0)=0:sp=k+1:a(sp )=1000:b(sp)=0
End Sub
Private Sub Command1_Click()

Dim i As Integer, j As Integer

c=Val(Text1.Text)

i=1

Do While a(i)<c

i=i+1

Loop

i=i-1

以下处理退房登记问题
Ifa(i)+b(i)=c Then
If a(i+1)=c+1Then   处理第3种情况

  __________

For j=i+1 To sp-1

a(j)=a(j+1):b(j)=b(j+1)
Next j
sp = sp-1

Else 处理第1种情况

b(i)=b(i)+1

End If

ElseIfc+1=a(i+1)Then 处理第2种情况

a(i+1)=c:b(i+1)=b(i+1)+1

Else 处理第4种情况

For j= ________

a(j)=a(j-1):b(j)=b(j-1)

Next j

a(i+1)=c:b(i+1)=1: ______

End If
List1.Clear
For i=1To sp-1

List1.Addltem"第"& CStr(i) &"条记录"&CStr(a(i))&"_"&CStr(b(i))

CStr函数的作用是将数字转成字符串

Next i

End Sub