试题

试题 试卷

logo

题型:综合题 题类:常考题 难易度:困难

浙江省湖州市2018-2019学年高二下学期信息技术期末考试试卷

编写“矩形面积”程序,实现如下功能:按一定比例随机生成a(1)至a(100)数组元素的值:0或1(0多1少);将这100个数组元素,按行依次转化为10×10的二维阵列; 当数组元素的值为0 时显示成“□”,当数组元素的值为1时显示成“◆”,并在列表框 List1中输出。寻找阵列中,由“□”字符构造出的最大面积的矩形,在标签Label1中显示最大面积所占的单位数。程序运行界面如图所示。

实现上述功能的VB代码如下:

Dim a(1 To 100) As Integer Private Sub Command1_Click()

Dim i As Integer, s As Integer, smax As Integer ‘用于随机生成数据,并将阵列按规则在列表框中输出,该部分功能的代码略。

smax = 0

For i = 1 To 100

If a(i) = 0 Then s = search(i) If s > smax Then smax = s

Next i

Label1.Caption = "最大面积的矩形,占" + Str(smax) + "个单位。" End Sub

Function search(i As Integer) As Integer

Dim x As Integer, x1 As Integer, xend As Integer Dim y As Integer, y1 As Integer

Dim s As Integer

x = (i - 1) Mod 10 + 1   '起始列号 y = (i - 1) \ 10 + 1    '起始行号 x1 = x

y1 = y xend = 10

search = 0

Do While y1 <= 10

If a((y1 - 1) * 10 + x) = 1 Then Exit Do   '判断 x1 = x

Do While x1 <= xend

If a((y1 - 1) * 10 + x1) = 1 Then

x1 = x1 – 1   '改错

Else

x1 = x1 + 1

End If Loop

y1 = y1 + 1

s = (x1 - x) * (       )   '填空 If s > search Then search = s

Loop

End Function

请回答下列问题:

(1)、根据程序的运行界面,没有 Caption 属性的控件为类(单选,填字母: A .窗 体/ B .命令按钮/ C .列表框/ D .标签)。
(2)、程序代码中,去除“判断”处语句,是否会影响程序的结果(选填:是/否)。
(3)、程序代码中,“改错”处的语句有误,请改正。
(4)、程序代码中,将“填空”处的语句补充完整。
举一反三
某校学生会选举需要从学校数据库中随机抽取若干名学生作为监票人。该数据库文件名为school.mdb,其中数据表student存储有关学生学号(xuehao)、姓名(xingming)相关信息,括号内的内容为对应字段名。该程序编辑界面如图所示,相关对象名可参考标识图。

当主持人点击按钮“生成抽号”后,下方的标签会显示可抽取的学号姓名,一定时间后显示被抽取作为监票人的学号姓名。

'xxxss:学校学生数,kcq:可抽取

'xhxm:学号姓名,kcq:可抽取

Dim xxxss As Integer

Dim xhxm(3000) As String

Dim kcq(3000) As Boolean


'cq_Click:启用两个定时器

Private Sub cq_Click()

    cqxhxm.Enabled = True

    xskcqxhxm.Enabled = True

End Sub


Private Sub cz_Click()    '初始化数组kcq,使每个元素数据都处于可显示状态

  For i = 0 To xxxss - 1

    kcq(i) = True           '①

  Next i

End Sub


Private Sub xskcqxhxm_Timer()  '若数组kcq第x个元素处于可抽取状态,则显示数组xhxm第x个元素

    x = Int(Rnd * xxxss)

    If kcq(x) Then xhxmbq.text = kcq(x)     '②

End Sub


Private Sub Form_Load()  '从数据库中提取需要的学号姓名相关数据并初始化数组kcq

    Randomize

    xxxss = 0

    Dim conn As New ADODB.Connection,rs As New ADODB.Recordset

    Dim str_conn as String,str_sql As String

    str_conn = "driver=Microsoft access driver(*.mdb);DBQ="&app.path&"\school.mdb";

    conn.open str_conn

    str_sql = "select * from students"

    rs.open str_sql

    Do While Not rs.eof

      xxxss = xxxss + 1

      xhxm(xxxss) = rs.fields("xuehao")&rs.fields("xingming")

      rs.movenext

    Loop

    For i = 0 To xxxss - 1

      kcq(i) = True

    Next i

End Sub


Private Sub cqxhxm_Timer()    '决定抽取的学号姓名作为监票人

    xskcqxhxm.Enabled = False

    For i = 0 To xxxss - 1

        If xhxmbq.Caption = xhxm(i) Then kcq(i) = False

    Next i

    cqxhxm.Enabled = False

End Sub

①{#blank#}1{#/blank#} 

②{#blank#}2{#/blank#} 

返回首页

试题篮