VB - - 过程练习题

更新时间:2023-03-15 10:27:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《Visual Basic 6.0 程序设计》寒假作业

一、选择题

1.要想在过程调用后返回两个结果,下面过程定义语句中语法正确的是_______。

A. Sub swap(By Val m,By Val n) B. Sub swap(m, By Val n) C. Sub swap(m, n) D. Sub swap(By Val m, n) 2.在过程调用中,参数的传递可以分为按值传递和_______两种方式。

A. 按参数传递 B. 按数值传递 C. 按地址传递 D. 按位置传递 3.Sub过程与Function过程最根本的区别是_______。

A. Sub过程可以直接使用过程名调用,而Function过程不可以 B. Function过程可以有参数,而Sub过程不可以 C. 两种过程参数传递方式不同

D. Sub过程的过程名不能返回值,而Function过程能通过过程名返回值 4.在参数传递过程中,使用关键字_______来修饰参数,可以使之按值传递。

A. ByVal B. ByRef C. Value D. reference 5.可以执行“工具”菜单中的_______命令来建立通用过程。

A. 添加过程 B. 通用过程 C. 添加模块 D. 添加窗体

6.假定已定义一个过程Public Sub Cir(a As Single, b As Single),则正确的调用语句是_______。A,2

A. Cir 3,8 B. Call Cir x, y C. Call Cir 2*x, y D. Call Cir (3,8, y) 7. 在窗体上添加一个名称为Command1的命令按钮,再添加两个名称分别为Label1、Label2的标签,然后编写如下程序代码:

Private x As Integer

Private Sub Command1_Click() a = 6: b = 4 Call sub1(a, b) Label1.Caption = a Label2.Caption = b End Sub

Private Sub sub1(ByVal x As Integer, ByVal y As Integer) a = x * x b = y * y End Sub

程序运行后单击命令按钮,则两个标签中显示的内容分别是_______。

A. 36和4 B. 6和4 C. 36和8 D. 6和8 8. 设有如下通用过程: Public Function fun(x As Integer) Dim y As Integer x = 30: y = 4

1

fun = x * y End Function

在窗体上添加一个名称为Command1的命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Static x As Integer x = 20: y = 10 y = fun(x) Print x; y End Sub

程序运行后,如果单击命令按钮,则在窗体上显示的内容是_______。

A. 20 10 B. 30 10 C. 20 4 D. 30 120 9.以下叙述中,不正确的是_______。

A. 过程中的形式参数是局部变量。

B. 不同的过程中可以使用相同名字的局部变量。

C. 在一个过程内定义的变量只在本过程范围内有效。 D. 在一个过程内的局部变量与全局变量同名时,起作用的是全局变量。 10.以下关于过程参数的叙述中,错误的是_______。

A. 按值传递参数,形参和实参的类型可以不同,只要相容即可。

B. 若形参是按地址传递的参数,形参和实参也能以按值传递方式进行形实结合。

C. 形参的数据类型如果是String,它可以是定长的,但在调用时对应的实参只能是定长的。 D. 在过程被调用之前,形参未被分配内存,只是说明形参的类型和在过程中的作用。 11.假设有如下过程:

Public Sub sfun(x As Single, y As Single) t = x x = t / y y = t Mod y End Sub

在窗体中添加一个命令按钮(名为Command1),编写如下事件过程: Private Sub Command1_Click() Dim a As Single Dim b As Single a = 5: b = 4 Call sfun(a, b)

MsgBox a & Chr(10) + Chr(10) & b End Sub

打开窗体运行后,单击命令按钮,消息框中有两行输出,内容分别为_______。

A. 1和1 B. 1.25和1 C. 1.25和4 D. 5和4 12. 使用Function语句定义一个函数过程,其返回值的类型为_______。

A. 只能是符号常量

B. 是除数组之外的简单数据类型

C. 可在调用时由运行过程决定。

2

D. 由函数定义时As子句声明 13.下面程序的输出结果是_______: Private Sub proc(ch As String) s = \ \

For k = Len(ch) To 1 Step -1 s = s & Mid(ch, k, 1) Next k ch = s End Sub

Private Sub Command1_Click() ch$ = \ proc ch Print ch End Sub

A. ABCDEF B. A C. FEDCBA D. F

14.在窗体上绘制一个名为Command1的命令按钮和两个名为Label1、Label2的标签,然后编写如下程序:______

Private x As Integer

Private Sub proc(a As Integer, ByVal b As Integer) x = a * a y = b + b End Sub

Private Sub Command1_Click() x = 5: y = 3 Call proc(x, y) Label1.Caption = x Label2.Caption = y End Sub

A. 25和3 B.5和3 C. 25和6 D. 5和6 15.以下是一个能返回数组a中最大数的函数过程代码: Function maxval(a() As Integer) As Integer Dim max% max = 1

