试题

试题 试卷

logo

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

浙江省2017年选考信息技术8月份联考试卷(A卷)

【加试题】小王同学为了研究浙江省湖州地区空气质量与天气、气温、风向等的关联性问题,通过网络获取了2016-06-01至2017-05-31这365天的有关信息,并将数据整理至数据文件data.accdb中。其中huzhou数据表视图及设计视图部分界面如图所示。

小王编写了VB程序,具体功能:点击“执行”按钮Command1,在文本框Text1中显示空气质量为优(AQI空气质量指数≤50)的最长持续天数(连续为优),并在列表List1中依次显示对应天数的各项数据。

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

  Dim rq(1 To 365)As String       ‘存放日期

  Dim aqi(1 To 365)As Integer     ‘存放AQl空气质量指数

  Dim tq(1 To 365)As String       ‘存放天气

  Dim qw(1 To 365)As String      ‘存放气温

  Dim fxfl(1 To 365)As String      ‘存放风向及风力

  Private Sub Form_Load( )

    ‘本过程从数据中按2016-06-01至2017-05-31依次读取各项数据,并分别存储在对应的数组中。代码略 。

  Private Sub Command1_Click( )

       Dim n As Integer,m As Integer,i As Integer,k As Integer

  Dim s As String

       n=0:m=0:k=0

       For i=1 To 365

           If aqi(i)<=50 Then

               n=n+1

          Else

               If n>m Then

                  m=n

                  k=i-1

               End If

               n=0

          End If

      Next i

      If n>m Then

         m=n

             ①                

      End If

      For i=      ②        To k    

         s=rq(i)                       ‘日期长度均为10

         s=s&Space(7-Len(Str(aqi(i)))) & Str(aqi(i))    ‘AQI为1~3个数字

         s=s&Space(4)&tq(i)                  ‘天气为1-4个中文字符

         s=s&Space(2*(6-Len(tq(i))))&qw(i)    ‘气温长度均为9

         s=s&Space(4)&fxfl(i)        ‘风向及风力长度不等

List1.AddItem s

      Next i

      Text1.Text=Str(m)

End Sub

(1)、按照本程序的功能,在列表框List1中输出数据,当天气为“阴”时,天气与气温之间将输出(填数字)个空格。(说明:表达式Space(n)表示n个空格。)

(2)、请在画线处填入合适的代码:

举一反三
从产品库里面的product数据表中读出产品信息(ID,类别,产品名,图片路径,格式5个字段)。已知product表中已经按ID排序,读出后的数据直接连接成字符串在List1中显示,现在希望能不改变原有列表顺序的情况下,在list2中显示按产品名排序的结果。一般的方法是按产品名建立索引(不存在重复的产品名)。基本思路如下:

⑴用一个数组product()来存放产品名。

⑵用另一个数组a()来存放产品名数据的下标(已经按产品名排序的)。

按产品名排序的方法是:取第一个产品名product(0),与后面所有的产品名比较一遍,如果有比第一个产品名大的,M+1,M用来计该产品名的位次。一轮结束后在a(M)元素记下第一个产品名的下标0。然后再取product(1)与其它所有产品名比较一遍,其余同第一个产品名。依次完成每一个产品名位次的计算并记录在a()数组中。

⑶最后按a()数组指定的位置取出list1中的项添加到list2中。

程序代码如下,请补充完整下面的空缺。

Dim products(100) As String  '存放产品名的数组

Dim num As Integer          '从数据库中读出的记录数

Private Sub Command1_Click()

Dim a(100) As Integer           '存放按产品名索引的产品数组下标

Dim i As Integer, j As Integer, m As Integer    'm比当前产品名大的产品名个数

For i = 0 To 100

    a(i) = 0

Next i

For i = 0 To num

   m = 0

   For j = {#blank#}1{#/blank#} 

     If i <> j And products(i) > products(j) Then m = m + 1

   Next j

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

Next i

For i = 1 To num

 List2.AddItem  {#blank#}3{#/blank#}     '按a数组的索引从list1中取出项添加到list2

Next i

End Sub

Private Sub Form_Load()

Dim conn As New ADODB.Connection

Dim rs As New ADODB.Recordset

Dim s As String, i As Integer

conn.ConnectionString = "provider=microsoft.ace.oledB.12.0;data source=" & App.Path & "\产品库.accdb "

conn.Open

Set rs.ActiveConnection = conn

rs.Open "select * from product"

num = 0

Do While Not rs.EOF And num <= 100

    s = ""

    For i = 1 To 5

     products(num) = rs.Fields(2)           '读出当前记录的产品名保存到products数组

     s = s & rs.Fields(i - 1) & " ,"        '将一条记录的各字段内容连接成字符串

    Next i

    List1.AddItem s

    {#blank#}4{#/blank#}

    num = num + 1

 Loop

 num = num - 1

 rs.Close

 conn.Close

 Set rs = Nothing

 Set conn = Nothing

End Sub

返回首页

试题篮