题库 高中信息

题干

设某汉字由7×7的0、1点阵图案组成。依照以下规则生成压缩码:连续一组数值,从汉字点阵图案的第一行第一个符号开始计算,按书写顺序由左到右,从上到下。压缩码第一个数表示起始的数字(例如0),第二个数表示连续有几个0,第三个数表示接下来连续有几个1,第四个数表示接下来连续有几个0,第五个数表示接下来连续有几个1,以此类推……

例如,以下汉字点阵图案:
0001000
0001000
0001111
0001000
0001000
0001000
1111111
对应的压缩码是031616431616137(第一个数是c(0或者1),表示一开始时的数字为0或1)。
(1)请将程序代码补充完整。
Private Sub Command1_Click()
Dim code As String, c As Integer, res As String,k As Integer
code=Text1.Text
k=0
res=""
c=Val(Mid(code,1,1))
For i=2 To Len(code)
For j=1 To _____________   '①
res=res+Str(c)
k=k+1
If k=7 Then
List1.AddItem res
k=0
res=""
End If
Next j
_______________   '②
Next i
End Sub
(2)现给出如下点阵图:

则压缩码为_________________________________。
上一题 下一题 0.99难度 填空题 更新时间:2019-05-22 04:40:25

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

同类题1

小王设计“模拟撤销”程序,需要用一个“历史记录”,“历史记录”是在对字符串s进行插入或删除时,将每步操作信息依次存储得到的,操作信息由操作符(“+”表示插入,“-”表示删除)、操作位置和操作字符串(只包含英文字母)构成,例如,“+23abc”表示在字符串s第23个位插入了“abc”,“模拟撤销”过程按照“历史记录”的逆序进行,将字符串s的内容恢复到初始状态。对字符串“Book”的操作与撤销过程,如下图所示。

小王编写的“模拟撤销”VB程序如下,文本框 Text1中的内容是撤销前字符串,文本概Text2中的内容是历史记录,单击“撤销”按钮Command1后,在标签Label1中显示撤销过程,程序运行界面如由下图所示。
 
(1)实观上述功能的VB程序如下,在程序中出现的对象没有Caption属性的是______ 。(选填,填字码:
A.Label1  /B.Command1  /C.Text1和Text2)
(2)请在划线处填入合适代码。
Private Sub Command1_Click()
Dim s As String, t As String, ch As String
Dim c As String, num As String, ss As String
Dim n As Integer, i As Integer
s = Text1.Text: t = Text2.Text
c = "": num = "": ss = s
For i = Len(t) To 1 Step -1
___________________   
If ch >= "a" And ch <= "z" Or ch >= "A" And ch = "Z" Then
c = ch + c
ElseIf ch >= "0" And ch <= "9" Then
num = ch + num
Else
n = Val(num)
If ch = "-" Then
s = Mid(s, 1, n - 1) + ____________________________  
Else
s = Mid(s, 1, n - 1) + Mid(s, n + Len(c), Len(s) - n - Len(c) + 1)
End If
ss = ss + "→" + s
c = "": num = ""
End If
Next i
Label1.Caption = ss
End Sub
(3)运行该程序,若文本框Text1中的内容是"April",文本框Text2中的内容是”-3p+3ri-6e”,单击撤销按钮,For循环语句执行完成后,字符串s的值是_____________。

同类题2

   (加试题)某校秋季运动会共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

同类题4

酒店房间管理问题:某酒店房间(房间数小于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

同类题5

(加试题)编写一个成绩查询程序,输入要查找的分数,输出该分数的名次及同分人数,其算法是:用数组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