1、第06章 过程设计题目1.当在Text1文本框中输入字母“A”时,则被调用的事件过程是(D)。A. Form_KeyPress() B. Text1_LostFocus() C. Text1_Click() D. Test1_Change()2. 当单击窗体上名称为Command1的命令按钮时,则光标移动到名称为Text1的文本框中。下面正确的事件过程是(B)。A.Private Sub Command1_Click() Text1.GotFocusEnd SubB. Private Sub Command1_Click() Text1.SetFocusEnd SubC. Private Su
2、b Text1_Click() Command1.GotFocusEnd SubD. Private Sub Text1_Click() Command1.SetFocusEnd Sub3. 单击窗体Form1上的一个列表框List1中某一项时,把该项显示在窗体上,正确的事件过程是(A)。A. Private Sub List1_Click() Print List1.Text End SubB. Private Sub List1_Click() Print List1.ListIndex End SubC. Private Sub List1_Click() Print List1.Lis
3、t(ListIndex) End SubD. Private Sub Form_Click() Print List1.List(List1.ListIndex)End Sub4. 根据阶乘的定义,可编写求阶乘的递归函数过程如下,其中空格处应该是(B)。Private Function Fact(ByVal N As Integer) As Long If N=0 Or N=1 Then Fact=1 Else Fact=_N*Fact(N-1) _ End IfEnd FunctionA. N*N-1 B. N*Fact(N-1) C. N*(N-1) D. N*(N-1)!5. 为达到把a
4、、b中的值交换后输出的目的,某人编程如下: Private Sub Command1_Click() a% = 10:b% = 20 Call swap(a,b) Print a,b End SubPrivate Sub swap(ByVal a As Integer,ByVal b As Integer) c= a:a=b:b=cEnd Sub在运行时发现输出结果错了,需要修改。下面列出的错误原因和修改方案中正确的是(C)。A. 调用swap过程的语句错误,应改为Call swap a,bB. 输出语句错误,应改为:Print ”a”,”b”C. 过程的形式参数有错,应改为:swap(ByR
5、ef a As Integer,ByRef b As Integer)D. swap中3条赋值语句的顺序是错误的,应改为a=b:b=c:c=a6. 下面程序的输出结果是(B)。 Private Sub Command1_Click() ch$=”ABCDEF” proc ch Print ch End SubPrivate Sub proc(ch As String) S=” For k=Len(ch) To 1 Step-1 s=s&Mid(ch,k,1) Next k ch=sEnd SubA. ABCDEF B. FEDCBA C. A D. F7. 某人编写了一个能够返回数组a中10个
6、数中最大数的函数过程,代码如下:Function MaxValue(a() As Integer) As Integer Dim max% max=1 For k = 2 To 10 If a(k)a(max) Then max = k End If Next k MaxValue = maxEnd Function程序运行时,发现函数过程的返回值是错的,需要修改,下面的修改方案中正确的是( C )A. 语句max = 1应改为max = a(1) B. 语句For k = To 10应改为For k = To 10C. 语句MaxValue = max 应改为MaxValue = a(max
7、)D. If语句中的条件a(k)a(max)应改为a(k)max8. 在窗体上画一个名称为Command1的命令按钮,并编写以下程序:Private Sub Command1_Click() Dim n%,b,t t = 1:b = 1:n = 2 Do b = b*n t = t + b n = n +1 Loop Until n9 Print t End Sub 此程序计算并输出一个表达式的值,该表达式是( C )。A. 9! B. 10! C. 1!+2!+9! D. 1!+2!+10!9. 设在名称为Myform的窗体上只有1个名称为C1的命令按钮,下面叙述中正确的是( B )。A.
8、窗体的Click事件过程的过程名是Myform_ClickB. 命令按钮的Click事件过程名是C1_ClickC. 命令按钮的Click事件过程的过程名是Command1_ClickD. 命令按钮的Click事件过程的过程名是Form1_Click10. 工程中有2个窗体,名称分别为Form1、Form2,Form1为启动窗体,该窗体上有命令按钮Command1,要求程序运行后单击该命令按钮时显示Form2,则按钮的Click事件过程应该是( A )。A. Private Sub Command1_Click( ) Form2.ShowEnd SubB. Private Sub Comman
9、d1_Click( ) Form2.VisibleEnd SubC. Private Sub Command1_Click( ) Load Form2End SubD. Private Sub Command1_Click( ) Form2.LoadEnd Sub11. 已知有下面的过程: Private Sub proc1(a As Integer,b As String,Optional x As Boolean) End Sub正确调用此过程的语句是( D ) 。A. Call procl(5) B. Call proc1 5,”abc”,FalseC. proc1(12,”abc”,T
10、rue) D. proc1 5, “abc” 12. 某人创建了1个工程,其中的窗体名称为Form1;之后又添加了1个名为Form2的窗体,并希望程序执行时先显示Form2窗体,那么,他需要做的工作是( A )。A. 在工程属性对话框中把“启动对象”设置为Form2B. 在Form1的Load事件过程中加入语句 Load Form2C. 在Form2的Load事件过程中加入语句Form2.ShowD. 在Form2的TabIndex属性设置为,把Form1的TabIndex属性设置为13. 以下叙述中正确的是(b )。A. 一个Sub过程至少要有一个Exit Sub语句B. 一个Sub过程必须
11、有一个End Sub语句C. 可以在Sub过程中定义一个Function过程,但不能定义Sub过程D. 调用一个Function过程可以获得多个返回值14. 有以下程序:Sub subP(b() As Integer) For i = 1 To 4 b(i) = 2*I Next IEnd SubPrivate Sub Command1_Click() Dim a(1 To 4)As Integer a(1) = 5:a(2) = 6:a(3) = 7: a(4) = 8 subP a For i = 1 To 4 Print a(i) Next iEnd Sub运行上面的程序,单击命令按钮,
12、输出结果为( A )。A. 2468B. 5678C. 10121416D. 出错15. 在窗体上画一个名称为TxtA的文本框,然后编写如下的事件过程:Private Sub TxtA_KeyPress(KeyAscii As Integer) End Sub假定焦点已经位于文本框中,则能够触发KeyPress事件的操作是( D )。A. 单击鼠标 B. 双击文本框 C. 鼠标滑过文本框 D. 按下键盘上的某个键16. 在窗体画一个命令按钮和两个文本框,其名称分别为Command1,Text1和Text2,然后编写如下程序:Dim S1 As String, S2 As StringPriva
13、te Sub Form_Load() Text1.Text = Text2.Text =End SubPrivate Sub Text1_KeyDown(KeyCode As Integer,Shift As Integer) S2 = S2 & Chr(KeyCode)End SubPrivate Sub Text1_KeyPress(KeyAsciil As Integer) S1 = S1 & Chr(KeyAscii)End SubPrivate Sub Command1_Click() Text1.Text S2 Text2.Text S1 S1 = S2 =End Sub 程序运行
14、后,在Text1输入“abc”,然后单击命令按钮,在文本框Text1和Text2中显示的内容分别为(C )。A. abc和ABC B. abc和abc C. ABC和abc D. ABC和ABC17. 以下关于过程的叙述中,错误的是( B )。A. 事件过程是由某个事件触发而执行的过程B. 函数过程的返回值可以有多个C. 可以在事件过程中调用通用过程D. 不能在事件过程中定义函数过程18. 以下关于函数过程的叙述中,正确的是(D )。A. 如果不指明函数过程参数的类型,则该参数没有数据类型B. 函数过程的返回值可以有多个C. 当数组作为函数过程的参数时,既能以传值方式传递,也能以引用方式传递D
15、. 函数过程形参的类型与函数返回值的类型没有关系19. 以下关于KeyPress事件过程中参数KeyAscii的叙述中正确的是(A )。A. KeyAscii参数是所按键的ASCII码B. KeyAscii参数的数据类型为字符串C. KeyAscii参数可以省略D. KeyAscii参数是所按键上标注的字符20. 如果一个工程含有多个窗体及标准模块,则以下叙述中错误的是( D)。 A. 任何时刻最多只有一个窗体是活动窗体B. 不能把标准模块设置为启动模块C. 用Hide方法只是隐藏一个窗体,不能从内存中清除该窗体D. 如果工程中含有SubMain过程,则程序一定首先执行该过程21. 在窗体(名
16、称为Form1)上添加一个名称为Text1的文本框和一个名称为Command1的命令按钮,然后编写一个事件过程。程序运行后,如果在文本框中输入一个字符,则把命令按钮的标题设置为“淮海工学院VB考试”。以下能实现上述操作的事件过程是(A)。A. Private Sub Text1_Change( ) Command1.Caption = 淮海工学院VB考试End SubB. Private Sub Command1_ Click ( ) Caption = 淮海工学院VB考试 End SubC. Private Sub Form1_ Click () Text1.Caption = 淮海工学院V
17、B考试 End SubD. Private Sub Command1_ Click () Text1.Text = 淮海工学院VB考试End Sub22. 在Visual Basic工程中,可以作为“启动对象”的程序是(D)。A. 任何窗体或标准模块 B. 任何窗体或过程C. Sub Main过程或其他任何模块D. Sub Main过程或任何窗体23. 以下关于多窗体程序的叙述中,错误的是(A)。A. 用Hide方法不但可以隐藏窗体,而且能清除内存中的窗体B. 在多重窗体程序中,各窗体的菜单是彼此独立的C. 在多重窗体程序中,可以根据需要指定启动窗体D. 对于多重窗体程序, 需要单独保存每个窗
18、体24. 当一个复选框被选中时,它的Value属性的值是(C)。A. 3 B.2 C.1 D. 025. 以下叙述中错误的是(B )。A. 在KeyPress事件过程中不能识别键盘的按下与释放B. 在KeyPress事件过程中不能识别回车键C. 在KeyDown和KeyUp事件过程中,将键盘输入的A和a视作相同的字母D. 在KeyDown和KeyUp事件过程中,从大键盘上输入的1和从右侧小键盘上输入的1被视作不同的字符26. 一个工程中含有窗体Form1、Form2和标准模块Model1,如果在Form1中有语句Pubilc X As Integer,在Model1中有语句Pubilc Y A
19、s Integer,则以下叙述中正确的是(C)。A. 变量X、Y的作用域相同 B. Y的作用域是Model1C. 在Form1中可以直接使用X D. 在Form2中可以直接使用X和Y27. 在窗体上画一个名称为Text1的文本框,一个名称为Command1的命令按钮,然后编写如下事件过程和通用过程: Private Sub Command1_Click() n = Val(Text1.Text) If n2 = n/2 Then f = f1(n) Else f = f2(n) End If Print f; nEnd SubPublic Function f1(ByRef x) x=x*x
20、f1=x+xEnd FunctionPublic Function f2(ByVal x) x=x*x f2=x+x+xEnd Function程序运行后,在文本框中输入6,然后单击命令按钮,窗体上显示的是(A)。A. 72 36 B. 108 36 C. 72 6 D. 108 628. 在窗体上画一个名称为TxtA的文本框,然后编写如下的事件过程:PrivateSubTxtA_KeyPress(keyasciiasinteger)EndSub若焦点位于文本框中,则能够触发KeyPress事件的操作是(D)。A. 单击鼠标 B. 双击文本框 C. 鼠标滑过文本框 D. 按下键盘上的某个键29
21、. 以下叙述中错误的是(D)。A. 如果过程被定义为Static类型,则该过程中的局部变量都是Static类型B. Sub过程中不能嵌套定义Sub过程C. Sub过程中可以嵌套调用Sub过程D. 事件过程可以像通用过程一样由用户定义过程名30. 下面的过程定义语句中合法的是(D )。A. Sub Proc1(ByVal n() B. Sub Proc1(n) As IntegerC. Function Proc1(Proc1) D. Function Proc1(ByVal n)31. 要想在过程调用后返回两个结果,下面的过程定义语句合法的是(C)。A. Sub Proc1(ByVal n,B
22、yVal m) B. Sub Proc1(n,ByVal m)C. Sub Proc1(n,m) D. Sub Proc1(ByVal n,m)32. Sub过程与Function过程最根本的区别是( D)。A. Sub过程可以试用Call语句或直接使用过程名调用,而Function过程不可以B. Function过程可以有参数,Sub过程不可以C. 两种过程参数的传递方式不同D. Sub过程的过程名不能返回值,而Function过程能通过过程名返回值。33. 在参数传递过程中,使用关键字(A)来修饰参数,可以使之按值传递。A. ByVal B. ByRef C. Value D. Refer
23、ence34有如下程序代码,在去掉Static SUM语句之前和之后,各单击一次命令按钮,执行结果分别为(A)。A. 35和20 B. 35和115 C. 20和115 D. 20和3535. 有如下程序代码,在删去Value过程形参表中的ByVal关键字之前和之后,各单击一次窗体,执行结果分别为(B)。A. 20 10和20 1020 10 10 15B. 20 10和20 1010 15 20 10C. 10 15和10 1510 15 20 10D. 10 15和10 1520 10 10 1536. 在Visual Basic应用程序中,以下正确的描述是(B)。A. 过程的定义可以嵌套
24、,但过程的调用不能嵌套B. 过程的定义不可以嵌套,但过程的调用可以嵌套C. 过程的定义和过程的调用均可以嵌套D. 过程的定义和过程的调用均不可以嵌套37. 有如下程序:Private Static Function Fac(n As Integer) As Integer Dim f As Integer f=f+n Fac=fEnd FunctionPrivate Sub Form_Click() Dim I As Integer For I=2 To 3 Print #;I;= & Fac(I) Next IEnd Sub程序运行后,单击窗体,在窗体上显示的是(B)。A. #2=2#3=3
25、B. #2=2#3=5C. #;2=2#;3=3D. #;2=2#;3=538. 单击命令按钮时,下列程序代码的执行结果为(B)。Private Sub Command1_Click() Dim x As Integer, y As Integer x=12:y=34 Call Pro(x,y) print x;yEnd SubPublic Sub Pro(n As Integer,ByVal m As Integer) n=n Mod 10 m=m10End SubA. 12 34 B. 2 34 C. 2 3 D. 12 339. 下面的Sub过程中,只有一个形参,且形参为窗体类型。空格处
26、应该补充的内容是(C)。A. Form As Form B. FormNum As Form C. Me As Form D. FormNum40. 设有如下过程:Sub Fun(a,b,c) c=a+bEnd Sub以下调用语句中,所有参数的形实结合都是按地址传递的是(D)。A. Call Fun(3,5,z) B. Call Fun(x+y,x-y,z)C. Call Fun(3+x,5+y,z) D. Call Fun(x,y,z)41. 以下关于过程的对象参数描述中,正确的是(C)。A. 过程的对象参数特指窗体,并不包括控件B. 过程的对象参数特指控件,并不包括窗体C. 过程的对象参数
27、的传递只能是按地址传递D. 过程的对象参数的传递只能是按数值传递42. 单击命令按钮时,下列程序代码的执行结果为(a)。Private Sub Command1_Click() Dim a As Integer, b As Integer,c As Integer a=2:b=3:c=4 print Pro2(c,b,a)End SubPublic Function Pro1(x As Integer,y As Integer,z As Integer) Pro1=2*x+y+3*zEnd FunctionPublic Function Pro2(x As Integer,y As Integ
28、er,z As Integer) Pro2=Pro1(z,x,y)+xEnd FunctionA. 21 B. 19 C. 17 D. 3443. 单击命令按钮,下列程序代码的执行结果是(D)。Private Sub Command1_Click() m=5:n=4 Call Pro1(m),n) print m,nEnd SubPublic Sub Pro1(n,m) s=n n=s/m m=s Mod mEnd SubA. 5 1 B. 1 4 C. 5 4 D. 1.25 144. 通用过程可以通过执行“工具”菜单中的(A)命令来建立。A. 添加过程 B. 通用过程 C. 添加窗体 D.
29、 添加模块45. 单击命令按钮时,下列程序代码的执行结果为(D)。Private Sub Command1_Click() y=10 print Fun1(1+Fun1(Fun1(Fun1(y)*10)End SubPrivate Function Fun1(x) Fun1=1/xEnd FunctionA. 2 B. 1.001 C. 0.90909 D. 0.546. 单击命令按钮时,下列程序代码的执行结果为(A)。Private Sub Command1_Click() print Fun1(2,3,0) print Fun1(2,3,4) print Fun1(2,3,0)End Su
30、bPrivate Function Fun1(x,y,z) As Integer Fun1=x*y-zEnd FunctionA. 626B. 622C. 662D. 出错47. 下列程序执行后,在文本框中输入“a”,输出结果是(B)。Private Sub Text1_KeyDown(KeyCode As Integer,Shift As Integer) Print KeyCodeEnd Sub A. 97 B. 65 C. 0 D. 出错48. 单击命令按钮时,下列程序代码的执行结果为(C)。Private Sub Command1_Click() For i=1 To 10 GetValue i Next i print GetValue(i)End SubPrivate Function GetValue(ByVal a As Integer)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1