7.如下程序,运行的结果是()。 Dim a%, b%, c%
Public Sub p1(ByRef x%, ByRef y%) Dim c%
x=2*x: y=y+2: c=x+y End Sub
Public Sub p2(ByRef x%, ByVal y%) Dim c%
x=2*x: y=y+2:c=x+y End Sub
Sub Button1_Click(... ...) Handles Button1.Click a=2: b=4: c=6 Call p1=(a, b)
MsgBox (“a= “ & a &“b=” & b &“c=”& c) Call p2(a, b)
MsgBox (“a= “ & a &“b=” & b &“c=”& c) End Sub
A. a=2 b=4 c=6 B. a=4 b=6 c=10 a=4 b=6 c=10 a=8 b=8 c=16 C. a=4 b=6 c=6 D. a=4 b=6 c=14 a=8 b=6 c=6 a=8 b=8 c=6 8.如下程序,运行后各变量的值依次为()。 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 Button1_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.如下程序,运行显示的值是___________,函数过程的功能是_________ Public Function f(ByVal n%, ByVal r%) If n<>0 Then f=f(n\\r, r) MsgBox(n Mod r) End If End Function
Sub Button1_Click(......) Handles Button1.Click MsgBoxf(f(100,8)) End Sub
2.如下程序,运行显示的值是_________,函数过程的功能是__________。 Public Function f(ByVal m%, ByVal n%) Do While m<>n If m>n Then m=m-n Else
n=n-m End If Loop f=m
End Function
Sub Button1_Click(.....) Handles Button1_Click MsgBox(f(24,18)) End Sub
3.两个质数的差为2,称此对质数为质数对,下列程序是找出100以内的质数对,并成对显示结果。其中,函数IsP判断参数m是否为质数。 Public Function IsP (ByVal m) As Boolean Dim i%
_______________
For i=2 To Int(Math.Sqrt(m)) If_________Then IsP=False Next i
End Function
Sub Button1_Click(.....) Handles Button1.Click Dim i%, p1, pa As Boolean p1=IsP(3)
For i=5 To 100 Step 2 p2=IsP(i)
If _________Then Label1.Text &=i-2 & “ ”& i p1 _________ Next i End Sub
4.子过程MoveStr()是把字符数组移动m个位置。当Tag为True,左移,则前m个字符移到字符数组尾,例如,“abcdefghij”左移三个位置后,结果为“defghijabc”;当Tag为False,右移,则后m个字符移到字符数组前,如“abcdefghij”右移三个位置后,结果为“hijabcdefg”。 子过程如下:
Public Sub MoveStr(ByRef a$(),ByVal m%, ByVal Tag As Boolean) Dim i%, j%, t$
If ____________ Then For i=1 To m
____________
For j=0 To ____________ a(j)=a(j+1) Next j
____________ Next i Else
For i=1 To m
_____________
For j=UBound(A) __________ a(j)=a(j-1) Next j
___________ Next i End If End Sub
5.子过程CountN用来统计字符串中各数字字符(“0”~“9”)出现的个数;主调程序实现在TextBox1框输入的文本,每次单击“统计”按钮,调用该子过程,在Label1框中显示结果,运行界面如图所示
Sub Button1_Click(.....) Handles Button1.Click Dim n(9) As Integer ,i%
Call CountN(n,TextBox1.Text) Label2.Text= “” For i=0 To 9 If n(i) Then
Label2.Text &=_________ & vbCrLf End If Next i End Sub
Sub CountN(_________________) Dim c As Char, i%, m%, j%
For i=0 To 9
num(i)=0 Next i m=Len(s) For i=1 To m
c=_____________
If c>= “0” And c<=”9” Then j=Val(c)
Num(j)=_________ End If Next i End Sub
6.子过程F(n,m,t)对一个四位数的整数n进行判断:已知该整数n,逆向排列获得另一个四位数,m是它自身的倍数(2倍以上),则t为True表示满足上述条件。主调程序调用该函数,显示1000~9999中所有满足该条件的数。
提示:根据一个数n,逐一分离得到它的反序数m,然后判断m是否为n的倍数。 Sub Button1_Clink(... ...) Handles Button1.Click Dim t As Boolean, i%, k% TextBox1.Text= “” TextBox2.Text= “” For i=1000 To 9999 Call f( ________) If t Then
TextBox1.Text &=i& vbCrLf
TextBox2. Text &=k & “=”& i & “*”& k\\i & vbCrLf End If Next End Sub
Sub f(ByVal n%, ByRef m%, ByRef tag As Boolean) Dim i% tag = False m=0 i=n
Do While i>0
m=_________ ‘求的n的逆序列 i=_________ Loop
If m Mod n=0 And m\\n>1 Then ‘是否是倍数 tag=_________ End If End Sub
7.下列程序中的子过程Mysplit(s,sAarry(),n)用于实现函数Split( )的功能(字符分离到数组),即将数字字符串s按分隔符“,”分离到sArray 数组中,分离的个数为n,主调程序将文本框输入的数字字符串进行分离,结果在TextBox2控件显示,如图所示。
Sub Button1_Clink(......) Handles Button1.Click Dim str1 As String ,num(100) As Integer,n%,i% Str1=Tim(TextBox1.Text) Call MySplit(Str1,num,n) TextBox2.Text= “” For i=0 To n
TextBox2.Text &=num(i) & vbCrLf Next End Sub Sub MySplit(ByVal str1 As String, ByRef sn() As Integer, ByRef n As Integer) Dim i%,j%,ch$ i=0
j=InStr(str1,”,”) Do While j>0
sn(i)=Val____________ str1=Mid(str1,j+1) i=i+1
j=__________ Loop
sn(i)=Val(str1) n=___________ End Sub
8.以下过程将一个有序数组中重复出现的数进行删除,删得只剩一个。主调程序运行后结果如图所示。解题思想是从数组最右边往左边两两比较,若相同,右边的数依次往左移,数组上界元素减1,实现删除。
Sub Button1_Clink(......) Handles Button1.Click Dim b( ) As Integer={23,45,45,60,70,70,70,90},i%, n% Label1.Text= “” Call p(b, n) For i=0 To n Label1.Text &=b(i) & “ ” Next i End Sub
Sub p(________) Dim m%,k% n=UBound(a) m=n Do While(__________) ‘从右往左比较,压缩 If a(m)=a(m-1) Then For k=_________ a(k-1)=a(k) Next k n=__________
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库VB[1].net习题集(5)在线全文阅读。
相关推荐: