VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > VB.net教程 >
  • vb.net教程之《VB.NET程序设计》作业二

《VB.NET程序设计》作业二
一、   单项选择题
1.在Visual Studio.NET的集成开发环境中,下面不属于该环境编程语言的是        。
A.VB            B.C++          C.Pascal           D.J#
2.在VB.NET中,在窗体上显示控件的文本,用          属性设置。
A.Text           B.Name         C.Caption         D.Image
3.对于窗体,可改变窗体的边框性质的属性是        。
A.MaxButton       B.FormBorderStyle         C.Name        D.Left
4.若要使标签控件显示时不覆盖窗体的背景图案,要对        属性进行设置。
A.BackColor       B.BorderStyle        C.ForeColor        D.BackStyle
5.当运行程序时,系统自动执行启动窗体的      事件过程。
A.Load         B.Click           C.Unload         D.GotFocus
6.当文本框的ScrollBars属性设置了非None值,却没有效果,原因是          。
A.文本框中没有内容                    B.文本框的MultiLine属性为False
C.文本框的MultiLine属性为True         D.文本框的Locked属性为True
7.要判断在文本框中是否按了Enter键,应在文本框的       事件中判断。
A.Change        B.KeyDown       C.Click         D.KeyPress
8.在VB.NET集成环境中创建VB.NET应用程序时,除了工具箱窗口、窗体窗口、属性窗口外,必不可少的窗口是           。
A.窗体布局窗口       B.立即窗口         C.代码窗口          D.监视窗口
9.当创建一个项目名为“引例”的项目时,该项目的所有代码文件将保存在    文件夹下。
A.My Documents          B.VB.NET        C.\引例         D.Windows
10.将调试通过后生成的.exe可执行文件到其他机器上不能运行的主要原因是           。
A.运行的机器上无VB.NET系统              B.缺少.frm窗体文件  
C.该可执行文件有病毒                      D.以上原因都不对
11.对初学者而言,调试程序方便、有效的手段是          。
A.在可疑的代码处设置断点点,逐语句跟踪       B.查看资料
C.通过“立即”窗口显示变量的值               D.找老师问原因
12.当需要上下文帮助时,选择要帮助的“难题”,然后按     键,就可出现MSDN窗口及显示所需“难题”的帮助信息。
A.Help         B.F10           C.Esc             D.F1
13.__________属性用来设置窗体的背景图案。
A.BackgroundImage        B.GroundImage          C.Image              D.Icon
14.能够获得一个文本框中被选取文本的内容的属性是__________。
A.Text          B.SelectionLength      C.SelectedText           D. SelectionStart
15.关于数组的声明,正确的是__________。
A.Dim a(5) As Integer = {1,2,3,4,5,6}             B.Dim a(1,6) As Integer = {1,2,3,4,5,6}
C.Dim a( ) As Integer = {1,2,3,4,5,6}            D.Dim a(1 to 6) As Integer = {1,2,3,4,5,6}
16.如下数组声明语句中正确的是__________。
A.Dim a[3,4]  As Integer              B.Dim a(3,4)  As Integer
C.Dim a{3,4}  As Integer              D.Dim a(3 4)  As Integer
17.数组声明语句Dim a(4,0 To 2)中的数组a包含了_________个数组元素。
A.12                  B.15              C.16               D.20
18.下面语句说明不合法的是_________。
A. Function f1%(ByVal n%)                  B. Sub s1(ByVal n As Integer )
C. Sub s1(ByVal n%(10))                     D. Function f1%()
19.下列子过程最合理的是             。
A.Sub f1(ByVal  n%())               B.Sub f1(ByRef  n%) As Integer
C.Function f1%(ByRef  f1%)       D.Function f1(ByVal  n%)
20.下列过程的定义正确的是__________。
A.Public Function a( ByVal b!) As Double     B.Public Sub a( ByVal b!) As Double
C.Public Function a( ByRef a!) As Double   
D.Public Function a( ByRef b!(5)) As Double
21.设有如下说明
Public Sub F1(ByRef n%)
  …
  n=3*n+4
  …
