组卷题库 > 高中信息技术试卷库

浙江省嘉兴市2018-2019学年高二下学期信息技术期末考试试题二

作者UID:7189882
日期: 2024-12-22
期末考试
选择题(本大题共12小题,每小题2分,共24分。)
非选择题(本大题共4小题,4+8+7+7,共26分)
编写VB程序,功能为:单击“发牌”按钮“Command1”后,从一副扑克牌(不包括大王、小王、J、Q、K、A)中随机抽取5张牌,牌的花色(♠♥♣♦)忽略,显示在列表框“List1”中。如果这5张牌由一个对子和一个顺子(3张牌连续)组成,则在标签“Label1”中显示“运气不错:)”,否则显示“运气一般:|”。程序运行界面如图所示。

实现上述功能的VB程序如下:

Private Sub Command1_Click()

  List1.Clear

  Dim five(1 To 5) As Integer

  Dim i As Integer, j As Integer, k As Integer

  Dim p As Integer, find_pair As Boolean

  '随机抽取5张牌,将牌的点数存储在数组five中,并在List1中显示。代码略

  i = 5: p = 1: find_pair = False

  Do While i>= 2

    j=p

    Do While j <= i - 1

      If five(j) > five(j + 1) Then

        t = five(j): five(j) = five(j + 1): five(j + 1) = t

      ElseIf five(j) = five(j + 1) And Not find_pair Then

        t = five(1): five(1) = five(j): five(j) = t

        t = five(2): five(2) = five(j + 1): five(j + 1) = t

        find_pair = True

        i = i + 1

        p =_____________

        Exit Do

      End If

      j = j + 1

    Loop 

    i = i - 1

  Loop

  k = 0

  For i = 3 To 4

    If  Then k = k + 1

  Next i

  If five(1) = five(2) And k = 2 Then

    Label1.Caption = "运气不错:)"

  Else

    Label1.Caption = "运气一般:|"

  End If

End Sub

请回答下列问题:

奇数n阶幻方是指由自然数1、2、…、n2组成的n×n的方阵,其中每个元素值都不相等,且每行、每列与对角线上的n个元素之和都相等。

N阶幻方的构造方法有很多种,下面是“右上方填数法”的算法:

⑴将1放在第一行中间一列;

⑵2~n2依次填在上一个数的右上方位置(即行减1列加1):

若上一个数的行数为1时,则当前数的行数为n;

若上一个数的列数为n时,则当前数的列数为1。

⑶如果按上面规则确定的位置上已有数,则把当前数放在上一个数的下面。

例如当n为3时,如图a所示,1在第1行第2列,则2的位置为第3行第3列;

再如3在第2行第1列,则4的位置应为第1行第2列,但该位置已有数,因此4就放在3所在位置的正下面。

“左上方填数法”的方法类似于“右上方填数法”,以3阶幻方为例,“右上方填数法”和“左上方填数法”所构造的幻方如下图a、图b所示。

图a 右上方填数法

图b 左上方填数法

小明采用“左上方填数法”的方法设计了如下程序。

Private Sub Command1_Click()

  Dim a(1 To 100) As Integer

  Dimx As Integer,y As Integer,x1 As Integer,y1 As Integer

  Dim n As Integer, s As Integer,pos As Integer, st As String

  n = Val(Text1.Text)

  For i = 1 To n * n

    a(i) = 0

  Next i

  s = 1

  x = 1

  y = (n + 1) \ 2

  a(y) = s

  Do While   ①  

    s = s + 1

    x1 = x: y1 = y

    x = x - 1

    y = y - 1

    If x < 1 Then x = n

    If y < 1 Then y = n

    If a((x - 1) * n + y) > 0 Then     ②  : y = y1

          ③  

    a(pos) = s

  Loop

  st = ""

  For i = 1 To n * n

    st = st + wid(a(i))

    If i Mod n = 0 Then

      List1.AddItem st

      st = ""

    End If

  Next i

End Sub

'自定义函数wid的功能是使数字在方阵对齐

Function wid(p As Integer) As String

  '代码省略

End Function

请回答下列问题:

试卷列表
教育网站链接