试题

试题 试卷

logo

题型:综合题 题类:模拟题 难易度:困难

2017年浙江省高考信息技术模拟试卷(二)

有一种压缩算法,基本原理是:特殊字符+重复次数+字符。
比如有文本字符串:A A A A A B C C C C B C C C,编码后得到:B B 5 A B B 4 C B B 3 C。编码串的最开始说明特殊字符B,以后B后面跟着的数字就表示出重复的次数。编程实现将从Text1输入的一个字符串,点压缩按钮后用上述方法压缩,压缩后的编码在Text2中输出,text3中输入特殊字符。压缩算法:
a)       给压缩串添加开关的特殊字符
b)      逐个判断输入字符串的字符(当前的字符与后一个比较),如果两个字符不同,则连到了压缩串中,如果有连续的重复字符则计数n+1
c)       最后一组重复字符或单个字符再连到压缩串中。
u  连入压缩串方法:单个的直接连入,有重复的连入特殊字符开头+数字+重复的字符

图1
程序如下:
Private Sub Command1_Click()
Dim src As String, t As String   ‘src保存输入的字符串
Dim desc As String         ‘desc保存压缩后的字符串
Dim c As String  ‘c保存特殊字符
Dim n As Integer  ‘n用来记连续重复字符个数
src = Text1.Text
c = Text3.Text
n = 0
desc =   ①  
For i = 1 To       ②  
    n = n + 1
    t = Mid(src, i, 1)
    If t <>     ③     Then
         desc = desc & zipstring(n, c, t)
         n = 0
    End If
Next i
Text2.Text = desc & zipstring(n, c,     ④   )
End Sub
Private Function zipstring(n As Integer, c As String, sr As String) As String
         If n <= 1 Then
            zipstring = sr
         Else
            zipstring = c & Trim(Str(n)) & sr
         End If
End Function



举一反三
如果一个自然数的每个质因数都至少是二重的(即每个质因数乘方次数都大于或等于2),如整数72=2^3*3^2(即72=2*2*2*3*3),判断2~72所有数中全部质因子的乘方次数,找出质因子“2”乘方次数为3;质因子“3”乘方次数为2,不是72的质因子,那么这个自然数称为“漂亮数”。小李编写了一个验证“漂亮数”的VB程序。在文本框输入小于1 000的正整数,单击“检查”按钮在列表框中显示该数的质因子及该因子乘方数,在标签Label1中显示判断结果,在标签Label4中显示所有质因数的分解过程。程序运行界面如下图所示。

实现上述功能的VB代码如下,但加框处代码有错,请改正。

Private Sub Command1_Click()

Dim a(1 To 999) As Integer

Dim n As Integer

Dim s As String

For i=1 To 999

 a(i)=0

Next i

n=Val(Text1.Text)

s =“”

Do While n<>1     ‘分解质因子过程并统计质因子出现次数

For i = 2 To n

 Do While n Mod i = 0

  s = s&“  ”&i

  a(i)= a(i)+1

       ‘①

 Loop

Next i

Loop

Label4.Caption =“质因子分解过程:” +s

For j = 2 To 999     ‘判断是不是漂亮数

 If Then      ‘②

  Label1.Caption = “不是漂亮数”

  Exit For

 Else

  Label1.Caption =“漂亮数”

  End If

Next j

For j = 2 To 999     ‘在列表框输出质因数及对应的乘方数

 If a(j)>0 Then

  List1.Additem Str(j)+“ ”+Str(a(j))

 End If

Next j

End Sub

①{#blank#}1{#/blank#} ②{#blank#}2{#/blank#} 

返回首页

试题篮