常量、变量及变量的赋值 知识点题库

在VB中,若要把窗体对象form1的标题文字改为“hello”,以下语句能实现的是(  )
A . form.caption=″hello″ B . form1.Text=″hello″ C . form1.caption=″hello″ D . ″hello″=form1.caption
编写VB程序代码,实现如下功能:在文本框Text1中输入金额(整数)后,点击“转换”按钮Command1,则在文本框Text2中显示该金额的大写,程序运行界面如下图所示:

  1. (1) 若要将按钮上的文本修改为“转换”,则应修改Command1对象的 属性
  2. (2) 为了实现以上程序功能,使程序正常运行,请完善以下两处代码。

    Private Sub Command1_Click()

    Dim dx As String, dw As String

    Dim st As String, ch As Integer

    Dim i ,n As Integer

    dx = "零壹贰叁肆伍陆柒捌玖" 

    dw = "亿仟佰拾萬仟佰拾圆" 

    st = Text1.Text : n = Len(st)

    If  n > 9 Then

        Text2.Text = "输入的数据超出所能转换的范围"

    Else

        For i = 1 To n          

           ch =    ①   

           s = s + Mid(dx, ch + 1, 1) + Mid(dw,  ②   , 1)

        Next i

        Text2.Text = s + "整"

    End If

    End Sub

    以上程序段运行时,为了实现上述功能,划线处应填入的代码分别为:

    ; ②

  3. (3) 由上述算法可知,若在文本框Text1中输入“12”,则文本框Text3显示的结果为
有如下程序:

Private Sub Command1_Click()

  Dim a(5) as Integer

  Dim n as Integer, i as Integer

  n = Val(Text1.Text)

  i = 0

  a(1) = 1

  a(2) = 1

  For i = 3 To n

    a(i) = a(i-1) + a(i-2)

  Next i

  Label1.Caption = a(i)

End Sub

若在Text1中输入5,则点击按钮后的运行结果为(  )

A . Label1中输出5 B . Label1中输出10 C . 报“下标越界”错误 D . Label1中无内容
编写VB趣味程序“计算厚道指数”,实现如下功能:在文本框Text1中输入姓名,单击“试一试”按钮Command1,在列表框List1依次求解并显示姓名中的每一个字符的ASCII码,并按程序中给定方式进行运算,得出厚道指数。运行界面如图所示,程序代码如下。

  1. (1) 为实现上述功能,请在划线处填入合适的代码。

    Private Sub Command1_Click()

    Dim s As String,c As String

    Dim n As Integer,k As Integer 

    s = Text1.Text

    List1.Clear

    List1.AddItem ("开始分解姓名" + s + " ,计算内码:")

    For i = 1 To

    c = mid(s , i , 1 )

    k = Asc(c)

    List1.AddItem (c + " 十进制ASCII值:" + Str(k))

    n = (n + k) Mod 50

    n = n + 50 -i

    Label2.Caption = Str(n)

    End Sub

  2. (2) 程序中的代码“List1.AddItem ”的“AddItem”是。(单选,填字母:A .对象名/B .属性名/C .事件名/ D .方法名)
  3. (3) 若在文本框中输入姓名是“jam”这3个字符,点击“试一试”按钮,在label2上显示的“厚道指数”值为
火柴游戏:有n根火柴,第1次取1根,第2次取2根,第i次取i根,当剩余火柴数为0时,不用添加火柴(即k=0),游戏结束。如果剩余火柴数不为0,但不够下一次取,此时添加k(k≥1)根火柴,在剩余火柴中再从1根开始取,直到能取完为止,求k的最小值。

例如:n=3时,第1次取1根,第2次取2根,此时正好取完,无须添加火柴,k=0;

例如:n=8时,第1次取1根,第2次取2根,第3次取3根,第4次要取4根,但剩余2根不够取。则加上1根,剩余3根,再从1根开始取,即第4次取1根,第5次取2根,剩余火柴为0,游戏结束,得k=1。

又如:n=4时,第1次取1根,第2次取2根,第3次不够取,若加上1根,剩余2根,再从1根开始取,第3次取1根,剩余1根不够第4次取,再加1根,又是剩余2根,显然加1根永远不可能取完。所以改用每次加2根,第1次取1根,第2次取2根,第3次不够取,添加2根,第3次取1根,第4次取2根,恰好能取完,得k=2。

编写一个VB程序可实现上述功能:在文本框Text1中输入火柴数量,单击“计算”按钮,在文本框Text2中显示最少添加数量,程序运行界面如下图所示:

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

Private Sub ok_Click()

