国二VB全真模拟题

更新时间:2024-03-31 04:46:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

全国计算机等级考试 二级VB 全真模拟试题

一、选择题:35 题,2 分/题,共70 分

1. 当运行程序时,系统自动执行启动窗体的某个事件过程。 这个事件过程是(A )

A) Load B) Click C) Unload D) GotFocus

2. 无论何控件,都具有一个共同属性。这个属性是( C)

A) Text B) Font C) Name D) Caption

3. 在一行内写多条语句时,语句之间要用某个符号分隔。这 个符号是( D)

A) , B) ; C) . D) :

4. 表达式3^2*2+3 MOD 10\\4 的值是(C )

A) 18 B) 1 C) 19 D) 0

5. 下面的变量名合法的是( A)

A) k_name B) k ame C) name D) k-name

6. 设有如下变量声明Dim time1 As Date,为变量time1 正确

赋值的表达式是(A ) A) time1 = #11:34:04 #

B) time1 = Format(Time,\

C) time1 = #\

D) time1 = Format(\

7. 表达式 12000 + \的值是( B)

A) 12329 B) \

C) \ D) \

8. 若设 a = 4, b = 5, 则下列表达式值为真的是(D )

A) (True+a) >0 And b>10 B) a>b Or b>10-a

C) (False-b< 0) Eqv (a>b) D) a>b Xor b+3>5

9. 当窗体上的文字或图形被覆盖或最小化后能恢复原貌,需 要设置窗体的属性是( D)

A) Appearance B) Visible

C) Enable D) AutoRedraw

10. 在窗体上画一个名称为 Command1 的命令按钮,编写以 下程序:

Private Sub Command1_Click( )

Dim a As Integer

Static b As Integer

a = a + b

b = b + 4

Print a;b '如果改成Print a,b 会有什么不同?

End Sub

程序运行后,单击该命令按钮三次,屏幕上显示的值是 (D)

A) 4 12 B) 0 4

C) 4 8 D) 8 12

11. Visual Basic 是一种面向对象的程序设计语言,构成对象 的三要素是( B)

A) 属性、控件和方法 B)

C) 窗体、控件和过程 D)

12. 下列程序段错误的是( A)

属性、事件和方法 控件、过程和模块 A) Dim a As Integer

a = array(1,2,3,4)

B) Dim a() ,b()

a = arr

C) Dim a As Variant

a = array(1,\

D) Dim a() As Variant

a = array(1,2,3,4)

13. 表达式 String(1,\ \的值是( A)

A) \

B) \

C) \

D) \

14. 下列程序段中,能正常结束循环的是(C )

A) I = 1

Do

I = I + 2

Loop Until I = 10

B) I = 5

Do

I = I + 1

Loop Until I < 0

C) I = 10

Do

I = I + 1

Loop Until I > 0

D) I = 6

Do

I = I - 2

Loop Until I = 1

15. 引用列表框(List1)最后一个数据项应使用的表达式是 (B)

A) List1.List(List1.ListCount)

B) List1.List(List1.ListCount-1)

C) List1.List(ListCount)

D) List1.List(ListCount-1)

16. 有如下程序:

Option Base 1

Private Sub Command1_Click()

Dim x, y(3, 3)

x = Array(1,2,3,4,5,6,7,8,9)

For i = 1 To 3

For j = 1 To 3

y(i, j) = x(i*j)

If(j > = i) Then Print y(i, j) ;

Next j

Print

Next i

End Sub

运行时输入出的结果是(D)

A) 1 2 3

2 4 6

4 6 8

B) 1 2 3

2 4 6

3 6 9

C) 1 2 4 3 6 9

D) 1 2 3

4 6 9

17. 在窗体上画一个名称为 Command1 的命令按钮,编写如 下程序:

Private Sub Command1_Click()

Print pl(3,7)

End Sub

Public Function pl(x As Single, n As Integer) As Single

If n=0 Then

pl=1

Else

If n Mod 2=1 Then

pl=x*x+n

Else

pl=x*x-n End If

End If

End Function

程序运行后,单击该命令按钮,屏幕上显示的结果是 (D)

A) 2 B) 1 C) 0 D) 16

18. 以下属性和方法中,可重定义坐标系的是( C)

A) DrawStyle 属性 B) DrawWidth 属性

C) Scale 方法 D) ScaleMode 属性

19. 在窗体上画一个文本框,然后编写如下事件过程:

Private Sub Form_Load()

Text1.Text = \

Text1.SetFocus

For i = 1 To 5

Sum = Sum +i

Next i

Text1.text = Sum

End Sub

上述程序的运行结果是( D)

A) 在文本框中输出 15 B) 在文本框中输出 0

C) 在文本框中输出不定值 D) 出错

20. 已知x 代表某个百分制成绩,下列程序段用于显示对应 的五级制成绩,正确的是( C)

A) If x > = 60 Then

Print \及格\

ElseIf x > = 70 Then

Print \中\

ElseIf x > = 80 Then

Print \良\

ElseIf x > = 90 Then

Print \优\

Else

Print \不及格\

End If

B) If x < 90 Then Print \良\

ElseIf x < 80 Then

Print \中\

ElseIf x < 70 Then

Print \及格\

ElseIf x < 60 Then

Print \不及格\

Else

Print \优\

End If

C) If x > = 90 Then

Print \优\

ElseIf x > = 80 Then

Print \良\

ElseIf x > = 70 Then

Print \中\

ElseIf x > = 60 Then

Print \及格\

Else

Print \不及格\

End If

D) Select Case x

Case x > = 60

Print \及格\

Case x > = 70

Print \中\

Case x > = 80

Print \良\

Case x > = 90

Print \优\

Case Else

Print \不及格\

End Select

21. 下面说法不正确的是(D )

A) 滚动条的重要事件是 Change 和 Scroll

B) 框架的主要作用是将控件进行分组,以完成各自相对 独立的功能

C) 组合框是组合了文本框和列表框的特性而形成的一 种控件

D) 计时器控件可以通过对Visible 属性的设置,在程序 运行期间显示在窗体上

22. 在窗体上画一个名称为 Check1 复选框,在程序运行的过 程中,若选中复选框,则 Check1.Value 的值是(D )

A) True B) 2 C) 0 D) 1

23. 在下列关于菜单的说法中,错误的是( B)

A) 每一个菜单项都是一个控件,与其他控件一样都有自 己的属性和事件

B) 除Click 事件外,菜单项还能响应其他的如DblClick 等事件过程

C) 菜单项的快捷键不可以任意设置

D) 在程序执行时,如果菜单项的Enabled 属性为False, 则该菜单项变成灰色,不能被用户选择

24. 下面关于多重窗体的叙述中,正确的是(B )

A) 作为启动对象的Main 子过程只能放在窗体模块内

B) 如果启动对象是Main 子过程,则程序启动时不加载 任何窗体,以后由该过程根据不同情况决定是否加载 窗体或加载哪一个窗体

C) 没有启动窗体,程序不能执行

D) 以上都不对

25. 与键盘操作有关的事件有KeyPress、KeyUp 和KeyDown 事件,当用户按下并且释放一个键后,这三个事件发生 的顺序是(A )

A) KeyDown、KeyPress、KeyUp

B) KeyDown、KeyUp、KeyPress

C) KeyPress、KeyDown、KeyUp

D) 没有规律

26. 要从磁盘上读入一个文件名为“c:\\filel.txt”的顺序文件, 下面程序段正确的是( A)

A) F=\

Open F For Input As # 1

B) F=\

Open \

C) Open \

D) Open c:\\filel.txt For Input As # 1

27. 下列关于过程叙述不正确的是(D )

A) 过程的传值调用是将实参的具体值传值递给形参

B) 过程的传址调用是将实参在内存的地址传递给形参

C) 过程的传值调用参数是单向传递的,过程的传址调用 参数是双向传递的

D) 无论过程传值调用还是过程传址调用,参数传递都是 双向的

28. 执行了下面程序后,组合框中数据项的值是(B )

Private Sub Form_Click()

For i=1 to 6

Combo1.AddItem i

Next i

For i= 1 to 3

Combo1.RemoveItem i

Next i

End Sub

A) 1 5 6 B) 1 3 5 C) 4 5 6 D) 2 4 6

29. 若在 Shape 控件内以 FillStyle 属性所指定的图案填充区 域,而填充图案的线条颜色由FillColor 属性指定,非线 条的区域由BackColor 属性填充,则应( A)

A) 将 Shape 控件的 FillStyle 属性设置为2 至 7 间的某 个值,BackStyle 属性设置为 1

B) 将 Shape 控件的 FillStyle 属性设置为 0 或 1, BackStyle 属性设置为 1

C) 将 Shape 控件的 FillStyle 属性设置为 2 至 7 间的某 个值,BackStyle 属性设置为 0

D) 将 Shap 控件的 FillStyle 属性设置为 0 或 1, BackStyle 属性设置为 0

30. 下列程序的执行结果是( A)

Private Sub Form_Activate()

Dim score(3) As Integer, total As Integer

Dim aa_score As Variant

score(1) =50: score(2) =14:score(3) =36

tota=0: i=0

For Each aa_score In score

i=i+1

total=total + aa_score

Print i, aa_score, total

Next

End Sub

A) 1 0 0

2 50 50

3 14 64

4 36 100

B) 1 50 50

2 14 64

3 36 100

C) 0 50 50

1 14 64

2 36 100

D) 0 0 0

1 50 50 2 14 64

3 36 100

31. 在Activate事件过程中,写入下面的程序:

Option Base 1

Private Sub Form_Activate()

Dim t As Integer

Dim a( ) As Variant

a=Array (2,4,6,8,10,1,3,5,7,9)

For i=1 to 10\\2

t= a(i)

a(i) =a(10 - i + 1)

a(10 - i + 1) =t

Next i

For j= 1 to 10

Print a(j) ;

Next j

End Sub

运行程序后,显示的结果是(C )

A) 2 4 6 8 10 1 3 5 7 9 B) 1 3 5 7 9 2 4 6 8 10

C) 9 7 5 3 1 10 8 6 4 2 D) 10 8 6 4 2 9 7 5 3 1

32. 在Activate 事件过程中,写入下面的程序:

Private Sub Form _Activate()

Dim s As String, a As String, b As String

a= \

For i= 1 to 4

If i / 2= Int(i / 2) Then

s=String(Len (a) +i , b)

Else

s=String(Len(a) + i, a)

End If

Print s;

Next i

End Sub

运行程序后,显示结果是( C)

A) $$***$$$$***** B) *$$**$$***$$$****$$$$

C) **$$$****$$$$$ D) $*$$**$$$***$$$$**** 33. 在窗体上设置相应的控件,并在代码窗口编写下列程序:

Private Sub Form_Click()

Dim a As Long ,b As Long

a=InputBox(\请输入若干个整数\

Call P(a,b)

Print b

End Sub

Private Sub P(x As Long, y As Long)

Dim n As Integer, j As String*1, s As String

k=Len(Trim(Str(x) ) )

s=\

For i= k To 1 Step -1

j=Mid(x,i,1)

s=s+j

Next i

y=Val(s)

End Sub

运行程序,在 InputBox 框中输入 123456,然后单击“确 定”按钮,则输出结果是( B)

A) 123456 B) 654321

C) 135246 D) 246135

34. 设定文本框内的文字内容是否允许修改的属性是(B )

A) Text B) Locked

C) PasswordChar D) Multiline

35. 要建立一个学生成绩的随机文件,如下定义了学生的记 录类型,由学号、姓名、三门课程成绩(百分制)组成, 下列程序段正确的是( C)

A) Type studl

no As Integer

name AS String

score(1 to 3) As Single

End Type

B) Type studl

no As Integer

name As String *10

score() As Single

End Type

C) Type studl

no As Integer

name As String *10

score(1 to 3) As Single

End Type

D) Type studl

no As Integer

name As String

score(1 to 3) As String

End Type

二、填空:每空2 分,共30 分

1. 有一图书查询系统,当在组合框中选择书名后,则在两个 文本框中显示出作者和出版社,当单击“结束”按钮时, 结束程序。程序中有一个组合框、两个文本框、三个标签 及一个命令按钮。请__[1]__、_[2]__和__[3]__处填入适当 的内容,将程序补充完整。

Dim k As Integer

dim author() ,b_concern

Privage Sub Combol_Click()

Dim n As Integer

n=Combol.ListIndex

Text(1) =__[1]__

Text(2) =__[2]__

End Sub

Private Sub Command1_Click()

__[3]__

End Sub

Private Sub Form_Load()

Combol.AddItem \哭泣的骆驼\

Combol.AddItem \双城记\

Combol.AddItem \窗外\

Combol.AddItem \红与黑\

Combol.AddItem \废都\

