试题

试题 试卷

logo

题型:单选题 题类:常考题 难易度:普通

浙江省台州中学2018-2019学年高二上学期信息技术第二次统练试卷

下列属于正确VB表达式的是(  )
A、a+2* |b-c | B、b2+1 C、2x-1 D、v0+a·t
举一反三
从产品库里面的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

【加试题】小马正在看一本侦探小说,想了解其中一段案情的解析,却发现了一串字符“#2017—2018go:)”,并附有文字提示:①答案所在的页码是这串字符中最大数字字串(若值相同则取后面的数字字串)的起始位置*10+结束位置②答案所在行号是最大数值除以100的余数。例如:“#17a18#”字符串中,最大数字字串“18”。起始位置是5,结束位置是6,其页码是56,行号是18。小马编写了一个VB程序帮他寻找答案,程序运行界面如图所示。在文Text2中输出页码,在Text3中输入行号。实现上述功能的VB程序代码如下,但加框处代码有错,请改正。

Private Sub Command1_Click()

  Dim s1 As String,s2 As String   

  Dim ch As String,ch2 As String   

  Dim max As Double   

  Dim n As Integer,page As Integer  

  Dim i As Integer,j As Integer

  s1=Text1.Text:s2=””

  n=Len(s1)

  i=1:max=0

  Do While i<=n

    ch=Mid(s1,i,1)

    If ch>=“0”And ch<=“9”Then

        j=i

        ch2=Mid(s1,i,1)

        Do While ch2>=“0”And ch2<=“9”

           j=j+1

           ch2=Mid(s1,j, 1)

        Loop

        s2=    ’(1)

        If   Then    ’(2)

            max=Val(s2)

            page=i*10+j-1

            Text2.Text=Str(page)

            Text3.Text=Str(max Mod l00)

        End If

        i=j

      End If

      i=i+1

    Loop

  End Sub

返回首页

试题篮