Dim a(1 To 100) As Boolean, n As Integer, k As Integer, i As Integer

n = Val(Text1.Text)

For i = 1 To 100

    a(i) = False

Next i

a(n) = True

Do While n <> 0

    i = 1

    Do While i <= n

             ①      

        i = i + 1

    Loop

    If n = 0 Then

        Text2.Text = Str(k)

    Else

        If k = 0 Then k = 1

        n = n + k

        If       ②      Then

            k = k + 1

            n = Val(Text1.Text)

        Else

            a(n) = True

        End If

    End If

Loop

End Sub

  1. (1) 由代码可知,“计算”按钮的对象名是
  2. (2) 程序加框处代码有错,请改正。
  3. (3) 请在划线处填入合适的代码。

     ② 

小李在探究将两段已按从小到大排序的数据连接后用冒泡排序思想再进行从小到大排序的情况,编写了一个VB程序,功能如下:在列表框List1中显示排序前数据(存储在数组c中),单击“排序”按钮Command1后,在列表框List2中显示排序后的数据。

  1. (1) 在设计如图a所示的程序界面时,应使用图b所示“控件工具箱”中的(填写相应编号)添加列表框List1。
  2. (2) 语句“Flag=True”放置在(单选,填字母:A/B/C)位置。
  3. (3) 程序代码中,加框处语句有错,请改正。
  4. (4) 在划线处补充完成程序代码。

    Const n1 = 6     ‘ 第1段已排序数据长度为n1

    Const r2 = 5     ‘ 第2段已排序数据长度为n2

    Dim c (1 To n1 + n2) As Integer     ‘ 数组c长度为n1+n2,依次存储第1、2段数据

    Private sub Command1_Click ( )

    ‘ 数组c依次存储两段已按从小到大排序的数据,并在列表框List1中显示’

    ‘ 代码略

    List2. Clear

    ‘ A位置

    For i = n1+1 To n1 + n2

       

    ‘B位置

        Do While j > 1 and Flag

        If         ①          Then

            t = c(j): c(j) = c(j-1): c(j-1) = t

    ‘ C位置

        Else

            Flag = False

        End If

                ②         

        Loop

    Next i

    For i = 1 To n1 + n2

        List2. AddItem c(i)

    Next i

    End sub

     ② 

小张为了处理2015年中国主要城市的GDP数据,他把2015年中国主要城市的GDP数据存储在数据库文件gdp. accdb中。他设计了一个 Visual Basic程序,程序运行效果如图所示。

在界面的左侧列表框List1中显示各城市GDP数值,单击“按人均GDP排序”按钮Command1,在右侧列表框List2中显示排序完成后的结果(按人均GDP值从高到低排序)。

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

  1. (1) 请在划线处填入合适的代码。

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

    Dim n As Integer, i As Integer, j As Integer, t As Long

    Dim ts As string

    Dim a (1 To 200) As Integer, c (1 To 200) As String

    Dim g (1 To 200) As Long, p (1 To 200) As Long

    Private Sub Form Load ( )

    conn ConnectionString = “Provider = Microsoft. ACE OLEDB.12.0; DataSource =“& App. Path &”\gdp. accdb”

    conn. Open

    Set rs ActiveConnection =     ①      

    rs. Open “SELECT * FROM dGDP”

    n = 0     ‘I处代码

    Do While Not rs EOF

      n = n+1

      a(n) = rs. Fields ("GDP排名"). Value

      c(n) = rs. Fields ("城市"). Value

      g(n) = rs Fields ("GDP"). Value

      p(n) = rs, Fields ("人均GDP"). Value

      List1 AddItem Str(a(n)) +“”+ c(n)+“”+Str(g(n)) +“”+Str(p(n))

      rs.MoveNext

    Loop

    rs. Close

    conn. Close

    Set rs = Nothing

    Set conn = Nothing

    End sub

    Private Sub Command1_Click ( )

      For i = 1 To n-1

        For j =   ②   To n

          If p(i) < p(j) Then

          t = a(i): a(i) = a(j): a(j) = t

          ts = c(i): c(i) = c(j): c(j) = ts

          t = g(i): g(i) = g(j): g(j)=t

          t = p(i): p(i) = p(j): p(j)=t

        End If

      Next j

    Next i

    List2. Clear

    For i =1 To n

      List2 AddItem Str(a(1))+” ”+c(i)+” “+ Str(g(1))+” ”+str(p(i))

    Next i

    End Sub

     ② 

  2. (2) 若I处代码n=0改为n=1程序运行结果将不正确,其原因是