author() =Array( \三毛\荻更斯\琼瑶\

\司汤达\贾平凹\

b_concern() =Array( \作家\商务\香江文艺\ \外国文学\、\上海\

End Sub

答案:[1] author(n) [2] b_concerm(n) [3] End

2. 在窗体上画一个名称为 Timer1 的计时器和一个名称为 Label1 的标签。当运行程序后,将在标签中显示当前时间 的数字时钟(包括时:分:秒)。请在__[4]__处填入适当的内 容,将程序补充完整。

Private Sub Form_Load()

Timer1.Interval=1000

End Sub

Private Sub Timer1_timer()

__[4]__

End Sub

答案:[4] Labell.Caption=Time

3. 在刚建立工程时,使窗体上的所有控件具有区别于默认值

的相同的字体格式,应对__[5]__的__[6]__属性进行设置。 答案:[5] Form 窗体 [6] Font

4. 整形变量M 中存放了一个两位数,要将两位数交换位置, 例如 24 变成42,实现的表达式为__[7]__ 。

答案:[7] ((M mod 10) * 10 + M \\ 10)

5. 下列程序运行时,当单击窗体后,从键盘输入一个字符, 判断该字符是字母字符、数字字符还是其他字符,并做相 应的显示。窗体上无任何控件,并禁用Asc 和 Chr 函数, Select Case 语句中禁用枚举值。请在__[8]__、__[9]__、 __[10]和__[11]__ 处填入适当的内容,将程序补充完整。

Private Sub Form_Load()

Dim x As String * 1

X=__[8]__(\请输入单个字符\字符\

Select Case UCase(__[9]__)

Case __[10]__

Print X+\是字母字符\

Case __[11]__

Print X+\是数字字符\

Case Else

Print X+\是其他字符\ End Select

End Sub

答案:[8] InputBox [9] X

[10] \ [11] \

6. 下列程序为求 Sn=a+aa+aaa+??+aa?n 个 a),其中a 为一个随机数产生的 1~9 (包括1、9)中的一个正整数, n 是一个随机数产生的 5~10(包括5、10)中的一个正整

a

( 数,请在__[12]__和__[13]__处填入适当的内容,将程序补 充完整。

Private Sub Form_Load ()

Dim a As Integer,n As Integer, S As Double

Dim Sn As Double

a=Fix(9*Rnd) +1

n=Fix(6*Rnd) +5

Sn=0

S=0

For i=1 to __[12]__

S=S+a*10^(i-1)

__[13]__ print Sn

Next i

End Sub

答案:[12] n [13] Sn = Sn + S

7. 如果菜单标题的某个字母前输入一个“__[14]__ ”符号, 那么该字母就成了热键字母;如果建立菜单时在标题文本 框中输入一个“__[15]__ ”,那么显示时将形成一行分隔符。

答案:[14] & [15] –

考试题题型

一、选择题(共30 题,每题1 分,共30 分)

1. 数学表达式 ln | ( tane ) /( x ) |x y? ? 3 ? 对应的 Visual

Basic 算术表达式( A )。

A) Log(Abs((Exp(3.14159)+Tan(x) ^3) /(Sqr(x)+y) ) )

B) Ln|Abs((Exp(3.14159)+Ttan(x) ^3) /(Sqr(x)+y) ) | C) Ln(Abs((Exp(3.14159)+Tan(x) ^3) /Sqrt(x)+y) ) D) Log|(Exp(3.14159)+Tan(x) ^3/(Sqrt(x)+y) ) |

2. 下列变量名中合法的是( D )。

A) abs B) -a1 C) cdc d D) Abc_10 3. 坐标点(x, y)落在以(3, -4)为圆心、以 30 为直径的圆面上(包括

圆面的边界)的逻辑表达式在VB 中表示为:(B )

A) (x-3)^2+(y+4)^2 <= 30^2 B) (x-3)^2+(y+4)^2 <= 15^2 C) (x+3)^2+(y-4)^2 <= 30^2 D) (x+3)^2+(y-4)^2 <= 15^2

4. 能正确表示“X>Y>Z”的VB 逻辑表达式是

( A )。

A) X>Y And Y>Z B) X>Y>Z

C) X>Y Or Y>Z D) X>Y And >Z 5. 一个对象可以执行的动作与可被对象识别的动作分别称 为 ( B)

