江苏省计算机二级vb分章节解析

发布时间 : 星期二 文章江苏省计算机二级vb分章节解析更新完毕开始阅读

C.事件过程也可以通过Call语句调用执行 D.在事件过程中不能声明全局变量 【答案】B

填空题

1.运行下面的程序,当单击Command1时,窗体上显示的第一行内容是________,第二行内容是________, 最后一行的内容是________。

Option Explicit Dim N As Integer

Private Sub Command1_Click()

Dim i As Integer, j As Integer For i=3 To 1 Step-2

N = Fun(I, N) Print N Next i End Sub

Private Function Fun(A As Integer, B As Integer) As Integer

Static X As Integer

Dim Sum As Integer, I As Integer X = X + N For I = 1 To A B = B + X + I N = N – I \\ 2 Sum = Sum + B Next I A = A + 1 Fun = Sum + A End Function 【答案】11,61,136

【解析】此题考的是变量的作用域。N为窗体级变量,在过程Command1_Click()和函数Fun 中均有效,过程中调用函数Fun时两个参数均为按地址传递,故函数Fun中的变量B即为过程中的变量N,B的值改变会改变N的值。另外在函数中使用了静态变量X,第一次调用函数时,X的初值为0,以后调用函数时,X的初值为上一次调用结束时的值。

2.执行下面的程序,单击Command1后,显示在窗体上第一行的内容是________,第二行的内容是_________,第三行的内容是________。 Option Explicit

Private Sub Command1_Click()

Dim N As Integer, M As Integer N = 2

Do While M < 3

N = N +2

If Fun(n) Then

Print N M = M +1

End If Loop End Sub

Private Function Fun(Byval N As Integer) As Boolean If N / 2 = Int(N / 2) Then Fun = Fun(n / 2) Else If N = 1 Then Fun = True End If End Function 【答案】4,8,16

【解析】N/2=Int(N/2)为判断N是否是偶数,如是偶数,则递归调用函数Fun,如不是,则再判断N是否等于1,如等于1,则函数值为True,否则为False。当函数值为True时,则输出N的值,共输出3个。

3.下面程序的功能是,找出100以内所有可以表示成3个连续自然数之和的数。完善程序,实现以上功能。

Option Explicit

Private Sub Command1_Click() Dim I As Integer, N As Integer Dim Js As Integer, S As String For I = 1 To 100

If Fun(I, N, Js) Then S = Str(I) & “ = “ & N Do _____1_____ N = N + 1 S = S & “ + “ & N Loop List1.AddItem S End If Next I End Sub

Private Function Fun(L As Integer, M As Integer, Js As Integer)As Boolean Dim I As Integer, Sum As Integer, K As Integer For I = 1 To L ____2____ K = 0 ____3____ Do While Sum < L And K < 3 K = K + 1 Js = Js + 1 Sum = Sum + Js Loop If ____4____ Then M = I

Fun = True Exit For End If Next I End Function 【答案】(1)While N

【解析】在Command1_click过程中,如Fun函数值为真,则将字符串S添加至List1中,由S = Str(I) & “ = “ & N语句可以得出I为满足条件的一个自然数,N为三个连续数中的第一个数。再分析函数Fun,形参L即为实参I,M为N,Sum中存放的是三个连续数的和,因此如Sum的值等于L,则函数值为真,同时M=I,即表示L可表示为I开始的三个连续自然数之和,但在求和时Sum是和Js进行的累加,所以必须使第一个相加时Js的值为I,结束后Js中保存的是三个连续数中的最后一个数;如不等,则重新循环,但应在求和之前先将Sum清零。再回到过程中,输出的S应为三个连续自然数,但在循环时没有计数器,故只能用Js来控制循环次数。

4.运行下面的程序,当单击Command1时,窗体上显示的第一行内容是____1____,第三行内容是____2____, 第四行内容是____3____。

Private Sub Command1_Click() Print Test(3) End Sub

Private Function Test(t As Integer)As Integer Dim i As Integer If t>=1 Then Call Test(t-1)

For i=3 To t Step-1

Print Chr(Asc("A")+i);

Next i Print End If Test = t End Function 【答案】(1)DCB(2)D(3)3

5.运行下面的程序,当单击窗体时,窗体上显示的第一行内容是____1____,第三行内容是____2____,第四行内容是____3____。

Dim X As Integer, y As Integer Private Sub Form_Click()

Dim a As Integer, b As Integer a=5: b=3

Call sub1(a, b) Print a, b Print X, Y End Sub

Private Sub sub1(ByVal m As Integer, n As Integer) Dim Y As Integer

X=m +n: Y=m - n m=fun1(X, Y) n=fun1(Y, X) End Sub

Private Function fun1(a As Integer, b As Integer)As Integer X=a +b:Y=a-b Print x, Y Fun1=X+Y End Function 【答案】(1)10 8(2)5 2(3)12 -10

6.执行下面的程序,单击按钮Command1,在窗体上显示的第一行是____1____,第二行是_____2_____,第三行是_____3_____。

Option Explicit

Private Sub Command1_click() Dim X As Single, i As Integer X=1.2

For i=l To 3 X=x*i

Print fun1(X) Next i End Sub

Private Function fun1(x As Single) As Single Static Y As Single Y=y +X Fun1=Y/2 End Function 【答案】(1)0.6(2)1.8(3)5.4 7.执行下面的程序后,单击按钮Command1,则N的值是_____1____,A的值是_____2_____,B的值是_____3_____。

Option Explicit Dim N As Integer

Private Sub Command1_Click() Dim A As Integer, B As Integer A=2: B=3 For N=1 To 6

If N Mod 2=0 Then B=Fun(N, A)+A Else

A=Fun(B, N)+B End If Next N

Print N, A, B End Sub

Private Function Fun(X As Integer, Y As Integer)As Integer

联系合同范文客服:xxxxx#qq.com(#替换为@)