南华大学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
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 <CR> (<CR>为回车)
b = 65 <CR>
Print a; b <CR>
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
C) 123321 D) 132231
23.计算分段函数:
下面程序段中正确的是( )。
A) If x<0 Then y=0
If x<1 Then y=1
If x<2 Then y=2
If 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=0
C) If x<0 Then
y=0
ElseIf 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
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 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(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
〖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