题库 高中信息

题干

编写VB程序,实现如下功能:在文本框Text1中输入十进制数,单击“转换”按钮Command1,在列表框List1中输出对应的十六进制数,运行界面如图a所示,程序代码如下。
 
图a     图b
(1)在设计程序界面时,应使用图b所示的“控件工具箱”中的 ________(填写相应编号)添加列表框。
(2)为实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()
Const code = "0123456789ABCDEF"
Dim s1 As String, s As String, t As String
Dim a As Integer
Dim f As Boolean
Dim x As Long
t = Text1.Text
a = Len(t)
__________
For i = 1 To a
c = Mid(t, i, 1)
If c < "0" Or c > "9" Then f = False
Next i
If f Then
x = Val(t)
s = ""
Do While x > 0
y = x Mod 16
x = x \ 16
s1 = Mid(code, y + 1, 1)
_________
Loop
List1.AddItem "(" & Text1.Text & ")10" & "-->(" & s & ")16"
Else
List1.AddItem "(" & Text1.Text & ")10" & "-->不是十进制数"
End If
End Sub
(3)若在文本框Text1中输入“63”,则单击“转换”按钮后s的值为:________。
上一题 下一题 0.99难度 填空题 更新时间:2019-02-28 02:40:04

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

同类题4

某数据加密方法描述如下:
(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”,加密后的密文可能无法解密,原因是

同类题5

地球上任意位置可以用纬度、经度描述,纬度区间是-90,90,经度区间是-180,180。如:浙江省绍兴市越城区鲁迅故里的纬度是29.9924099,经度为120.58552218。为表达位置间的邻近关系,引入了地理区域编码,某算法的核心思想如下:
•将地理上某点经纬度分别转换成二进制编码。例如,对于给定纬度lat(299924099),编码规则为:
•将区间-90,90二分为-90,0),0,90,称为左、右区间,1at属于右区间0,90,标记为1;
•将区间0,90二分为0,45),45,90,lat属于左区间0,45),标记为0;
•重复上述过程,不断划分区间,lat属于左区间则记录0,属于右区间则记录1。直到达到指定编码长度 length(一般为5的倍数)为止类似地,可对经度lng(120.58552218进行二进制编码。
·Base32编码合成为地理区域字符串。以编码长度 length=10为例,如前述计算得到,鲁迅故里的纬度编码为10101 01010,经度编码为11010 10110。地理区域字符串生成规则:
•生成新串:奇数位放经度,偶数位放纬度,将两串编码组合:110110 11001 10011 01100;
•分组转换:将11100 11001 10011 01100每5位一组转成1个十进制整数,分别对应为28,25,19,12;
•Base32编码:使用数字0~9、小写字母(去掉字母a,i,1,o)这32个字符进行Base32编码(见下表)。十进制整数28,25,19,12对应的编码组合就是“wtmd”,即为该位置的地理区域字符串。
  
(1)规定编码长度 length为5,经度lng为120.125 082 58,则经度lng的二进制编码为__________。
(2)小沈根据上述描述,设计了一个“利奇马”台风中心途经经纬度转换为地理区域字符串的算法。该算法VB程序实现如下,请在划线处填入合适的代码
Const m=48, length=20'纬度、经度二进制编码长度均为 length
Dim a(1 To 2.* m)As Double
Dim b(1 To m) As string
′读取m个时刻台风中心的经纬度数据并存入数组a,代码略'a(1),a(2)为台风在时刻1的纬度、经度,a(3),a(4)为台风在时刻2的纬度和经度,......
′b(1)保存台风在时刻1的地理区域字符串,b(2)保存台风在时刻2的地理区域字符串,......
Private Sub Command1 _ Click()

′1at为纬度、1ng为经度,code为地理区域编码

Dim lat As double, Ing As Double, code As String

Dim strLat As String, strLng As String, s As String

Dim i As integer, j As Integer, n As Integer

Const base32="0123456789bcdefghjkmnpqrstuvwxyz"

For i=1 To m

lat=a(2*i-1)
Ing=a(2*i)
S=""
strLat= DoubleToBits (lat,—90,90)     ′纬度转换为二进制
编码
strLng=DoubleToBits(lng,—180,180)    ′经度转换为二进制
编码
For j=1 To length
s=________  ′将两串二进制编码
组合
Next j
n=0: code=""
For j=1 To Len(s)
___________
If j Mod 5=0 Then
code= code+Mid(base32,n+1,1)
n=0
End If
Next j
b(i)=code
Next i
′输出地理区域编码,代码略
End sub
′函数 Doubletobits根据指定的区间 lower,upper,计算 value的二进制编码
Function Double ToBits( value As Double,lower As Double, upper As Double) As String

Dim ret As String, i As Integer, middle As Double

ret="":i=1: middle=0

Do While i<= length

middle=(upper+lower)/2

If_________Then

lower=middle
ret=ret十"1"

Else

upper=middle
ret t+"0
End If
i=i+1
Loop
DoubleToBits=ret
End function