Eed Sub
Sub Button1_Click(……) Handles Button1. Click
Dim n%,m%
  n=3
  m=4
  ‘调用F1的语句
  …
Eed Sub
则在Button1_Click事件中有效的调用语句是            。
A.F1(n+m)    B.F1(m)   C.F1(5)     D.F1(m,n)
22.如下程序输出的结果是            。
       Dim i As Integer
        Dim a() As Integer = {1, 2, 3, 4, 5, 6, 7}
        For i = 0 To UBound(a)
            a(i) = a(i) * a(i)
        Next i
        MsgBox(a(i))
A.49     B.0        C.不确定          D.程序出错  
23.如下程序输出的结果是            。
Private Sub Button1_Click(……) Handles Button1.Click
        Dim i%, j%
        Dim a() As Integer = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, b(3, 3) As Integer
        Label1.Text = ""
        For i = 1 To 3
            Label1.Text &= Space(i * 3)
            For j = i To 3
                b(i, j) = a(i * j)
                Label1.Text &= Space(6 - Len(b(i, j))) & b(i, j)
            Next
            Label1.Text &= vbCrLf
        Next
    End Sub
A. 1  2  3        B.1         C.1  4  7       D.1  2  3   
         4  5  6           4  5         2  4  6              4  6
         7  8  9           7  8  9      3  6  9                 9
24.在过程中定义的变量,若希望在离开该过程后还能保存过程中局部变量的值,则应使用关键字           在过程中定义过程级变量。
A.Dim      B.Private      C.Public    D.Static
25.如下程序输出的结果是            。
   Private Sub Button1_Click(……) Handles Button1.Click
        MsgBox(p1(3.0, 7))
    End Sub
    Public Function p1!(ByVal x!, ByVal n%)
        If n = 0 Then
            p1 = 1
        Else
            If n Mod 2 = 1 Then
                p1 = x * p1(x, n \ 2)
            Else
                p1 = p1(x, n \ 2) \ x
            End If
        End If
    End Function
A.18       B.7        C.14          D.27  
26.如下程序,运行后各变量的值依次为           。
  Public Sub Proc(ByRef a%())
     Static i%
     Do
        a(i) = a(i) + a(i + 1)
        i = i + 1
      Loop While i < 2
  End Sub
  Sub Button_Click(……) Handles Button1.click
      Dim m%,i%,x%(10)
      For i=0 to 4:x(i)=i+1:Next i
      For i=1 to 2:Call proc(x):Next i
      For i=0 to 4:MsgBox(x(i)):Next i
  End sub
A.3 4 7 5 6       B.3 5 7 4 5       C.2 3 4 4 5        D. 4 5 6 7 8
二.填空题
1.当进入VB.NET集成环境,发现没有显示“工具箱”窗口,应选择      菜单的    选项,使“工具箱”窗口显示,并最好将其窗口的属性设置为            。
2.对象的属性是指            ;对象的方法是指            。
3.当对命令按钮的Image属性装入.bmp图形文件后,按钮上并没有显示所需的图形,原因是对             属性设置为            。
4.若已建立了Form1、Form2两个窗体,默认启动窗体为Form1。通过             菜单的       的      选项卡,可将启动对象设置为Form2。
5.对于正在使用的数组A,要再增加一个单元,但要保留原数组各元素的值,则应使用:
ReDim ______________ A( Ubound ( A ) + 1 )语句。
6..在模块的开头通过Imports  System. __________语句限定,x的平方根可以写为sqrt(x)。
7.在过程体中,用__________关键字声明的局部(过程级)变量,其值可以保留至下次过程被调用。
三.上机题
1.输入一个数到文本框,然后对其求平方根,结果通过信息框输出。
2.调试下列程序,实现对数组s由大到小排序;并将排序结果显示在标签中。
Private Sub Button1_Click(…) Handles Button1.Click
        Dim s() As Integer
        Dim k%, j%, n%, t%
