2017vb习题集-给学生(10)

2019-08-31 12:45

第6章 习题

一 填空题

1. 符号常量在某一过程中说明,则该符号常量只能在 有效。

2. 一个VB应用程序可以包括的三种模块是: 、标准模块和类模块。 3. 函数过程定义中至少有一个赋值语句把表达式的值赋给 。

4. 在VB中,过程定义中有两种传递的参数形式:一种是 ;另一种是 。 5. 若模块中以关键字public定义子过程,则在 中都可以调用该过程。

6. 若窗体模块中以关键字private定义函数过程,则该函数过程只能在 中使用。 7. 每一个用户定义的变量、常量、过程都有一个可访问范围,称为变量、常量、过程的 。

8. 在模块内定义的过程,若在关键字sub或Function加前缀Public,则该过程称为 。 9. 过程中定义的静态变量作用域是 ,生存期是 。

10. 在同一模块中定义了同名的全局变量和局部变量,优先级高的是 。

二 选择题

1. 设已定义子过程p,有3个数值型传值参数;设a为实型变量,调用该子过程的正确语句为( )。

(A) p (B) call p 0.5, a, 100 (C) call p ( 0.5, cos(0.1), a+10 ) (D) p ( 0.5, 1.2, 100 )

2. 下列描述中正确的是( )。

(A)Visual Basic只能通过过程调用执行通用过程 (B)可以在Sub过程的代码中包含另一个Sub过程的代码 (C)可以像通用过程一样指定事件过程的名字 (D)Sub过程和Function过程都有返回值

3. 为达到把a、b中的值交换后输出的目的,编程如下:

Private Sub Command1_Click()

a%=10:b%=20

Call swap(a,b):Print a,b End Sub

Private Sub swap(ByVal a As Integer,ByVal b As Integer)

c=a:a=b:b=c End Sub

在运行时发现输出结果错了,需要修改。下面列出的错误原因和修改方案中正确的是( )。

(A)请用swap过程的语句错误,应改为:Call swap a,b (B)输出语句错误,应改为:Print\,\

(C)过程的形式参数有错,应改为:swap(ByRef a As Integer,ByRef b As Integer)

(D)swap 中3条赋值语句的顺序是错误的,应改为a=b:b=c:c=a

4. 以下关于变量作用域的叙述中,正确的是( )。

(A)窗体中凡被声明为Private的变量只能在某个指定的过程中使用 (B)全局变量可被应用程序的任何过程访问 (C)模块级变量只能用Private关键字声明

(D)Static类型变量的作用域是它所在的窗体或模块文件

5. 以下关于函数过程的叙述中,正确的是( )。 (A)函数过程形参的类型与函数返回值的类型没有关系 (B)在函数过程中,过程的返回值可以有多个

(C)当数组作为函数过程的参数时,既能以传值方式传递,也能以传址方式传递 (D)如果不指明函数过程参数的类型,则该参数没有数据类型

n

6. 为计算a的值,某人编写了函数power如下:

Private Function power(a As Integer,n As Integer)As Long Dim p As Long p=a

For k=1 To n p=p*a Next k power=p End Function

在调试时发现是错误的,例如Print power(5,4)的输出应该是625,但实际输出是3125。 程序需要修改。下面的修改方案中有3个是正确的,错误的一个是( )。 (A) 把For k=1 To n改为For k=2 To n (B) 把p=p*a改为p=p^n

(C) 把For k=1 To n改为For k=1 To n-1 (D)把p=a改为p=1

7. 以下关于过程及过程参数的描述中,错误的是( )。 (A)过程的参数可以是控件名称

(B)调用过程时使用的实参的个数应与过程形参的个数相同 (C)只有函数过程能够将过程中处理的信息返回到调用程序中 (D)窗体可以作为过程的参数

8. 以下关于局部变量的叙述中错误的是( )。

(A)在过程中用Dim语句或Static语句声明的变量是局部变量 (B)局部变量的作用域是它所在的过程

(C)在过程中用Static语句声明的变量是静态局部变量

(D)过程执行完毕,该过程中用Dim或Static语句声明的变量即被释放

9. 假定有以下函数过程:

Function Fun(S As String) As String

Dim s1 As String For i=1 To Len(S)

s1=LCase(Mid(S,i,1))+s1 Next i Fun=s1

End Function

在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click()

