-
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
一、 单项选择题
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
栏目列表
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比