南华大学2006年度2005级统招本科《计算机程序设计(VB)》期末考 试试卷 考试用时:120分钟 试卷代号:A 班级: 学号 姓名: (注意事项:所有答案要求填到相应答题纸上) 、选择题(第1-20题每题2分,第21-30题每题3分,共70分) 1.我们可以在设计时(属性窗口中)和运行时(程序代码中)设置属性的属性值,以下关于属性 设置的说法正确的是()。 A)在属性窗口中可以设置所有属性的属性值 B)在程序代码中可以设置所有属性的属性值。 C)属性的名称由VB事先定义,用户不能改变 D)所有对象的属性都是可见的 2.一个可执行的VB程序至少要包括一个()。 A)资源文件模块 B)类模块C)窗体模块 D)标准模块 3.以下语句的输出结果是()。 Print Formats(32548.5,“00,0000”) A)32548.5B)32,548.5C)032,548.50 D)32,548.50 4.用于获得字符串S最左边5个字符的函数是()。 A)Lef(1,5) B)Left(s C)Leftstr(S, 5) D)Leftstr(3, 4) 5.下列各组变量声明正确的是()。 A)Dim sdf as integer, tiger as single B)Dim 1%, NS as integer C)Dim %,b%, c%, as integer D) Public dim n% 6.关于For-Next循环的初值、终值与步长,下列说法正确的是()。 A)只能是具体的数值B)只能是表达式C)可以是数值表达式 D)可以是任何类型的表达式 7.若要将某命令按钮设置为默认命令按钮,则应设置为True的属性是()。 ue )Cancel C) Default D)Enabled 8.语句 Print Int(-13.2)输出结果为()。 A)-13.2B)13.2C)-13D)-14 9.下列事件中,由系统触发的是() A) Timer事件B) Activate事件C) Click事件D) DblClick事件 10.若要使标签控件显示时不覆盖其背景内容,应设置标签控件的()属性。 A)Back Color B)Border Style C)ForeColor D) BackStyle 11.关于标准模块,以下说法中正确的是()。 A)标准模块完全由代码组成 B)在标准模块中可以定义控件的属性 C)在标准模块中的公用过程不可被窗体模块中的事件调用 D)窗体模块中的全局变量可以被标准模块中的过程调用 12.关于Ⅴ sual Basic中事件的说法中,不正确的是()。 A)对于一个对象可以识别哪些事件,需要程序员自己决定 B)一个对象可以识别一个或多个事件 C)事件是由Ⅴ sual basic预先定义好的,能够被对象识别的动作 D) DblClick(双击)是Ⅴ sual basic中的一种事件 13.在运行阶段,要在文本框 TextI获得焦点时选中文本框中所有内容,对应的事件过程是 ()。 A)Private Sub TextI Got Focus( Textl. selstart=0 TextI. Sellength=Len(TextI Text) B)Private Sub TextI Lost Focus) Textl. selstart=0
南华大学 2006 年度 2005 级统招本科《计算机程序设计(VB)》期末考 试试卷 考试用时:120 分钟 试卷代号:A 班级: 学号: 姓名: (注意事项:所有答案要求填到相应答题纸上) 一、选择题(第 1-20 题每题 2 分,第 21-30 题每题 3 分,共 70 分) 1.我们可以在设计时(属性窗口中)和运行时(程序代码中)设置属性的属性值,以下关于属性 设置的说法正确的是( )。 A) 在属性窗口中可以设置所有属性的属性值。 B) 在程序代码中可以设置所有属性的属性值。 C) 属性的名称由 VB 事先定义,用户不能改变。 D) 所有对象的属性都是可见的。 2.一个可执行的 VB 程序至少要包括一个( )。 A) 资源文件模块 B) 类模块 C) 窗体模块 D) 标准模块 3.以下语句的输出结果是( )。 Print Format$(32548.5,“000,000.00”) A) 32548.5 B) 32,548.5 C) 032,548.50 D) 32,548.50 4.用于获得字符串 S 最左边 5 个字符的函数是( )。 A) Left(1,5) B) Left(S,5) C) Leftstr(S,5) D) Leftstr(3,4) 5.下列各组变量声明正确的是( )。 A) Dim sdf as integer, tiger as single B) Dim i%, N$ as integer C) Dim %, b%, c%, as integer D) Public dim n% 6.关于 For-Next 循环的初值、终值与步长,下列说法正确的是( )。 A) 只能是具体的数值 B) 只能是表达式 C) 可以是数值表达式 D) 可以是任何类型的表达式 7.若要将某命令按钮设置为默认命令按钮,则应设置为 True 的属性是( )。 A) Value B) Cancel C) Default D) Enabled 8.语句 Print Int(-13.2)输出结果为( )。 A) -13.2 B) 13.2 C) -13 D) -14 9.下列事件中,由系统触发的是( )。 A) Timer 事件 B) Activate 事件 C) Click 事件 D) DblClick 事件 10.若要使标签控件显示时不覆盖其背景内容,应设置标签控件的( )属性。 A) BackColor B) BorderStyle C) ForeColor D) BackStyle 11.关于标准模块,以下说法中正确的是( )。 A) 标准模块完全由代码组成 B) 在标准模块中可以定义控件的属性 C) 在标准模块中的公用过程不可被窗体模块中的事件调用 D) 窗体模块中的全局变量可以被标准模块中的过程调用 12.关于 Visual Basic 中事件的说法中,不正确的是( )。 A) 对于一个对象可以识别哪些事件,需要程序员自己决定 B) 一个对象可以识别一个或多个事件 C) 事件是由 Visual Basic 预先定义好的,能够被对象识别的动作 D) DblClick(双击)是 Visual Basic 中的一种事件 13.在运行阶段,要在文本框 Text1 获得焦点时选中文本框中所有内容,对应的事件过程是 ( )。 A) Private Sub Text1_GotFocus( ) Text1.SelStart=0 Text1.Sellength=Len(Text1.Text) End Sub B) Private Sub Text1_LostFocus( ) Text1.SelStart=0
TextI. Sellength=Len(TextI Text) End Sub C)Private Sub TextI Change( Textl. SelStart=0 Text1. SellengthLen(TextIText) End Sub D)Private Sub TextI Set Focus() Textl. SelStart=0 TextI. Sellength=Len(TextI Text) End Sub 14.如果没有在列表框中选择项目,且列表框的 MultiSelect属性值为默认值(0-None),则 执行语句 List. removeltem list listindex的结果是()。 A)删除列表框的最后一项B)删除列表框的第一项 C)出错 D)删除列表框中的最后添加的一项 15.常用控件的 Style属性值是() A)字符常量 B)逻辑常量 C)数值常量 D)日期常量 16.要清除已经在图片框P1中打印的字符串而不清除图片框中的图像,应使用语句()。 A)Pl Cls B)Pl- picture=LoadPicture(") C)Pl. Print D)Pl piture 17.下列赋值语句正确的是() A)Text l text=TextI text+Text2text B)TextI. name=Text 1. Name+ Text2 Name C)TextI Caption=TextI Caption+Text2 Caption D)Text l. EnablesTextl Enable+ Text2 Enable 18.引用列表框的最后一项应使用() A)List l List(Listl List Count-1) B)Listl List(ListI ListCount) C)List l List( ListCount) D)List 1 List( ListCount-1) 19.列表框控件中的列表内容是通过()属性设置的。 A)Nam B) Caption C)List 20.以下语句的输出结果是()。(在立即窗口中) 为回车) Print a: b A)27口65 B)口276 C)口27口口65 D)口27口口65口(口表示空格) 21.将字符串“hell”添加到列表框的最后,可使用()请语句。 A)List l AddItem"hello", List1 List Count-1 B)List1. Addltem“helo”, List. Listcount C) List additem“ hello”,List. ListIndex-1 D) Listl. addlten“helo”, Listl listindex 2.在窗体(Name属性为Form1)上画两个文本框(其Name属性分别为Tet和Text2)和 个命令按钮(Name属性为 Command1),然后编写如下两个事件过程 Private Sub Command1 Click aF=TextI. Text+val(Text2. Tex Print End Sub Private Sub Formm Load TextI Text- Text2 Text= End sub 程序运行后,在第一个文本框(Text1)和第二个文本框(Text2)中分别输入123和32 然后单击命令按钮,则输出结果为()。 A)444 B)321123
Text1.Sellength=Len(Text1.Text) End Sub C) Private Sub Text1_Change( ) Text1.SelStart=0 Text1.Sellength=Len(Text1.Text) End Sub D) Private Sub Text1_SetFocus( ) Text1.SelStart=0 Text1.Sellength=Len(Text1.Text) End Sub 14.如果没有在列表框中选择项目,且列表框的 MultiSelect 属性值为默认值(0-None),则 执行语句 List1.RemoveItem List1.ListIndex 的结果是( )。 A) 删除列表框的最后一项 B) 删除列表框的第一项 C) 出错 D) 删除列表框中的最后添加的一项 15.常用控件的 Style 属性值是( )。 A) 字符常量 B) 逻辑常量 C) 数值常量 D) 日期常量 16.要清除已经在图片框 P1 中打印的字符串而不清除图片框中的图像,应使用语句( )。 A) P1.Cls B) P1.picture=LoadPicture(“”) C) P1.Print “” D) P1.piture “” 17.下列赋值语句正确的是( )。 A) Text1.text=Text1.text+Text2.text B) Text1.name=Text1.Name+Text2.Name C) Text1.Caption=Text1.Caption+Text2.Caption D) Text1.Enable=Text1.Enable+Text2.Enable 18.引用列表框的最后一项应使用( )。 A) List1.List(List1.ListCount-1) B) List1.List(List1.ListCount) C) List1.List(ListCount) D) List1.List(ListCount-1) 19.列表框控件中的列表内容是通过( )属性设置的。 A) Name B) Caption C) List D) Text 20.以下语句的输出结果是( )。(在立即窗口中) a = 27 (为回车) b = 65 Print a; b A) 27 口 65 B) 口 27 65 C) 口 27 口口 65 D) 口 27 口口 65 口 (口表示空格) 21.将字符串“hello”添加到列表框的最后,可使用( )请语句。 A) List1.AddItem“hello”,List1.ListCount -1 B) List1.AddItem“hello”,List1.ListCount C) List1.AddItem“hello”, List1.ListIndex -1 D) List1.AddItem“hello”, List1.ListIndex 22.在窗体(Name 属性为 Form1)上画两个文本框(其 Name 属性分别为 Text1 和 Text2)和 一个命令按钮(Name 属性为 Command1),然后编写如下两个事件过程: Private Sub Command1_Click() a=Text1.Text+val(Text2.Text) Print a End Sub Private Sub Formm_Load() Text1 Text="" Text2 Text="" End sub 程序运行后,在第一个文本框(Text1)和第二个文本框(Text2)中分别输入 123 和 321, 然后单击命令按钮,则输出结果为( ) 。 A) 444 B) 321123
23.计算分段函数: f(x)= 下面程序段中正确的是( A)Ifx=2 Then y=3 B)If x>=2 Then y=3 If x>=l Then y=2 If x>=0 Then y=l If x=0 Then Elself x>=l Then End lf D)If x>=2 Then Elself x>=l Then Elselfx>=O Tt Else End lf 24.阅读下面的程序段: F I To 3 orJ- For k=I To 3 Next k Next i 执行上面的三重循环后,a的值为()。 B)9 C)14 D)21 5.在窗体上面画一个命令按钮,然后编写如下事件过程: Option Base I Private Sub Command1 Click a=Aray(1,2,3,4) F 4 To 1 Step-1 S=s+a(1)'1 Print s End Sub
0 x=2 Then y=3 B) If x>=2 Then y=3 If x>=1 Then y=2 If x>=0 Then y=1 If x=0 Then y=1 ElseIf x>=1 Then y=2 else y=3 End If D) If x>=2 Then y=3 ElseIf x>=1 Then y=2 ElseIf x>=0 Then y=1 Else y=0 End If 24.阅读下面的程序段: For i = 1 To 3 For j = 1 To i For k = j To 3 a = a + 1 Next k Next j Next i 执行上面的三重循环后,a 的值为( ) 。 A) 3 B) 9 C) 14 D) 21 25.在窗体上面画一个命令按钮,然后编写如下事件过程: Option Base 1 Private Sub Command1_Click() Dim a a = Array(1,2,3,4) j = 1 For i = 4 To 1 Step -1 s = s + a(i)*j j =j*10 Next i Print s End Sub
运行上面的程序,单击命令按钮,其输出结果是() A)4321 B)12 C)34 D)1234 6.阅读程序: Function f(By Val a As Integer) Static c b=b+1 f= a+b+c End Function Private Sub Command1 Click O Dim aAs Integer For i=1 To 3 Print f(a) Next i End Sub 运行上面的程序,单击命令按钮,输出结果为() A)444 B)456 C)468 D)出错 27.阅读程序 Sub subP(b( As Integer) b(1)=2*i End Sub Private Sub Command1 Click Dim a( l To 4)As Integer a(1)=5 a(3)=7 subPar For i=1 To 4 Print a(i) End sub 运行上面的程序,单击命令按钮,输出结果为()。 A)2468 C)10121416 D)出错 28.窗体中有如下代码: Option base 1 Private Sub Form Key Press(Key Ascii As Integer) aF-array(1,2,3,4,5) If Key Ascii-32 Then For F5 To I Step-I If a(i)<al Then al=a(i) End If Next i End lf Print al a2
运行上面的程序,单击命令按钮,其输出结果是( ) 。 A) 4321 B) 12 C) 34 D) 1234 26.阅读程序: Function f(ByVal a As Integer) b = 0 Static c b = b+1 c = c+1 f = a+b+c End Function Private Sub Command1_Click () Dim a As Integer a =2 For i =1 To 3 Print f(a); Next i End Sub 运行上面的程序,单击命令按钮,输出结果为( ) 。 A) 4 4 4 B) 4 5 6 C) 4 6 8 D) 出错 27.阅读程序: Sub subP(b() As Integer) For i =1 To 4 b(i)=2*i Next i End Sub Private 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 i End Sub 运行上面的程序,单击命令按钮,输出结果为( ) 。 A) 2 4 6 8 B) 5 6 7 8 C) 10 12 14 16 D) 出错 28.窗体中有如下代码: Option base 1 Private Sub Form_KeyPress(KeyAscii As Integer) a=array(1,2,3,4,5) a1=a(1) a2=1 If KeyAscii=32 Then For i=5 To 1 Step –1 If a(i)<a1 Then a1=a(i) a2=i End If Next i End If Print a1;a2
End Sub 则在程序执行后,按空格键,输出的结果是() A)1 C)55 D)5 29.在窗体上面画一个命令按钮,然后编写如下事件过程: Private Sub Command1 Click =+1 Loop Until 1>=7 Print"=” End Sub 运行上面的程序,单击命令按钮,其输出结果是()。 A)i=10 B)Jll C)j=12 30.有如下函数 Private Function FirstFunc(x As Integer, y As Integer )As Integer Dim n as integer Do While n <=4 End Function 调用该函数的事件过程如下: Private Sub Command1 Click Dim xAs Integer, y As Integer, n As Integer, z As Integer For n= 1 To 3 z=FirstFunc(x, y) Next n Print End Sub 运行上面的程序,单击命令按钮,其输出结果是()。 A)16 C)3 D)1 填空题(每空2分,共30分) 1.表达式Fⅸx(-32.68)+nt-23.02)的值为_〖1〗 2.假定建立了一个工程,该工程包括两个窗体,其名称(Name属性)分别为 Forml和Form2 启动窗体为Form1。在 Forml画一个命令按钮 Command1,程序运行后,要求当单击该命令 按钮时, Forml窗体消失,显示窗体Form2,请在〖2〗和〖3〗处将程序补充完整。 Private Sub Commandl Click 〖2〗Form1 End sub 3.在窗体上画一个命令按钮,然后编写如下事件过程 Private Sub Command1 Click Dim a(l To 10) Dim p(I To 3 k=5 For i=l To 10 a()= Next i For 1=1 To 3
End Sub 则在程序执行后,按空格键,输出的结果是( ) A) 1 1 B) 1 5 C) 5 5 D) 5 1 29.在窗体上面画一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click() i=4 j=5 Do i=i+1 j=j+2 Loop Until i>=7 Print “j=”;j End Sub 运行上面的程序,单击命令按钮,其输出结果是( ) 。 A) j=10 B) j=11 C) j=12 D) j=13 30.有如下函数 Private Function FirstFunc(x As Integer, y As Integer) As Integer Dim n As Integer Do While n <= 4 x = x + y n = n + 1 Loop FirstFunc = x End Function 调用该函数的事件过程如下: Private Sub Command1_Click() Dim x As Integer, y As Integer, n As Integer, z As Integer x = 1: y = 1 For n = 1 To 3 z = FirstFunc(x, y) Next n Print z End Sub 运行上面的程序,单击命令按钮,其输出结果是( ) 。 A) 16 B) 9 C) 3 D) 1 二、填空题(每空 2 分,共 30 分) 1.表达式 Fix(-32.68)+Int(-23.02)的值为 〖1〗 。 2.假定建立了一个工程,该工程包括两个窗体,其名称(Name 属性)分别为 Form1 和 Form2, 启动窗体为 Form1。在 Form1 画一个命令按钮 Command1,程序运行后,要求当单击该命令 按钮时,Form1 窗体消失,显示窗体 Form2,请在〖2〗和〖3〗处将程序补充完整。 Private Sub Command1_Click() 〖2〗 .Form1 Form2. 〖3〗 End Sub 3.在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Dim a(1 To 10) Dim p(1 To 3) k=5 For i=1 To 10 a(i)=I Next i For i=1 To 3
p()=a(i*i) Next i For i=1 To 3 k=k+p(1)*2 Print k End sub 程序运行后,单击命令按钮,输出结果是〖4〗。 4.在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Command1 Click Dim a(3, 3)As Integer For i=0 To 3 For j=1 To 3 If i=j Then a(1j)=0 a(J)=1 nd if Next For 1=0 to 3 For j=0 to 3 s=(L,) next next print s End sub 程序运行后,单击命令按钮,输出结果是〖5〗 5.设某列表框共有10项,按题目要求补齐程序,完成相应的功能 (1)按下命令按钮 Command1时在窗体上删除第1、3、5、7、9项: Private Sub Command1 Click() For i=l To 5 〖6〗 (2)在列表框的每一项之后插入一个新的项: Private Sub Command1 Click() For i=l to 10 x= InputBox(“请输入插入的第“+sr(I+”项内容”) Listl additem Next i End Sub 6.下列程序实现了打印一个由字符“*”组成的倒三角形的图形,如下所示 请填写其中的空白处。 Private Sub Command1 Click Dim intIne As Integer, intRaw As Integer, intSpace As Integer For inlIne =1 To 6 For intspace=1To_K8〗 Print For intRa= 1 To Print
p(i)=a(i*i) Next i For i=1 To 3 k=k+p(i)*2 Next i Print k End Sub 程序运行后,单击命令按钮,输出结果是 〖4〗 。 4.在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Dim a(3, 3) As Integer For i = 0 To 3 For j = 1 To 3 If i = j Then a(i,j)=0 else a(i,j)=1 end if Next Next For i=0 to 3 For j=0 to 3 s=s+a(i,j) next next print s End Sub 程序运行后,单击命令按钮,输出结果是 〖5〗 。 5.设某列表框共有 10 项,按题目要求补齐程序,完成相应的功能。 (1)按下命令按钮 Command1 时在窗体上删除第 1、3、5、7、9 项: Private Sub Command1_Click( ) For i=1 To 5 List1. 〖6〗 Next i End Sub (2)在列表框的每一项之后插入一个新的项: Private Sub Command1_Click( ) For i=1 to 10 x=InputBox(“请输入插入的第“+str(I)+”项内容”) List1.AddItem 〖7〗 Next i End Sub 6.下列程序实现了打印一个由字符“*”组成的倒三角形的图形,如下所示: ******* ***** *** * 请填写其中的空白处。 Private Sub Command1_Click() Dim intLine As Integer, intRaw As Integer, intSpace As Integer For intLine = 1 To 6 For intSpace = 1 To 〖8〗 Print " "; Next For intRaw = 1 To 〖9〗 Print "*";
Next Next End sub 7.下面的程序用“冒泡”法将数组a中的10个整数按升序排列,请在〖11〗〖12〗、〖13〗 处将程序补充完整。 Option Base I Private Sub Command1 Click aarray(67845,324,528439387,87,875,273,823) F Ifa()〖13〗 al=a(i) End lf Print a(i) End Sub 8.以下程序是计算100以内所有素数之和。请在〖14〗、〖15〗处将程序补充完整 Private Sub Command1 Click Dim n as integer, x as integer, sum as Integer sum=2 For n=3 to 100 step 2 For x-2 to n-1 If〖14〗 then exit for Ifx= n then_〖15〗 Next n Print sum End sub 参考答案 、选择题 1.C2.C3.C4.A5A6.D7.A8.D9.A10.D l1A12C13C14.B15C16.A17A18.A19.C20.B 21C22B23.D24C25D26B27BA28A29.B30.A 二、填空题 〖1〗-56 〖2〗 Unload 〖3〗Show 〖4〗33 〖5〗9 〖6〗 emoveltem i-1 7〗x2*-1 〖8〗 intI 〖9〗2*(5- intIne)-1 〖10〗Pr l1〗1To10 〖12〗i+1To10
Next 〖10〗 Next End Sub 7.下面的程序用“冒泡”法将数组 a 中的 10 个整数按升序排列,请在〖11〗、〖12〗、〖13〗 处将程序补充完整。 Option Base 1 Private Sub Command1_Click() Dim a a=Array(678,45,324,528,439,387,87,875,273,823) For i= 〖11〗 For j= 〖12〗 If a(i) 〖13〗 a(j) Then a1=a(i) a(i)=a(j) a(j)=a1 End If Next j Next i For i=1 To 10 Print a(i) Next i End Sub 8.以下程序是计算 100 以内所有素数之和。请在〖14〗、〖15〗处将程序补充完整。 Private Sub Command1_Click() Dim n as integer, x as integer, sum as Integer sum=2 For n=3 to 100 step 2 For x=2 to n-1 If 〖14〗 then Exit for Next x If x=n then 〖15〗 Next n Print sum End Sub 参考答案 一、选择题 1. C 2. C 3. C 4. A 5. A 6. D 7. A 8. D 9. A 10.D 11.A 12.C 13.C 14 .B 15.C 16.A 17.A 18.A 19.C 20.B 21.C 22.B 23.D 24.C 25.D 26.B 27.BA 28.A 29.B 30.A 二、填空题 〖1〗-56 〖2〗Unload 〖3〗Show 〖4〗33 〖5〗9 〖6〗emoveItem i-1 〖7〗x,2*i-1 〖8〗intLine 〖9〗2 * (5 - intLine) – 1 〖10〗Print 〖11〗1 To 10 〖12〗i+1 To 10
〖13〗>= 14〗 n mod x=0 〖15〗sum=sum+n
〖13〗>= 〖14〗n mod x = 0 〖15〗sum=sum+n