试题

试题 试卷

logo

题型:综合题 题类:常考题 难易度:普通

浙江省高中信息技术 算法及VB语言表达基础同步练习

使用“字符洗牌”程序模拟扑克洗牌的操作,为了打乱牌序,把手上的扑克牌中间抽一部分放到最上面,完成一次洗牌(如字符串“1234ABCD”,若把中间的第3 个到第5个字符抽出并保持原来的顺序放到最前面,则一次“洗牌”操作后字符串变成“34A12BCD”),也可以把扑克牌分成上下两部分,把下面的部分放置到上面(如字符串“1234ABCD”,把第3 个字符到最后一个字符移到前面,变成“34ABCD12”),多次重复做这个动作,就能达到洗牌的目的,效果如图所示。

(1)、若要把窗体的标题名称由“Form1”改为“字符洗牌”,应改变窗体的属性。
(2)、完成上述功能的程序代码如下,请在划线处填入合适的代码。

Private Sub Command1_Click()

 Dim r As Integer, k1 As Integer, k2 As Integer

 Dim s As String, n As Integer

     ‘从文本框TxtIn 中获取字符串

 Randomize

 r = Int(Rnd() * 10) + 1    ‘随机生成洗牌次数

 n = Len(s)

 Do While r >= 1    ‘洗牌操作

  k1 = Int(Rnd() * (n - 2)) + 2

  k2 = Int(Rnd() * (n - k1 + 1)) + k1

  s = + Mid(s, 1, k1 - 1) + Mid(s, k2 + 1, n - k2)

  r = r - 1

 Loop

 = s       ‘输出结果

End Sub

(3)、若加框处的语句改为TxtOut.Text = Str(s),则运行程序时会发生的错误消息为

举一反三
【加试题】德国数学家哥德巴赫曾猜测:任何大于6的素数都可以分解成两个素数(素数对)的和。但有些偶数可以分解成多种素数对的和,如:10=3+7,10=5+5,即10可以分解成两种不同的素数对的和。

小敏编写了一个VB程序,用来求一个偶数(6到100之间)可能存在多少这样是素数岁(注:A+B与B+A认为是相同素数对,不重复统计),并把这些结果输出到一个列表框中,通过逻辑推理,小敏发现这些素数对都是奇数,所以她只需要验证奇数的素数对即可,运行界面如图所示,程序代码如下。但加框处代码有错误,请改正。

Dim IsPrime(100)As B00lean  ‘用来存储是否素数,True为素数,False为非素数

privatw Suh Command1_Click()

Dim x As Integer,y As Integer,i As Integer,num As Integer

Call Init              ‘调用Init函数

x=Val(Text1.Text)

y=x\2

num==0

For i==3 To y Step 2

If  Then                  ‘①

    num=num+1

    List1.AddItem Str(x)+“=”+Str(i)+“+”+Str(x-i)

End If

 Next i

Label2.Caption=“偶数”+Str(x)+“共有”+Str(num)+“个素数对。”

End Sub

Sub Init()           ‘初始化IsPrime数组的值

  Dim i As Integer.j As Integer,X As Integer

  For i=3 To 100 Step 2

    X=Int(Sqr(i))

    For  Step 2                ‘②

    If i Mod j=0 Then Exit For

    Next j

    If i>x Then IsPrime(i)-True Else IsPrime(i)=False

  Next i

End Sub

①处加框代码应该为{#blank#}1{#/blank#}。

②处加框代码应该为{#blank#}2{#/blank#}。

返回首页

试题篮