试题

试题 试卷

logo

题型:综合题 题类:常考题 难易度:普通

浙江省高中信息技术——VB基础知识

小明为了将十进制数转化为k进制数(k值范围在2到16之间)设计如下程序:在文本框Text1中输入一个十进制数,在文本框Text2中输入整数k,单击“运行”按钮 Command1,程序将十进制数转化为k进制数,并在标签Label1中输出结果。请回答下列问题:

(1)、程序窗体中“运行”所用的控件是 (A . /B . /C . /D .
(2)、实现上述功能的VB程序如下,请在划线处填入合适的代码。

 Private Sub Command1 _Click( )

 Dim As Integer, k As Integer, r As Integer

 Dim s As String, c As String

    d =Val(Text1. Text)

    k =Val(Text2.Text)

    s = “”

    Do While d > 0

        r=d Mod k

        If r > = 10 Then

            c = mid (“ABCDEF”,   ①   ,1)

        Else

            c= str(r)

        End If

        s=   ②    

        d =d \k

    Loop

Label1. Caption= “结果为: “+s

End Sub

 ② 

(3)、运行该程序,在文本框Text1中输入“28”,文本框Text2中输入“16”,单击“运行”按钮,则 Label1显示的内容是
举一反三
从产品库里面的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

返回首页

试题篮