|
第3次作业
一、单项选择题(本大题共76分,共 19 小题,每小题 4 分)
1. 以下关于Visual Basic的参数传递的描述不正确的是_____________。
A.形式参数表和实际参数表中对应的变量名必须相同 B.形式参数表和实际参数表中对应的变量个数必须相同 C.形式参数表和实际参数表中对应的变量类型必须相同 D.形式参数表和实际参数表中对应的书写顺序必须对应相同
2. 将数组看成一个整体作为过程的参数时,是以方式实现参数传递的。以下正确的描述是:在Visual Basic应用程序中______。
A.过程的定义不可以嵌套,但过程的调用能嵌套
B.过程的定义可以嵌套,但过程的调用不可以嵌套 C.过程的定义和过程的调用均不可以嵌套 D.过程的定义和过程的调用均可以嵌套
3. 在过程定义中用 ________表示形参的传地址。
A.Var
B.ByRef C.ByVal D.ByValue
4. 在过程调用结束后还能保存过程中局部变量的值,则使用______关键字在过程中定义该局部变量。
A.Dim
B.Private C.Public D.Static
5. Sub过程与Function过程最根本的区别是__________。
A.Sub过程可以使用Call语句或直接使用过程名调用,而Function过程不可以
B.Function过程可以有参数,Sub过程不可以 C.两种过程参数的传递方式不同 D.Sub过程的过程名不能返回值,而Function过程能通过过程名返回值
6. 要想在过程调用后返回两个结果,下面的过程定义语句中合法的是_________。
A.Sub Proc(ByVal n,ByValm)
B.Sub Proc(n,ByVal m) C.Sub Proc(n,m) D.Sub Proc(ByVal n,m)
7. 以下叙述中,不正确的是( )。
A.过程中的形式参数是局部变量。
B.不同的过程中可以使用相同名字的局部变量。 C.在一个过程内定义的变量只在本过程范围内有效。 D.在一个过程内的局部变量与全局变量同名时,起作用的是全局变量。
8. 在过程定义中用 ( )表示形参的传值方式。
A.Var
B.ByRef C.ByVal D.Value
9. 在过程A中定义了静态变量y。当调用过程A后,在退出过程A前,y的值为5。请问,下次再进入过程A时,y 的值为()。
A.无定义出错
B.5 C.不定值 D.0
10. 下列叙述中正确的是______。
A.在窗体的通用事件过程中定义的变量是全局变量。
B.局部变量的作用域可以超出所定义的过程。 C.在某个Sub过程中定义的局部变量可以与其它事件过程中定义的局部变量同名,但其作用域只限于该过程 D.模块级变量和全局变量的生存期是整个应用程序的运行期间
11. 下列程序 Private Sub Form_click() title =Val(InputBox("请输入一个数")) fee = Countl(title)Print fee End Sub Function Countl(title) If title < 40 Then pay = title / 2Else pay = 2 * title End If ' Countl = pay End Function 运行时从键盘输入20,输出结果是_ 。
A.10
B.20 C.30 D.显示出错信息
12. 下面程序运行后的结果是( ) Public sub f1(n%,byval m%) N=n mod10 M=m\10 End sub Private sub command1_click( ) Dim x%,y% X=12 Y=34 Callf1(x,y) Print x,y End sub
A.2 34
B.12 34 C.2 3 D.12 3
13. 阅读下列程序: Private Sub Command1_Click() Dim i AsInteger, t As Integer t = 1 For i = 1 To 3 Print Hck(t); Next i End SubFunction Hck(j As Integer) a = 0 Static b a = a ^ 2 + 1 b = b + 2 Hck = a * b *j End Function 运行程序后,单击命令按钮,输出结果是_____________。
A.2 3 4
B.2 4 6 C.5 6 7 D.3 5 6
14. 下面的子过程语句说明合法的是________。
A.Sub fib(ByRef i%())
B.Sub fib(j%) As Integer C.Function f%(f%) D.Function f1!(ByVal n%)
15. 下面程序运行结果是( ) Private sub command1_click( ) Printp1(3,7) End sub Public Function p1!(x!,n%) If n=0 then P1=1 Else If n mod 2=1then P1=x*p1(x,n\2) Else P1=p1(x,n\2)\x Endif Endif End function
A.18
B.7 C.14 D.27
16. 使用Function语句定义一个函数过程,其返回值的类型为( )。
A.只能是符号常量
B.是除数组之外的简单数据类型 C.可在调用时由运行过程决定。 D.由函数定义时As子句声明
17. 运行以下程序后,输出结果为_____________。Private Sub Command1_Click() a=1:b=2:c=3 Call test(a,b+3,(c)) Print"main:";a;b;c End Sub Private Function test(p,m,n) p=p+1:m=m+1:n=n+1Print "sub:";p;m;n End Function
A.
sub:2 6 4 main:1 2 3
B.
sub:2 6 4 main:2 2 3
C.
sub:2 6 4 main:2 6 4
D.
sub:2 6 4 main:1 6 4
18. 以下关于变量作用域的叙述中,正确的是______。
A.Static类型变量的作用域是它所在的窗体或模块文件
B.全局变量必须在标准模块中声明 C.模块级变量只能用Private关键字声明 D.窗体中凡被声明为Private的变量只能在某个指定的过程中使用
19. 下列过程定义语句中合法的是___________。
A.Sub Proc(ByVal n())
B.SubProc(n)As Integer C.Function Proc(ByVal n()) D.Function Proc(ByVal n%) As Integer
二、程序阅读题(本大题共24分,共 4 小题,每小题 6 分)
1.
程序代码为: Private Sub Command1_Click() Dim i% For i=1 To 3 Call s4 Next i End Sub Static Sub s4() u=u+1: v=v+1 Print"u="; u, "v="; v End Sub 程序运行后,单击命令按钮后,在窗体显示的结果是:
2.
写出下面程序当输入数据-10080时的执行结果。 Private Sub p(nAs Integer) If (n< 0) Then Print '-' n = -n End If If (n \10 > 0) Then p (n \ 10) End If Print (nMod 10) End Sub Private SubForm_Click() Dim m AsInteger m =InputBox("请输入一个整数", 输入") p (m) End Sub
3.
程序代码为: Public sub proc(a%( )) Static I% Do A(i)=a(i)+a(I+1) I=I+1 Loop while I<2 End sub Private subcommand1_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 :print x(i); : next I End sub 程序运行后,单击命令按钮后,在窗体显示的结果是:
4.
写出下面程序运行时单击窗体的输出结果。 Private Subf(a%, b%) a = a + b b = a - b End Sub Private SubForm_Click() Dim a%,b% a = 23 b = 12 Call f(a,b) Print"a=" & a; ",b=" & b End Sub
答案:
一、单项选择题(76分,共 19 题,每小题 4 分)
1. A 2. A 3. B 4. D 5. D 6. C 7. D 8. C 9. B 10. C 11. A 12. A 13. B 14. D 15.D 16. D 17. B 18. B 19. D
二、程序阅读题(24分,共 4 题,每小题 6 分)
1.
参考答案:
u=1 v=1 u=2 v=2 u=3 v=3
解题方案:
评分标准:
2.
参考答案: 10080
解题方案:
评分标准:
3.
参考答案: 3 5 7 4 5
解题方案:
评分标准:
4.
参考答案:
a=35,b=23
解题方案:
评分标准:
附件为wrod版本可编辑答案,内容和帖子内容一样。
|