Dim Str1 As String,Str2 As String Str1=InputBox(\请输入一个字符串\Str2=Fun(Str1) Print Str2 End Sub

程序运行后,单击命令按钮,如果在输入对话框中输入字符串\,则单击\确 定\按钮后在窗体上的输出结果为( )。

(A) ABCDEFG (B)abcdefg (C)GFEDCBA (D) gfedcba

10. 设有以下函数过程

Private Function Fun(a()As Integer,b As String)As Integer ...

End Function 若已有变量声明:

Dim x(5)As Integer,n As Integer,ch As String 则下面正确的过程调用语句是( )。

(A)x(0)=Fun(x,\ (B)n=Fun(n,ch) (C)Call Fun x,\ (D)n=Fun(x(5),ch)

11. 设在名称为Myform的窗体上只有1个名称为C1的命令按钮,下面叙述中正确的是( )。

(A)窗体的Click事件过程的过程名是Myform_Click (B)命令按钮的Click事件过程的过程名是C1_Click

(C)命令按钮的Click事件过程的过程名是Command1_Click (D)上述3种过程名称都是错误的

12.计算n!(0

Private Function fun(n As Integer)As Long

Dim p As Long p=1

For k=n-1 To 2 Step-1 p=p*k

Next k fun=p End Function

在调试时发现该函数过程产生的结果是错误的,程序需要修改。下面的修改方案中错误

的方案是( )。

(A) 把p=1改为p=n

(B) 把For k=n-1 To 2 Step-1改为For k=1 To n-1 (C) 把For k=n-1 To 2 Step-1改为For k=1 To n (D)把For k=n-1 To 2 Step-1改为For k=2 To n

13. 关于变量的作用域,正确的描述是( )。

(A)在模块内定义的变量,其作用域必定为所在模块。 (B)同一模块中不同级的变量不能同名。

(C)一模块中所有在过程之外用Dim定义的变量为全局变量。 (D)不同模块中定义的变量名字可以相同。

14. 在过程的形式参数的前面加上关键字( ),则该参数说明为传址参数。 (A) Val (B) Ref (C)ByRef (D)ByVal

15. 下面的程序执行后,显示的结果是( )。 Private Sub Command1_click()

Dim a%, b% a = 8: b = 3

Call test(a, b + 1) Print a; b End Sub

Private Sub test(y%, z%)

y = 4: z = 9 End Sub

(A) 4 3 (B) 8 3 (C)8 8 (D)8 9

16. 有如下过程代码:

Sub var_dim()

Static numa As Integer Dim numb As Integer

numa=numa+2 : numb=numb+1 print numa;mumb End Sub

连续3次调用var_dim过程,第3次调用时的输出是( )。 (A)2 1 (B)2 3 (C)6 1 (D)6 3

17. 在过程体中退出子过程的语句是( )。 (A) Exit Do (B)Exit For

(C) Exit Sub (D) Exit Function

18. 窗体上有一个名为Command1的命令按钮,并有如下程序: Private Sub Command1_Click()

Dim a As Integer,b As Integer

a=8 : b=12

Print Fun(a,b);a;b End Sub

Private Function Fun(ByVal a As Integer,b As Integer)As Integer

a=a Mod 5 : b=b\\5 Fun=a End Function

程序运行时,单击命令按钮,则输出结果是( )。

(A)3 3 2 (B)3 8 2 (C)8 8 12 (D)3 8 12

19. 在过程中可以用( )语句定义变量。

(A)Dim、Private (B)Dim、Static

(C)Dim、Public (D)Dim、Static、Private

20. 以下有关过程的说法中,错误的是( )。

(A)在Sub或Function过程中不能再定义其他Sub或Function过程

(B)在调用过程时,与使用ByRef说明的形参对应的实参只能按地址传递方式结合 (C)过程既可以是Function过程,也可以是Sub过程

(D)在调用过程时,形参为数组的参数对应的实参只能是数组

21. 某人编写了一个能够返回数组a中10个数中最大数的函数过程,代码如下:

Function MaxValue(a()As Integer)As Integer

Dim max%:max=1 For k=2 To 10

If a(k)>a(max)Then max=k Next k

MaxValue=max End Function

程序运行时,发现函数过程的返回值是错的,需要修改,修改方案正确的是( )。 (A)语句max=1应改为 max=a(1)

(B)语句For k=2 To 10应改为For k=1 To 10 (C)If 语句中的条件a(k)>a(max)应改为a(k)>max (D)语句MaxValue=max应改为MaxValue=a(max)

22. 在过程的形式参数的前面加上关键字( ),则该参数说明为传值参数。 (A) Val (B) Ref (C)ByRef (D)ByVal

23. 关于过程作用域,错误的描述是( )。 (A)全局级过程的作用域为整个工程。

(B)在某一窗体模块中定义的全局级过程,若被该模块外的模块所调用,必须在该过程名前加上窗体名称。

(C)在不同模块中定义的模块级过程可以同名。 (D)模块级过程与工程级过程不能同名。


2017vb习题集-给学生(10).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:金盾工程简介

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: