2007vb期末试卷A

2007vb期末试卷A
2007vb期末试卷A

一、选择题(1分×40=40分)

1.使用菜单编辑器创建菜单时,可在菜单名称中某字母前插入(1)符号,可在运行

程序时按Alt+该字母键访问该命令菜单。

A.下划线

B.@

C.$

D.&

2. 同一模块的不同过程之间,不能通过(2)进行数据传递。

A.全局变量

B.模块级变量

C.静态变量

D.形参与实参结合

3. 下列不适用于顺序文件访问类型的语句或函数是(3)。

A.Input #

B. Input()

C.Put

D. Line Input #

4.下列有关文件的叙述正确的是(4)。

A.若以Output、Append、Random和Binary模式打开一个不存在的文件,则系统会报错

B.一个当前使用的文件号可能对应多个文件

C.在Input方式下,不能使用不同文件号同时打开同一个文件

D.若以Output模式打开一个已存在的顺序文件,则该文件中原有数据将全被删除

5.在VB应用程序中, (5)。

A. 过程的定义可以嵌套,但过程的调用不能嵌套

B. 过程的定义和过程的调用均可以嵌套

C. 过程的定义不可以嵌套,但过程的调用可以嵌套

D. 过程的定义和过程的调用均不可以嵌套

6. 在应用程序中用Private Function Fun(X As Integer, Y As Single) As Integer定

义了函数Fun。调用函数Fun的过程中的变量I、J和K均为Integer型,则下列语句中能正确调用函数Fun的语句是(6)。

①Fun (I), (J) ②Call Fun(I, 365) ③Fun(3.14, 234) ④K = Fun("24","35")

A.③④

B. ①②④

C. ②③

D.②③④

7. 设变量D 为Date型、A 为Integer型、S为String型、 L 为 Long 型,下面赋值语

句中不能正确执行的是(7)。

A.D = #12:30:00#

B. L = "122D3"

C.S = Now

D. A = "3277e2"

8. 表达式 8.5 * 5 Mod 15 \ 3 的值是(8)。

A.3

B.4

C.2

D.14

9.若希望在离开某过程后,还能保存该过程中局部变量的值,则应使用__(9)___关键字在

该过程中定义局部变量。

A、Dim

B、Private

C、Public

D、Static

10. 数学表达式

a ac

b b

2

4 2-

+

-对应的正确Visual Basic表达式为(10)。

A. -b + Sqr(b * b - 4 * a * c)/2 * a

B. -b + Sqr(b * b - 4 * a * c)/(2 * a)

C. (-b + Sqr(b * b - 4 * a * c))/2 * a

D. (-b + Sqr(b * b - 4 * a * c))/2/a

11. VB6.0是(11)位操作系统下的应用程序的开发工具。

A. 32

B. 16

C. 64

D. 128

12. 计时器控件响应的事件是(12)。

A. Interval

B. Click

C. Timer

D. Load

13. 如果选定列表框中的第一项,它的ListIndex属性值是(13)。

A. 0

B. 1

C. 2

D. -1

14、Hide和Show是窗体的(14)。

A. 属性

B. 事件

C. 方法

D. 对象

15. 下面的哪个窗口可以用来调试程序__(15)____。

A. 本地窗口

B. 属性窗口

C. 工程窗口

D. 窗体布局窗口

16.窗体Form1的Name属性是frm,它的Load事件过程名是(16)。

A. Form_Load

B. Form1_Load

C. Frm_Load

D. Me_Load

17.对正实数X的第四位小数四舍五入的VB表达式是(17)。

A.0.001 * Int(x + 0.0005) B.0.001*(1000*x+0.5)

C.0.001 * Int(1000 * x + 5) D.0.001*Int(1000*(x+0.0005))

18. 表达式Mid(“NANJING”,4,2)的值为(18)。

A. IJ

B. ANJI

C. JI

D. NJIV

19. 在VB中,终止一个死循环的方法是按(19)。

A. Ctrl+C

B. Ctrl+Break

C. Shift+C

D. Alt+Break

20. 可以从Do While---Loop循环中退出的语句是(20)。

A. Exit for

B. Until

C. Exit Do

D. Next

21. 设有说明语句Dim X(0 To 4, 4 To 5) As Integer,则数组X中的元素个数有(21)。

A. 8

B. 9

C. 20

D. 10

22. 下列数组定义正确的是(22)。

A. Dim A(10+2)