s = Array(77, 67, 89, 65, 85, 53, 94, 74, 79, 90)
        n = UBound(s)
        For j = 0 To n - 1
            For k = ____1_____ To n
                If s(j) < s(k) Then
                    t = s(j)
                    s(j) =    2  
                    ___3____ = t
                End If
            Next k
        Next j
        Label1.Text = ""
        For j = 0 To n
            Label1.Text &=    4    & " "
        Next j
End Sub
完整程序:
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim s() As Integer = {77, 67, 89, 65, 85, 53, 94, 74, 79, 90} '删除了原题中的s = Array(77, 67, 89, 65, 85, 53, 94, 74, 79, 90)
        Dim k%, j%, n%, t%
        n = UBound(s)
        '显示原数据
        Label1.Text = "待排序数组的元素是:" & vbCrLf
        For j = 0 To n
            Label1.Text &= s(j) & " "
        Next
        Label1.Text &= vbCrLf & vbCrLf
        '排序
        For j = 0 To n - 1
            For k = j + 1 To n
                If s(j) < s(k) Then
                    t = s(j)
                    s(j) = s(k)
                    s(k) = t
                End If
            Next k
        Next j
        '结果
        Label1.Text &= "排序后的元素为:" & vbCrLf
        For j = 0 To n
            Label1.Text &= s(j) & " "
        Next j
    End Sub
3.调试下列程序,实现对数组a中的10个整数用冒泡法按升序排列,并将排序结果显示在Label1标签框中。
Private Sub Button1_Click(…) Handles Button1.Click
    Dim a() = {678, 45, 324, 528, 439, 387, 87, 875, 273, 82}
    Dim i%, j%, n%, t%
    n = UBound(a)
    Label1.Text = "待排序的数组元素为:" & vbCrLf
    For i = 0 To n
      Label1.Text &= a(i) & " "
    Next i
    Label1.Text &= vbCrLf & vbCrLf
    For i = 0 To n
       For j = 0 To n - i - 1
         If a(j) > a(j + 1) Then
           t = a(j)
           a(j) = a(j + 1)
           a(j + 1) = t
      End If
        Next j
    Next i
    Label1.Text &= "排序后的数组元素为:" & vbCrLf
    For j = 0 To n
      Label1.Text &= a(j) & " "
    Next j
 End Sub
完整程序:
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim a() = {678, 45, 324, 528, 439, 387, 87, 875, 273, 82} '删除了a = Array(678, 45, 324, 528, 439, 387, 87, 875, 273, 823)
        Dim i%, j%, n%, t%
        n = UBound(a)
        '显示原数据
        Label1.Text = "待排序的数组元素为:" & vbCrLf
        For i = 0 To n
            Label1.Text &= a(i) & " "
        Next i
        Label1.Text &= vbCrLf & vbCrLf
        '冒泡排序,相邻对比,大的数沉底
        For i = 0 To n
            For j = 0 To n - i - 1
                If a(j) > a(j + 1) Then
                    t = a(j)
                    a(j) = a(j + 1)
                    a(j + 1) = t
                End If
            Next j
        Next i
        '排序结果
        Label1.Text &= "排序后的数组元素为:" & vbCrLf
        For j = 0 To n
            Label1.Text &= a(j) & " "
        Next j
    End Sub
4.将一个有序数组中重复出现的数删除,删得只剩一个。
(!)主调程序运行后的结果如图所示。解题思想:从数组最右边往左两两比较,若相同,右边的数依次左移,数组元素减1。(程序中红色代码为应填入的内容)