For i = 2 To 10

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

maxval = max End Function

程序运行时,发现函数过程的返回值是错的需要修改,下面的修改方案中正确的是______。

A. 语句“max = 1”应改为“max = a(1)”

B. 语句“For i = 2 To 10”应改为“For i = 1 To 10” C. if语句“max = k”应改为“max = a(k)”

3

D. 语句“maxval = max ”应改为“maxval = a(max)”

二、判断题

1.Sub过程中不能嵌套定义Sub过程。( )

3.函数过程形参的类型与函数返回值的类型没有关系。( ) 4.在函数过程中,过程的返回值可以有多个。( )

5.用数组作为过程的参数时,既能以传值方式传递,也能以传地址方式传递。( ) 6.形式参数是数组时,不能进行维数说明,只能以一对空括号表示,且括号不能省略。( ) 7.形式参数只在所在过程中有效,因此属于局部变量。( )

8.在不同的模块中可以声明定义相同名字的模块级变量,它们代表不同的对象,而且作用域范围不同,因此互不干扰。( )

9.过程名前加Static,表示该过程内的局部变量都是静态变量。( ) 12.Sub子过程的过程名不能和同一级别的变量重名。( ) 14.函数只能出现在表达式中,其功能是求得函数的返回值。( )

16.若形参是按地址传递的参数,形参和实参不能以按值传递方式进行形实结合。( )

17.当实参是常量、表达式形式,则不论其对应形参前定义成什么方式,系统都强制按值传递参数。( ) 18.在标准模块中定义的全局变量,在本应用程序的任何一个过程中都可直接用它的变量名来访问。( )

三、填空题

1.窗体事件过程名由“________”、下划线和事件名组成。

2.按传地址方式传递参数时,要求实参必须是______,此时实参与形参变量共有同一个存储单元。 3.运行以下程序,输出的结果为_______________。

Private Function jc(x As Integer) As Long

Dim i As Integer jc = 1

For i = 1 To x jc =jc * i Next i End Function

Private Sub Form_Click() Dim he as Long he = jc(5)+ jc(3) Print he End Sub

4.以下是一窗体的单击事件代码:

Private Sub Form_Click() Static count%

4

count = count + 1

Print \单击窗体\次\End Sub

第3次单击窗体后,count的值为_______。 5.运行以下程序,输出的结果为__________。

Private Function fact(n As Integer) As Integer fact = 1

Do While n > 0 fact = fact * n n = n - 1 Loop

End Function

Private Sub Form_Click()

Dim sum As Integer, i As Integer For i = 4 To 1 Step -1 sum = sum + fact(i) Next

Print \End Sub

6.下面程序运行后,单击命令按钮,窗体上输出的结果是:2 3 和_____。

Dim x As Integer, y As Integer Private Function f(x As Integer) Dim y As Integer x = x + 2 f = x + y End Function

Private Sub p(ByVal z As Integer) x = y + z End Sub

Private Sub Command1_Click() x = 1: y = 1 Call p(x) z = f(y) Print x; y; z End Sub

7.在窗体中添加一个命令按钮(名为Command1)和一个文本框(名为Text1),编写事件代码如下:

Private Sub p1(a As Integer, b As Integer, c As Integer)

c = a + b End Sub

Private Sub Command1_Click()

Dim x As Integer, y As Integer, z As Integer x = 5: y = 7: z = 0 Text1.Text = \ Call p1(x, y, z)

5

Text1.Text = z End Sub

运行程序,单击命令按钮,文本框中显示的内容是____。

8.在窗体上添加一个文本框(名为Text1)和一个命令按钮(名为Command1),编写如下的事件过程:

Private Sub Command1_Click()

Dim arr(5) As Integer For i = 1 To 5 arr(i) = i Next m = 20

Call fun1(arr, m) Text1.Text = m End Sub

Public Sub fun1(a() As Integer, ByVal x As Integer) For i = 1 To UBound(a) x = x + a(i) Next End Sub

运行程序,单击命令按钮,文本框中显示的内容是______。

9.下面的程序执行时,可以从键盘输入一个正整数,然后把该数的每位数字按逆序输出,例如:输入5678,则输出8765,输入1000,则输出0001,请填空。

Private Sub Command1_Click()

Dim x As Integer

x = InputBox(\请输入一个正整数\ While x >= _________ Print x Mod 10; x = x \\ 10 Wend Print x End Sub

10.设有以下函数过程:

Function fun(m As Integer) As Integer Dim k As Integer, sum As Integer sum = 0

For k = m To 1Step -2 sum =sum+k Next k fun=sum End Function

若在程序中用语句s=fun(10)调用此函数,则s的值为___________。

6

本文来源:https://www.bwwdw.com/article/jv7v.html

Top