A) 事件、方法 B) 方法、事件 C) 属性、方法 D) 过程、事件 6. 在设计阶段,当双击窗体上的某个控件时,所打开的窗口 是( C )

A) 工程资源管理器窗口 B) 工具箱窗口 C) 代码窗口 D) 属性窗口 7. 以下能在窗体Form1 的标题栏中显示“Visual Basic 窗体\ 的语句是( C )

A) Form1.Name=\窗体\ B) Form1.Title=\窗体\ C) Form1.Caption=\窗体\ D) Form1.Text=\窗体”

8. 使用( B )方法可将新的列表项添加到一个列表框中。 A) Print B) AddItem C) Clear D) RemoveItem

9. 语句 Print 5/4*6\\5 Mod 2 的输出结果是

( B ) A) 0 B) 1 C) 2 D) 3 10. 设有如下变量声明: Dim TestDate As Date 为变量TestDate 正确赋值的表达方式是( A ) A) TextDate = #1/1/2002# B) TestDate = #\ C) TextDate = Date(\

D) TestDate = Format(\

11. 语句Dim A(5, -1 To 4) As Integer,定义了A 数组中有

(D )个元素。

A) 20 B) 30 C) 25 D) 36

12. 以下定义数组或给数组元素赋值的语句中,正确的是 ( A)

A) Dim a As Variant a=Array(1,2,3,4,5) B) Dim a(10) As Integer a=Array(1,2,3,4,5) C) Dim a%(10)

a(1) =\

D) Dim a(3) , b(3) As Integer a(0) =0 a(1) =1 a(2) =2 b=a

13. 以下Case 语句中错误的是( C ) A) Case 0 To 10 B) Case Is>10 C) Case Is>10 And Is<50 D) Case 3,5,Is>10 14. 在参数传递过程中,形参得到值,如果在被调过程中改 变了形参的值,实际参数的值也发生了改变,这种参数传 递方式称为( A )传递。

A) 按地址 B) 按值 C) 按参数 D) 实参传递 15. 下列循环正常结束的是( C ) A )i=5 Do

i=i+1

Loop Until i<0 B) i=1 Do

i=i+1

Loop until i=0 C) i=10 Do

i=i+1

Loop While i>0 D) i=6 Do

i=i-1

Loop Until i=1

16. 哪个程序段不能分别正确显示 1 !,2 !,3 !,4 !的值(B ) A )For i=1 to 4 n=1

For j=1 to I n=n*j

Print n Next i

B) For i=1 to 4 For j=1 to i n=1 n=n*j Next j Print n Next i C) n=1

For j=1to 4 n=n*j print n Next j D) n=1:j=1

Do While j<=4 n=n*j Print n j=j+1 Loop 17. 下列程序执行的输入结果是

( B ) A) 3 6 14 B) 14 6 3 C) 14 3 6 D) 16 4 3

S=0:T=0:U=0

For i=1 to 3 For j=1 to i

For k=j to 3 S=S+1 Next k T=T+1 Next j U=U+1 Next i

Print S;T;U

18. 以下关于函数过程的叙述中,正确的是

( A )

A) 函数过程形参的类型与函数返回值的类型没有关系 B) 在函数过程中,过程的返回值可以有多个

C) 当数组作为函数过程的参数时,既能以传值方式传 递,也能以传址方式传递

D) 如果不指明函数过程参数的类型,则该参数没有数据 类型

19. 以下叙述中错误的是( D )

A) 下拉式菜单和弹出式菜单都用菜单编辑器建立

B) 在多窗体程序中,每个窗体都可以建立自己的菜单系 统

C) 除分隔线外,所有菜单项都能接收Click 事件

D) 如果把一个菜单项的Enabled 属性设置为False,则

该菜单项不可见

20. 以下叙述中错误的是( B )

A) 在KeyPress 事件过程中不能识别键盘的按下与释放 B) 在KeyPress 事件过程中不能识别回车键

C) 在 KeyDown 和 KeyUp 事件过程中,将键盘输入的 \和\视作相同的字母

D) 在 KeyDown 和 KeyUp 事件过程中,从大键盘上输 入的\和从右侧小键盘上输入的\被视作不同的 字符

21. 在窗体上画一个名称为 CD1 的通用对话框,一个名称为 Command1 的命令按钮。然后编写如下事件过程: Private Sub Command1_Click() CD1.FileName =\

CD1.Filter=\ CD1.FilterIndex=2

CD1.DialogTitle=\ CD1.Action=1 End Sub

对于这个程序,以下叙述中错误( D )

A) 该对话框被设置为“打开”对话框 B) 在该对话框中指定的默认文件名为空 C) 该对话框的标题为VBTest

D) 在该对话框中指定的默认文件类型为文本文件 (*.Txt)

22. 在窗体上画一命令按钮(其NAME 属性为 Command1), 然后编写如下代码: Option Base 1

Private Sub Command1_Click() Dim a s = 0

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

的 运行上面的程序,单击命令按钮,其输出结果是( B ) A) 4321 B) 1234 C) 34 D) 12 23. 在窗体上画一个名称为Command1 的命令按钮和一个名 称为 Text1 的文本框,然后编写如下事件过程: Private Sub Command1_Click() n = Val(Text1.Text) For i = 2 To n

For j = 2 To sqr(i)

If i Mod j = 0 Then Exit For

Next j

If j > Sqr(i) Then Print i Next i End Sub

该事件过程的功能是( C )

A) 输出 n 以内的奇数 B) 输出 n 以内的偶数

C) 输出 n 以内的素数 D) 输出n 以内能被j 整除的数 24. 在窗体上画一个名称为 Command1 的命令按钮,然后编 写如下通用过程和命令按钮的事件过程: Private Function f(m As Integer) If m Mod 2 = 0 Then f = m Else f = 1 End If End Function

Private Sub Command1_Click() Dim i As Integer s = 0

For i = 1 To 5 s = s + f(i) Next i Print s End Sub

程序运行后,单击命令按钮,在窗体上显示的是

( C ) A) 11 B) 10 C) 9 D) 8 25. 设有如下程序 Option Base 1

Private Sub Command1_Click( ) Dim a(10) As Integer Dim n As Integer

n=InputBox(\输入数据\ If n<10 Then

Call GetArray(a, n) End If End Sub

Private Sub GetArray(b() As Integer, n As Integer) Dim c(10) As Integer j=0

For i=1 To n

b(i) =CInt(Rnd() *100) If b(i)/2=b(i)\\2 Then j=j+1 c(j) =b(i) End If Next i Print j

End Sub

以下叙述中错误的是( C ) A) 数组b 中的偶数被保存在数组c 中

B) 程序运行结束后,在窗体上显示的是 c 数组中元素的 个数

C) GetArray 过程的参数 n 是按值传送的

D) 如果输入的数据大于 10,则窗体上不显示任何显示 26. 以下程序输出的结果是( A ) Private Sub Command1_click() Dim a%(3,3) ,i% ,j% For i=1 to 3 For j=1 to 3

If j>1 and i>1 then

A(I,j) =a(a(i-1,j-1) ,a(I,j-1) ) +1 Else

A(I,j) =i*j Endif Print a(I,j) ; Next j Print Next i End Sub

A) 1 2 3 B) 1 2 3 C) 1 2 3 D)1 1 1

2 3 1 1 2 3 2 4 6 2 2 2

3 2 3 1 2 3 3 6 9 3 3 3

27. 程序运行后,单击窗体,输入的数据为 8,则输出结果为 (C )

Private Sub Form_click()

Dim iA ,i%,n%,t%

N=Inputbox(“Enter N=?”) iA=array(1,2,3,4,5,6,7,8,9,10) For i=1 to n\\2

t=iA(i) : iA(i) =iA(n-i+1) : iA(n-i+1) =t Next i

For i=0 to Ubound(iA) Print iA(i); Next i End Sub

A) 1 2 3 4 5 6 7 8 9 10 B) 10 2 3 4 5 6 7 8 9 1 C) 1 9 8 7 6 5 4 3 2 10 D) 10 9 8 7 6 5 4 3 2 1

28. 语句 Circle(1000,1000), 500, 8, -6, -3 将绘制( D )

A) 圆 B) 椭圆 C) 圆弧 D) 扇形 29. 执行指令“Line(1200,1200) - step(1000, 500),B”之后, CurrentX= ( A )

A) 2200 B) 1200 C) 1000 D) 1700 30. 按文件的组织形式分有( A ) A) 顺序文件和随机文件 B) ASCII 文件和二进制文件 C) 程序文件和数据文件 D) 磁盘文件和打印文件

二、填空题(每空 1 分,共30 分)

1. Visual Basic 应用程序中标准模块文件的扩展名 是 。 答案: .bas

2. 为了使计时器控件 Timer1 每隔 0.5 秒触发一次 Timer 事

件,应将 Timer1 控件的 属性设置为 。 答案: Interval 500

3. 在窗体上画一个名称为 Text1 的文本框,然后画三个单选 按钮,并用这三个单选按钮建立一个控件数组,名称为 Option1,程序运行后,如果单击某个单选按钮,则文本框 中的字体将根据所选择的单选按钮切换,请填空。 Private Sub Option1_Click(Index As Integer) Select Case Case 0

a = \宋体\

Case 1

a = \黑体\ Case 2

a = \楷体_GB2312\ End Select

text1. =a End Sub 答案: Index FontName

4. 下面的程序的功能是:计算 f=1-1/(2*3)+1/(3*4)-1/(4*5) +…+1/(19*20)

Private Sub Form_click()

Dim f As Single ,I As Integer, sign As Integer f=1

f=f+sign/(i*(i+1) )

Next i

Print \ End Sub 答案: sign=-1 For I=2 To 19 sign=-sign

5. 下面的程序是在一个字符串变量中查找 at,并用消息框给 出查找结果的报告,没有找到或找到的个数,程序如下: Public Sub findat() Dim str1 as string Dim length as integer Dim sum as integer Dim I as integer

Str1=Inputbox(\请输入一个字符串\ length= I=1 Sum=0

Do While I<=

If =\ Sum=sum+1 End if I=I+1 Loop

If then Msgbox \没有找到\

Else

Msgbox \找到了\个\ End if End Sub 答案:

Len(str1) Length

Mid(str1, I, 2) sum = 0

6. 下面的程序是将输入的一个数插入到递减的有序数列中, 插入后使该序列仍有序。 Private Sub form_click() Dim a(), i%, n%, m%

A=array(29,21,15,13,11,9,7,5,3,1) n=ubound(a)

Redim M=val(inputbox(\输入欲插入的数\ For i =ubound(a) -1 to 0 step -1 If m>=a(i) then

If i=0 then a(i) =m Else

Exit for End if Next i

For i=0 to Print a(i) Next i End Sub 答案:

Preserve a(n+1) a(i+1)=a(i) a(i+1)=m UBound(a)

7.下面的程序是产生100 个【0,99】范围内的随机整数, 统计个位上的数字分别为 1,2,3,4,5,6,7,8,9, 0 的数的个数。

Public Sub calculate( )

Dim x(1 to 10) as integer, A(1 to 100) as integer Dim p as integer, j as integer For j=1 to 100

A(j) =

p=a(j) - Int(A(j) /10) *10 If p=0 then x(p) = x(p)+1 Next j

Form1.Print \个位数的个数\ For j=1 to 10

If j=10 then

Form1.print \个位数\有\个数\ Next j End Sub 答案: Rnd*99 p=10 p=j p=0

8.下面total()过程的功能是计算 s=7+77+777+??+(n 个 7 组成的数) 。程序代码如下: Public Sub total( ) Const n=20

Dim s as single , i as integer For i=1 to n

s=s + Next i

Form1.print \ End Sub

Public Function number( ) as single Dim i as integer number=0 For i=1 to n

Next i End function 答案: number(i) n As Integer

number = number + 7 * 10 ^ (I - 1)

9.下面程序运行后,当单击窗体时,窗体上显示的内容的第 一行是 ;第二行是 。如在Sub1 过程的第二个形参y 前加byval,则在窗体上显示的内容的第 一行是 。 Private Sub Form_Click()

Dim x As Integer, y As Integer, z As Integer x = 1: y = 2 : z = 3

Call sub1(x, y, z) Call sub1(x, y, y) End Sub

Private Sub sub1(x As Integer, y As Integer, z As Integer) Dim i As Integer x = 3 * z y = 2 * z z = x + y Print x, y, z End Sub 答案:

9 6 15 18 30 30 9 6 15

10. 下列程序段的功能是交换两个列表框中的项目。当双击 某个项目时,该项目从本列表框中消失,并出现在另一个 列表框中。列表 1 的名称为List1,列表2 的名称为List2。 Private Sub form_load() List1.additem \

List1.additem \

List1.additem \ ……. End Sub

Private Sub list1_Dblclick()

List2.additem End Sub

Private Sub list2_DblClick()

List2.listindex End Sub 答案:

List1.List(List1.ListIndex)

List1.RemoveItem List1.ListIndex

List1.AddItem List2.List(List2.ListIndex) List2.RemoveItem

三、程序阅读(共5 题,每题3 分,共15 分)

1. 程序运行时单击 command1 后,输入 12345678,写出窗 体上的输出结果。

Private Sub command1_click() Dim x as long , y as string x=inputbox(\输入一个数\ Do While x<>0

y=y & x Mod 10

y=x\\10 Mod 10 & y x=x\\100 print y Loop End Sub 答案: 78 5786 357864 13578642

2. 下面程序运行后,在文本框 Text1 中输入 123456 并按回 车键后,写出文本框中显示的内容。 Dim n%, m%

Private Sub text1_keypress(keyascii as integer) If IsNumeric(text1) then

Select case val(text1) mod 2 Case 0

n=n+val(text1) Case 1

m=m+val(text1) End select End if Text1=\ Text1.setfocus

If keyascii=13 then Text1=n & m End if End Sub 答案: 129

3. (1) 写出运行以下程序后form1 上的输出结果。

(2) 如果将标记有○1 和○2 的两条语句对调后,重新运行程 序时form1 上的输出结果。 Private Sub form_click() Const n=6

Dim xx(n) as integer Form1.cls For i=1 to n xx(i) =i*i Next i

Call fchange (xx(), n) For i=1 to n

Form1.print xx(i) Next i End Sub

Sub fchange(a() as integer, m as integer) For i=1 to m/2 T=a(i)

A(i) =a(m-i+1) '①

A(m-i+1) =t '②

Next i End Sub 答案: 36 25 16 9 4 1 1 4 9 9 4 1

4. 写出下面的程序运行后,单击窗体在form1 上的输出结果 Private Sub form_click()

Dim I as integer ,y as integer I=0

Do While i<=4 Y=Factor(i+1) Print “y=” ; y I=i+1 Loop

End Sub

Function Factor(x as integer) as integer Dim term as integer, i as integer Term=1 For i=1 to x

Term=term*i Next i

Factor=term End function 答案: y= 1

y= 2 y= 6 y= 24 y= 120

5. 写出下面的程序运行后,单击窗体在form1 上的输出结果 是 。 Dim y As Integer

Private Sub Form_Click() Dim x As Integer x = 1: y = 1 Call suba(y + 1) z = funb(x) Print x, y, z End Sub

Public Sub suba(ByVal z As Integer)

y = z + x

z = x + y End Sub

Public Function funb(y As Integer) y = y + 1 funb = x + y End Function 答案:

2 2 2

四、程序改错(共4 处错误,在错误处划线并改 正,共8 分)

以下程序功能是:随机产生n 个 1 到 100 以内的正整数 并输出,然后再将其反向输出(左边数字是行标号)。 1) Private Sub Reverse (b As Integer , m As Integer) 2) Dim i As Integer, t As Integer

3) For i=1 To m t=b(i) 4) b(i) =b(m-i+1) 5) b(m-i+1) =t 6) Next i 7) End Sub

8) Private Sub Form_Click() 9) Dim a( ) As Integer

10) Dim i As Integer, n As Integer

11) n=InputBox(请输入数据个数) 12) ReDim a(n) 13) Randomize 14) For i=1 To n

15) a(i) =Int(100*Rnd) +1

16) Print a(i) 17) Next i 18) Print

19) Call Reverse a(n) ,n 20) For i=1 To n 21) Print a(i) 22) Next i 23) Print 24) End Sub 答案:

Private Sub Reverse(b() As Integer, m As Integer) Dim i As Integer, t As Integer

For i = 1 To m \\ 2: t = b(i) '错误 2 b(i) = b(m - i + 1) b(m - i + 1) = t Next i End Sub

Private Sub Form_Click() Dim a() As Integer

Dim i As Integer, n As Integer

n = InputBox(\请输入数据个数\错误3 ReDim a(n) Randomize For i = 1 To n

a(i) = Int(100 * Rnd) + 1 Print a(i); Next i Print

Call Reverse(a, n) '错误 4 For i = 1 To n

Print a(i); Next i Print End Sub

五、编程题(共3 题,共 17 分) (课本例题)

'错误 1

本文来源:https://www.bwwdw.com/article/tx4r.html

Top