B. Dim A(2+n)

C. Dim A(n)

D. Dim A(2n)

23. 下面可以正确地声明一个动态数组的是(23)。

A. Private A(n) As Integer

B. Dim A() As Integer

C. Dim A(,) As Integer

D. Dim A(1 To n)

24. VB窗体文件的扩展名是(24)。

A. vbp

B. frm

C. c++

D. for

25. 下面可将数组下标的下界设置为1的语句是(25)。

A. Option Base 0

B. Option Base 1

C. Option Cmpare Text

D. Option Explicit

26. 以下有关对象属性的说法中,错误的是(26)。

A.对象的Name(名称)属性在程序代码中,作为对象的标识名

B.只能在运行时设置或改变的属性不会出现在属性窗口中

C.Visible属性值设为True的对象肯定是活动对象

D.某些属性具有若干子属性,例如Font属性

27. 图形控件不包括(27)。

A. TextBox

B. Picture

C. Image

D. Line

28. 有定义语句Dim a, b As Integer,变量a 的类型和初值是(28)。

A. Integer,0

B. Variant,空值

C. String,""

D. Long,0.0

29. 下列可作容器控件的是(29)。

A. Timer

B. ListBox

C. Frame

D. CheckBox

30. 能够脱离VB集成环境运行的可执行文件的扩展名是(30)。

A. BAS

B. FRM

C. VBP

D. EXE

31. 已知a=-5.96,表达式Int(a)+Fix(a)的值是(31)。

A. 11

B. -11

C. 10

D. -10

32. 如果在一个工程中有多个窗体或模块,则VB默认的启动对象是 (32) 。

A.Sub main()

B.最后添加的窗体

C.标准模块

D.设计时的第一个窗体

33. 调用过程时,系统默认的参数传递方式是 (33)

A.按值传递 B.按地址传递

C.按实参传递 D.按形参传递

34.下面关于对象的作用域说法中,正确的是(34)。

A.分配给已打开文件的文件号,仅在打开该文件的过程范围内有效

B.在窗体模块中定义的全局过程,在整个应用程序中都可以调用它

C.过程运行结束后,过程的静态变量的值仍然保留,所以静态变量作用域是整个模块D.在标准模块中定义的全局变量的作用域比在窗体模块中定义的全局变量的作用域大35.以下有关数组的说法中,正确的是(35)。

A.数组是有序变量的集合,序列中的变量类型可以不同

B.在一定条件下动态数组可以反复改变其维数与大小

C.数组下标用以确定数组元素在数组中的位置,下标取值只能是0或1

D.固定大小数组也可使用ReDim语句改变其大小

36.名为sort的sub子过程的形式参数为一数组,以下的定义语句中正确的是 (36) 。

A.private sub sort(a() as integer)

B.private sub sort(a(10) as integer)

C.private sub sort(byval a() as integer)

D.private sub sort(a(,) as integer)

37.表达式Val("1234.67E-3ab789")的值为(37)。

A. 1234.67

B. 1234.67789

C. 1.23467

D. 表达式出错

38. 窗体模块的通用声明部分放置下列语句,其中错误的是(38)。

①Public A() As Integer ②Public S As String * 8

③ReDim B(3) As Integer ④Dim Const X As Integer = 20

A.③④

B.①②④

C.①②③

D.①②③④

39. 执行以下语句后,a的值为__ (39)__。

Dim a As Integer

a = 1

Do Until a = 100

a = a + 2

Loop

A. 99

B. 100

C. 101

D. 溢出

40. 可以把变长字符串S 中的第一个“ABC”子串,换成“1234”的语句是(40)。

A.S=Left(S, InStr(S, "ABC")) & "1234" & Right(S,Len(S)-InStr(S,"ABC")-2)

B.Mid(S, InStr(S, "ABC"), 3) = "1234"

C.Mid(S, InStr(S, "ABC"), 4) = "1234"

D.S=Left(S,InStr(S,"ABC")-1) & "1234" & Right(S,Len(S)-InStr(S,"ABC")-2)

二、填空题(2分×30=60分)

1. A、B之一为零但不得同时为0的VB表达式为(1)。

2. 下面程序的执行后,I= (2),M= (3),J= (4)。

Dim M As Integer, I As Integer, J As Integer

M = 0

For I = -20 To 20

For J=30 To 0 Step -2

M = M + 1

Next J

Next I

Print I, M , J

