VB--过程练习题.pdf
Visual Basic 程序设计寒假作业 一、选择题 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 按位置传递 3Sub 过程与 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)=a:=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 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 C 和 4 D 5 和 4 12.使用 Function 语句定义一个函数过程,其返回值的类型为_。A 只能是符号常量 B 是除数组之外的简单数据类型 C 可在调用时由运行过程决定。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$=ABCDEF 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)=x =y End Sub A 25 和 3 B5 和 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)”D 语句“maxval=max”应改为“maxval =a(max)”|二、判断题 1Sub 过程中不能嵌套定义 Sub 过程。()3函数过程形参的类型与函数返回值的类型没有关系。()4在函数过程中,过程的返回值可以有多个。()5用数组作为过程的参数时,既能以传值方式传递,也能以传地址方式传递。()6形式参数是数组时,不能进行维数说明,只能以一对空括号表示,且括号不能省略。()7形式参数只在所在过程中有效,因此属于局部变量。()8在不同的模块中可以声明定义相同名字的模块级变量,它们代表不同的对象,而且作用域范围不同,因此互不干扰。()$9过程名前加 Static,表示该过程内的局部变量都是静态变量。()12Sub 子过程的过程名不能和同一级别的变量重名。()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%count=count+1 Print 单击窗体;count;次 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 Sum=;sum 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 =Call p1(x,y,z)=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)=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 的值为_。