生成0~9组成的10位随机密码,无重复数字出现的VB程序段如下:

s1=“0123456789”

n=Len(s1)

For i=1 To 10

    

    n=n-1

Next i

Text1.Text=s

方框中的代码由以下三部分组成:

①s=s+Mid(s1,x,1)

②x=Int(Rnd*n)+1

③s1=Mid(s1,1,x-1)+Mid(s1,x+1)

代码顺序正确的选项是(  )

A . ①②③ B . ③②① C . ②①③ D . ②③C
有如下VB程序段:

Private Sub Command1_Click()

Dim a( 1 To 6) As Integer, i As Integer

For i= 1 To 6 

  a(i) =Int(Rnd*5) *2+ 1

Next i

For i=2 To 6 Step 2

    a(i) =cha(a(i-1) , a(i) )

  Next i

End Sub

Function cha(x As Integer, y As Integer) As Integer

  Dim t As Integer

  If x<y Then

    t=x:x=y:y=t

    cha=y

  Else

  cha=x-1

  End If

EndFunction

执行该程序段后,在下列选项中,a(1)~a(6)各元素值可能的是(  )

A . 8,9,3,2,5,1 B . 7,6,5,5,3,1 C . 9,3,5,4,4,3 D . 7,3,1,0,5,4
有如下程序段:

Key = Val(Text1.Text)

i = 1:j = 9

Do While i <= j

 m = (i + j) \ 2

 If  Key <= a(m) Then j = m - 1 Else i = m + 1

Loop

数组元素a(1)到a(9)的值依次是“10,13,13,18,18,18,18,25,30”,文本框Text1中的内容为“18”。执行程序段后,变量j的值是(  )

A . 3 B . 4 C . 5 D . 6
有如下程序段:

s=”ABCDEFGH”
i=1

Do While i<=Len(s)

  If i Mod 2=0 then  

    s=Mid(s, i+1, len(s)-i) & Mid(s, 1, i-1)

  End if

   i=i+1

Loop

Text1.text=s

A . ACEG B . CDEFG C . CDEGH D . GHACD
有如下VB程序段:

i=6

Do While i>= 1

  t= Int(Rnd * 10)+ 1

  If t Mod 2=i Mod 2 Then a(i)=t: i=i-1

Loop

For i=1 To 2

  k=-1

  For j=1 To 5-i

    If a(j) * k>a(j+2) *k Then

      temp= a(i): a(j)=a(j+2): a(j+2)= temp

    End If

    k=-k

  Next j

Next i

执行该程序段后,数组元素a(1)到a(6)值可能是(    )

A . 9,2,9,6,1,8 B . 1,6,3,4,7,4 C . 5,4,3,2,7,8 D . 7,0,5,2,3,4
有如下 VB 程序段:

bottom = 7

i = 2

Do While i <= bottom - 1

  If i Mod 2=0 And a(i)=a(i-1)+a(i+1) Then

    For j = i To bottom - 1

      a(j) = a(j + 1)

    Next j

    bottom = bottom - 1

  End If

  i = i + 1

Loop

For i = 1 To bottom

  Text1.Text=Text1.Text+Str(a(i))

Next i

数组元素a(1)到a(7)的值依次为“26,94,68,42,69,27,132”。若该程序段执行后,文本框Text1中显示的内容是(  )

A . 26 42 27 132 B . 26 68 42 27 132 C . 26 42 69 27 132 D . 26 68 42 69 27 132
在python中,运行下列程序,正确的结果是(    )

s=0

for i in range (1,5):

    s=s+i

print("i=",i,"s=",s)

A . i=4  s=10 B . i=5  s=10 C . i=5  s=15 D . i=6  s=15
有如下VB程序段:

Dim a As Integer, b As Integer

a=Len("China")

b=a-2

If a Mod b=2 Then a=a^2 Else a=b^2

该程序段运行后,a的值为(  )

A . 3 B . 5 C . 9 D . 25
Python 定义私有变量的方法为。(    )
A . 使用 __private 关键字 B . 使用 public 关键字 C . 使用DEF定义变量名 D . 使用 __XX 定义变量名
Python表达式a=b中“=”表示
执行下列语句,输出的结果是(    )。

x,y = 1,2

x, y = y,x

print(x,y)

A . 1  1 B . 2  2 C . 2  1 D . 1  2
如果一个变量N未经定义就直接赋值即N=3.1415,则该变量的类型为(    )
A . Variant B . Single C . Double D . Integer
在Python程序中,已知X=2,Y=4,当执行语句Y+=X**3后,Y的值是(      )。
A . 12 B . 10 C . 16 D . 8