当前位置: 高中信息技术 / 综合题
  • 1. (2019·上海模拟) 在一次晚会上,一位魔术师掏出一叠扑克牌,取出其中13张黑桃,预先洗好牌,把牌面朝下,对观众说:“我不看牌,只数一数就能知道每张牌是什么?”魔术师口中念1,将第一张牌翻过来看正好是A;魔术师将黑桃A放到桌子上,继续数手里的余牌,第二次数1,2将第一张牌放到这叠牌的下面,将第二张牌翻开,正好是黑桃2,也把它放在桌子上。第三次数1,2,3,前面两张牌放到这叠牌的下面,取出第三张牌,正好是黑桃3,这样依次将13张牌翻出,准确无误。现在的问题是,魔术师手里牌的原始顺序是怎么样的呢?运行结果如下图所示。

    代码如下:

    Private Sub Command1_Click()

        Dim a(13), i, j, n As Integer     '定义变量

        Form1.Cls

        i = 1      '将变量i的值为1

        Do While i <= 13      '当i的值小于等于13时循环

            Do While True

                j = j + 1

                If j > 13 Then     '当j的值大于13时,将其重置为1

                If a(j) = 0 Then n = n + 1     '如果该位置元素为0,则n加1

                If n = i Then

                         '将i的值放入数组指定的位置中

                    n = 0       ' 计数器重新为0

                    Exit Do

                End If

            Loop

            i =      '计数器i加1

        Loop

        Label1.Caption = "原来牌的顺序是:"

        For k = 1 To 13

            Label2.Caption = Label2.Caption +   '输出扑克牌的原有顺序

        Next k

    End Sub

    在画线处填入适当的语句或表达式,将程序补充完整。

微信扫码预览、分享更方便