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

浙江省“七彩阳光”新高考研究联盟2019-2020学年高三上学期信息技术期中联考试题

作者UID:7189882
日期: 2024-09-20
期中考试
选择题(本大题共12小题,每小题2分,共24分。)
非选择题(本大题共4小题,4+8+7+7,共26分)
某学校要进行年级优秀生表彰,需要对n人的优秀生单独排位置,每行m人。排队方阵规则:第1行从左向右坐,第2行从右向左坐,第3行从左向右坐,第4行从右向左坐……不断重复。最后一行如果人数不满m人,一律从左往右坐。VB程序功能如下:Text1输入m的值,确定每行坐的人数,单击按钮后,在List2列表框中显每位同学的位置,在List3列表框中显示每位同学的4位数位置编号(行号+列号),如下图所示。实现上述功能的VB代码如下:

依据上述描述设计如下VB程序:

Dim xh(1 To 100) As Integer , xm(1 To 100) As String, cj(1 To 100) As Integer Dim n As Integer, m As Integer

Private Sub Form_Load()

'本过程从数据库依次读取n位同学的序号、姓名及成绩,然后按成绩降序排序,将学生序号、姓名成绩存储在数组xh、xm、cj中,结果显示在List1中,

End Sub

'显示每位同学的位置

Private Sub Command1_Click()

  Dim wz As String

  m=Val(Text1.Text)

  For i = 1 To n \ m

    For j = 1 To m

      If   ①  Then

        wz = wz + xm((i - 1) * m + j) + " "

      Else

        wz=xm((i-1) * m + j)+" "+wz

      End If

    Next j

      List2.AddItem wz

      wz =" "

  Next i

  If n Mod m <> 0 Then

    For i= To n      ‘加框处改错

    wz = wz + xm(i) + " "

    Next i

    List2.AddItem wz

  End If

End Sub

'显示每位同学的位置编号

Private Sub Command2_Click()

  Dim zu As Integer

  Dim ha As String, hb As String

  List3.AddItem "序号" & vbTab & "姓名" & vbTab & "位置"   'vbTab 用于字符对齐

  For i = 1 To n

    zu =    ②  

    ha = Trim(str(zu))

    If Len(ha) = 1 Then ha = "0" + ha

    If zu Mod 2 = 0 And zu <= n \ m

      Then hb =    ③  

    Else

      hb = Str(i - m * (zu - 1))

    End If

    hb = Trim(str(hb))

    'Trim 函数功能是去除字符空格

    If Len(hb) = 1 Then hb = "0" + hb

    List3.AddItem str(i) & vbTab & xm(i) & vbTab+ ha + hb

  Next i

End Sub

请回答下列问题:

由n行数字组成的数字三角形如图所示。设计一个算法,对于由n行数字组成的数字三角形(数字范围[1,50],计算从三角形的顶至底的路径经过的数字和的最大值,每一步可以从当前点走到左下方的点也可以走到右下方的点。

寻求路径最大值的算法设计如下:

按三角形的行划分,若有n行,则有n-1个步骤

①从底层开始,本身数即为最大值

②倒数第二层的计算取决于底层的数据:

12+6=18,13+14=27,24+15=39,24+8=32;

③倒数第三层的计算取决于底二层的数据:

27+12=39,39+7=46,39+26=65;

④倒数第四层的计算取决于底三层的数据:

46+11=57,65+8=73;

④最后的路径:13—8—26—15—24其和为86。

根据上述算法描述,设计程序界面如下图所示,点击“生成金字塔”按钮,在列表框中生成数字金字塔,点击“寻求路径最大值”按钮,在文本框text1中输出最大值。

依据上述描述设计如下VB程序:

Const n = 5

Dim sx As String

Dim i, j, k, a(1 To 100) As Integer Private Sub Command1_Click() List1.Clear

For i = 1 To n For j = 1 To i

    ①  

sx = sx + Str(a((i - 1) * n + j)) Next j

For k = n To i Step -1 sx = " " + sx

Next k List1.AddItem sx sx = ""

Next i End Sub

Private Sub Command2_Click() For i = n To 1 Step -1

For j = 2 To i

If   ②  Then

a((i - 2) * n + j - 1) = a((i - 1) * n + j - 1) + a((i - 2) * n + j - 1)

Else

a((i - 2) * n + j - 1) = a((i - 1) * n + j) + a((i - 2) * n + j - 1)

End If Next j

Next i

    ③  

End Sub

请回答下列问题:

试卷列表
教育网站链接