3. 设有语句:Option Base 1:Dim A(5,5) As Integer,则A(4,3)元素位于数组的第(5)个元素的位置。

4. VB程序是按行书写的。一个语句可写在一行上;也可以通过在行的末尾加上续行标志“ _”(一个空格加一个下划线字符)而分写在多行上;另外,也可在一个代码行上写入多个语句,但语句之间需要用(6)分隔。

5.运行以下语句,结果为(7)。

A=20 : B=20

Print A=B

6.可以一次性全部清空列表框中的列表项的方法是(8)。

7.结构化程序设计的三种基本结构是顺序、(9)和循环。

8.当复选框被选中时,其Value属性的值是(10),当复选框未被选中时,其Value 属性值是(11),当复选框不能使用时,其Value属性的值是(12)。

9. (13)是在过程定义中调用(或间接调用)自身来完成某一特定的任务的过程。10.执行下面程序后,则数组元素a(1,2)的值是(14)、a(2,3)的值是(15)、a(4,2)的值是(16)。

Option Explicit

Private Sub Command1_Click()

Dim a(4, 4) As Integer, k As Integer

Dim i As Integer, j As Integer, m As Integer, n As Integer

For m = 1 To 4

j = m

For n = 1 To m

k = k + 1

a(n, j) = k

j = j - 1

Next n

Next m

For n = 2 To 4

i = n

For m = 4 To n Step -1

k = k + 1

a(i, m) = k

i = i + 1

Next m

Next n

For n = 1 To 4

For m = 1 To 4

Text1 = Text1 & Right(" " & Str(a(n, m)), 3)

Next m

Text1 = Text1 & vbCrLf

Next n

End Sub

11.执行下面的程序后,窗体上显示的第一行是(17)、第二行是(18)、第三行是(19)。

Option Explicit

Private Sub Command1_Click()

Dim I As Integer, n As Integer

For I = 5 To 15 Step 2

n = fun1(I, I)

Print n

Next I

Print I

End Sub

Private Function fun1(ByVal a As Integer, b As Integer)

b = a + b

fun1 = a + b

End Function

12、下列程序运行后,第二行= (20),第三行= (21)。

Dim ch As String, I As Integer

ch = "DEF"

For I = 1 To Len(ch)

Ch=Mid(ch,2*I-1,1) & Left(ch,Len(ch))

Print ch

Next I

13.下面程序是求出所有的幸运数显示在列表框中,并将幸运数的个数显示到文本框中。凡前两位数字之和等于后两位数字之和的四位数称为幸运数,完善程序。

Private Sub Command1_Click()

Dim i As Integer, n As Integer, n1 As Integer, n2 As Integer

For i = 1000 To 9999

(22)

n2 = i Mod 100

If sum(n1) = sum(n2) Then

(23)

List1.AddItem CStr(i)

End If

Next i

Text1 = n

End Sub

Private Function sum(s As Integer) As Integer

Dim p As Integer, q As Integer

p = s \ 10

(24)

sum = p + q

End Function

14. 用递归函数过程实现求两个数的最大公约数。

(1)在窗体上单击,则弹出2个对话框,分别输入2个正整数,并调用函数过程Gcd();(2)函数过程Gcd(),用来求两个数的最大公约数的递归过程。

完善程序代码:

Option Explicit

Private Sub Form_Click()

Dim M As Integer, N As Integer, G As Integer

M = InputBox("请输入M")

N = InputBox("请输入N")

(25)

Print M; "和"; N; "的最大公约数是"; G

End Sub

Private Function Gcd( (26))

Dim R As Integer

R = X Mod Y

If R = 0 Then

Gcd = Y

Else

X = Y

Y = R

(27)

End If

End Function

15. 下面的程序采用冒泡法排序。随机生成10个两位正整数,按升序排列。请完善程序。

Option Base 1

Private Sub Form_Click()

Dim a(10) As Integer

Dim i As Integer, j As Integer, temp As Integer

Randomize

Print "排序前:"

For i = 1 To 10

a(i) = (28)

Print a(i);

Next i

Print

For i = 1 To 9

For j = 1 To (29)

If a(j) > a(j + 1) Then '两个相邻元素进行比较

temp = a(j)

(30)

a(j + 1) = temp

End If

Next j

Next i

Print "排序后:"

For i = 1 To 10

Print a(i);

Next i

End Sub

相关主题
相关文档
最新文档