Private Sub Button1_Click(……) Handles Button1.Click
        Dim b() As Integer = {23, 45, 45, 60, 70, 70, 70, 90, 99, 100, 100, 120, 120, 120}, i%, n%
        Label1.Text = ""
        Call p(b, n)
        For i = 0 To n
            Label1.Text &= b(i) & " "
        Next
    End Sub
    Sub p (    (1)      )      ByVal a() As Integer, ByRef n As Integer
        Dim m%, k%
        n = UBound(a)
        m = n
        Do While   (2)          m > 0
            If a(m) = a(m - 1) Then
                For k =   (3)                m To n
                    a(k - 1) = a(k)
                Next k
                n =   (4)            n - 1
            End If
            m =   (5)          m - 1
        Loop
        ReDim Preserve a(n)
    End Sub
5.在一维数组中利用移位的方法显示如图所示的结果。
(程序中红色代码为应填入的内容)
Private Sub Button1_Click(......) Handles Button1.Click
        Dim a(7) As Integer, i%, j%, t%
        Label1.Text = ""
        For i = 1 To 7
            a(i) = i
            Label1.Text &= a(i) & " "
        Next i
        Label1.Text &= vbCrLf
        For i = 1 To 7
            t =      (1)        a(7)
            For j = 6 To 1 Step -1
                    (2)         a(j + 1) = a(j)
            Next j
            a(1) =     (3)        t
            For j = 1 To 7
                Label1.Text &= a(j) & " "
            Next j
            Label1.Text &=     (4)                  vbCrLf
        Next
    End Sub
6.回文素数的判断和应用。
(1)编写一函数hws(n),对于已知正整数n,判断该数是否是回文素数,函数的返回值为布尔类型。所谓回文素数是指构成的字符左右对称的素数。例如:11、101、313等。
(2)编写主调程序,调用函数hws,并显示回文素数。下面的程序求10~1000以内的所有回文素数。
程序设计思想:选取正整数N,若N是素数,调用子过程hws判断该素数是否为回文数(判断左右对称),若是,在文本框内显示所求结果,如图所示。
Private Sub Button1_Click(…) Handles Button1.Click
Dim flg As Boolean,i%, j%, m%
For i =            
   m= Int(Sqr(i))
       For j = 2 To  m        ' 判断是否为素数
          If i Mod j = 0 Then           
       Next j
       If j>m Then
          Call                   
          If flg Then Text1 = Text1 & i & vbCrLf
       End If
    Next i
End Sub
Private Sub hws(n As Integer, bz As Boolean)
    Dim j%, k%, m$
    bz = True
    m = CStr(n)            ' 将数值转为字符
    k =                       ' 求字符m的长度
    For j = 1 To k \ 2        ' 判断回文数
        If  Mid         <> Mid(m, k - j + 1, 1) Then
            bz = False
            Exit For
        End If
    Next j
End Sub
7.编程求1000以内满足如下条件的正整数N: 它的各个因子(包括1和N)之和sum是一个素数。 例如:25的因子为1、5、25,其和 1+5+25 = 31是素数。
程序设计思想:选取正整数N,分解其因子,并累加,子过程Prime 用于判断累加和是否是素数,若是素数,在文本框内显示所求结果,如图所示。
Private Sub Button1_Click(…) Handles Button1.Click
   Dim flg As Boolean, i%, sum%, n%, t$
    For n = 2 To 1000
        sum = 1
        t = "1"            ' 存放各个因子之和表达式
        i = 2
        Do While i <=            ' 求给定正整数的所有因子
            If n Mod i = 0 Then
                sum =        
                t &= "+" & i
            End If
            i += 1
        Loop
        t = t & " = " & sum
        Call              
        If flg Then
               TextBox1.text &= Str(n) & ":  " &       & vbCrLf
        End If
    Next n
End Sub
Private Sub Prime(ByVal s As Integer, flage As Boolean) ' 判断s素数
   Dim m%
   flage = True
   For m = 2 To Sqr(s)
      If s Mod m = 0 Then
        flage =           
        Exit For           ' 非素数时,跳出
      End If
   Next m
End Sub
 

相关教程