VB期末考试

如题所述

第1个回答  2011-01-12
第一套
一、判断题
1、Visual Basic程序开发的特点是面向对象的事件驱动。 (√)
2、Print_Text是一个不合法的变量名。 (×)
3、窗体的AutoRedraw属性实现了屏幕图像的重建。 (√)
4、设置字体大小应使用Font属性 (×)
5、Sub过程可以实现嵌套调用 (√)
6、IIF函数中的三个参数都不能省略。 (√)
7、块结构条件语句以End If结束,而单行结构条件语句没有End IF。(√)
8、当终值小于初值时,步长为负数。 (√)
9、执行While-Wend循环时,如果一开始条件就不成立,则语句块一次也
不会执行。(√)
10、关于数组的引用,在程序中,凡是简单变量可以出现的地方都可以出现数组元素的引用 (√)

二、单项选择题
1.Print Format(123,”####”)执行之后的结果为
A)#123 B)123 C)123# D)####
B

2.下面可以表示注释语句开头的为
A)Re B)R C)Rem D)dim
C

3.下列选项中窗体载入事件为
A)Load事件 B)Click事件 C)DblClick事件 D)Unload事件
A

4.Timer控件可以使用下列哪种事件
A)Click事件 B)Timer事件 C)Dblclick事件 D)Change事件
B

5.在InputBox函数中哪一个参数是必须的
A)Prompt B)Buttons C)Title D)Context
A

6.以下叙述中错误的是:
A)如果过程被定义为Static类型,则该过程中的局部变量都是Static类型
B)Sub过程中不能嵌套定义Sub过程
C)Sub过程可以嵌套调用Sub过程
D)事件过程可以像通用过程一样由用户定义过程名
C

7.要填加一个标准模块,可使用“_____”菜单中的“添加模块”命令。
A)文件 B)视图 C)工程 D)工具
C

8.在块结构条件语句If-Then / Endif中
(A) 必须至少有一个Elseif语句
(B ) 可以有任意多个ElseIf-Then语句
(C) 如果没有Else语句,运行时将出现错误
(D ) 给定的条件只能是关系表达式或逻辑表达式
B

9.以下Case语句中错误的是
(A) Case 10 To 1
(B) Case Is>10
(C)Case Is>10 , Is<50
(D) Case 3,5,Is>10
A

10.对Do Until…Loop循环,正确的是( )。
A.如果循环条件为常数0,则一次循环也不执行
B.如果循环条件为常数0,则至少执行一次循环
C.如果循环条件是不为0的常数,则至少执行一次循环
D.无论循环条件是否为"True",则至少执行一次循环
B

11.语句Dim arr(-3 To 5, 2 To 6) As Integer定义的数组元素有_______个。
A) 45 B) 40 C) 11 D) 54
A

12.下列关于Option Base语句说法错误的是______D
A) Option Base语句只能出现在窗体层或模块层
B) Option Base语句不能出现在过程中
C) Option Base语句必须位于数组的定义之前
D) Option Base语句只对一维数组有效
D

13、Visual Basic的特点不包括下面的(A)
A 不需编程 B 面向豆象的程序设计
C 可视化程序设计 D 时间驱动的程序设计

14、从键盘上能够输入两个字符串,分别保存在变量str1、str2中。确定第二个字符串在第一个字符串中起始位置的函数是(D)
A Left B Mid
C String D Instr

15、如果将布尔常量值True赋值给一个整型变量,则整型变量的值为(B)
A 0 B -1
C True D false

16、下列符号常量的声明中,(C)是不合法的。
A Const a As Single = 1.1 B Const a As Integer = “12”
C Const a As Double = Sin(1) D Const a =”OK”

17、四个字符“E”,“y”,“B”,“8”的ASCII码值最大的是(B)
A “E” B “y”
C “B” D “8”

18、将变量k四舍五入保留2位小数的表达式是(C)
A Int((k+0.5)*100)/100 B Int((k*100)/100)+0.5
C Int(k*100+0.5)/100 D Int(k*(100+0.5))/100”

19、30.将数学表达式Cos2(a+b)+5e2写成Visual Basic的表达式,其正确的形式是(A)
A) Cos(a+b)^2+5*exp(2) B) Cos^2(a+b)+5*exp(2)
C) Cos(a+b)^2+5*ln(2) D) Cos^2(a+b)+5*ln(2)

20、在顺序文件中,当使用Write#语句时,文件打开的方式必须是(B)
A Output和Input B Output和Append
C Output D Append

三、程序分析题
1.以下语句的输出结果是(注:■表示一个空格)
a = 123
b = 456
Print a; b
A)123■456 B)■123■456 C)■123■456■ D)■123■■456
D

2.下列程序执行的结果为
x = -6 ^ 2
Print Sgn(x) + Abs(x) + Int(x)
A)-36 B)1 C)-1 D)-72
C

3.在窗体上画一个名称为Command1的命令按钮,一个名称为Label1的标签,然后编写如下的事件过程:
Private Sub Command1_Click()
s = 0
For i = 0 To 15
X = 2 * i - 1
If X Mod 3 = 0 Then s = s + 1
Next i
Label1.Caption = s
End Sub
程序运行后,单击命令按钮,则标签中显示的内容为
A)1 B)5 C)27 D)45
B

4.在窗体上画一个名称为Command1的命令按钮,一个名称为Label1、Label2、Label3的标签,然后编写如下的事件过程:
Private x As Integer
Private Sub Command1_Click()
Static y As Integer
Dim z As Integer
n = 10
z = n + z
y = y + z
x = x + z
Label1.Caption = x
Label2.Caption = y
Label3.Caption = z
End Sub
运行程序后,连续三次单击命令按钮后,则三个标签中显示的内容分别是
A)10 10 10 B)30 30 30 C)30 30 10 D)10 30
C

5.在窗体上画一个名称为Command1的命令按钮,一个名称为Label1、Label2的标签,然后编写如下的事件过程:
Private x As Integer
Private Sub Command1_Click()
x = 5: y = 3
Call Proc(x, y)
Label1.Caption = x
Label2.Caption = y
End Sub

Private Sub Proc(ByVal a As Integer, ByVal b As Integer)
x = a * a
y = b + b
End Sub
运行程序后,则两个标签中显示的内容分别是
A)5和3 B)25和3 C)25和6 D)5和6
B

6.下面程序段求两个数中的大数,不正确的是
(A)If x>y Then Max=x Else Max=y
(B) Max=IIf(x>y,x,y)
(C)If y>=x Then Max=y
Max=x
(D)If y>x Then Max=y
Max=x
D

7.如果x的值大于或等于y的立方,则打印“OK”,表示这个条件的单行格式的If语句是
A)If x>=y^3 Print “OK”
B)If x>=y*y*y Then “OK”
C)If x>=y^3 Then Print “OK”
D)If x>=y*y*y Then Print “OK” End If
C

8.下列程序段执行结果为
x = 5
y = -6
If Not x < 0 Then x = y - 3 Else y = x + 3
Print y - x; x - y
A) 3 -3
B) -9 5
C) -3 3
D) 5 -6
A

9.已知x的值,计算分段函数f(x),下面选项不正确的是
当 x>=1, f(x)= ;
当x<1 ,f(x)= x2+3
(A) Select Case x
Case Is<1
f= x^2+3
Case else
f=sqr(x+1 )
End Select
(B) Select Case x
Case x>=1
f=sqr(x+1 )
Case x<1
f= x^2+3
End Select
(C ) Select Case x
Case Is>=1
f=sqr(x+1 )
Case Is<1
f= x^2+3
End Select
(D) IF x>=1 then f=sqr(x+1 ) else f= x^2+3
B

10.执行完下面的程序段后,循环执行了( )次。
For i = 1.7 To 5.9 Step 0.9
a = a + 1
Print a
Next I
A.3 B.4 C.5 D.6
C

11.下列程序段的执行结果为( )。
n = 0
j = 1
Do Until n > 2
n = n + 1
j = j + n * (n + 1)
Loop
Print n; j
A.0 1 B.3 7 C.3 21 D.3 13
C

12.以下正确的For…Next结构是
(A) For x=1 To 10
for y=1 to 10

Next
(B)For x=1 To 10
for y=1 to 10

Next y , x
(C)For x=1 To 10
for y=1 to 10
Next x
Next y
(D)For x=1 To 10
for y=1 to 10

Next x , y
B

13.下列程序中,第一个Do语句共执行了( )次循环。
Dim i As Integer, j As Integer
i = 1
Do
j = 1
Do
Sum = Sum + j
j = j + 2
Print j;
Loop Until j > 3
i = i + 2
Loop Until i > 10
Print Sum
A.10 B.20 C.5 D.7
A

14.下列语句中,a是一个数组,则使用正确的是______
A) Option Base 2
B) Redim a
C) Erase a
D) a = Array()
C

15.在窗体上画一个名称为Text1的文本框和一个名称为Command1的命令按钮,然后编写如下事件过程:
Private Sub Command1_Click()
Dim array1(10, 10) As Integer
Dim i As Integer, j As Integer
For i = 1 To 3
for j = 2 To 4
array1(i, j) = i + j
next j
next i
Text1.Text = arrry1(2, 3) + array(3, 4)
End Sub
程序运行后,单击命令按钮,在文本框中显示的值是______
A) 12 B) 13 C) 14 D) 15
A

16.在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:
Private Sub Command1_Click()
Dim a (10,10) As Integer
Dim i As Integer, j As Integer
For i = 1 To 3
for j = 1 To 3
a (i, j) = (i – 1) * 3 + j
Print a(i, j );
next j
Print
next i
End Sub
程序运行后,单击命令按钮,窗体上显示的是______
A) 1 2 3
2 4 6
3 6 9
B) 2 3 4
3 4 5
4 5 6
C) 1 4 7
2 5 8
3 6 9
D) 1 2 3
4 5 6
7 8 9
D

17.设有如下程序:
Option Base 0
Private Sub Form_Click()
Dim a
Dim i As Integer
a = Array(1,2,3,4,5,6,7,8,9)
For i = 0 To 3
Print a(5 – i);
Next
End Sub
程序运行后,单击窗体,则在窗体上显示的是______
A) 4 3 2 1 B) 5 4 3 2 C) 6 5 4 3 D) 7 6 5 4
C

18.执行以下Command1的Click事件过程在窗体上显示_______。
Private Sub Command1_Click()
Dim a
a = Array(“a”,”b”,”c”,”d”,”e”,”f,”,”g”)
Print a(1); a(3); a(5)
End Sub
A) a b c B) b d f C) a c e D) 出错
B

19、设有语句
Open"c:\Test.Dat"For Output As#1
则以下错误的叙述是(B)
A)该语句打开C盘根目录下一个已存在的文件Test.Dat
B)该语句在C盘根目录下建立一个名为Test.Dat的文件
C)该语句建立的文件的文件号为1
D)执行该语句后,就可以通过Print#语句向文件Test.Dat中写入信息

20、 以下代码完成对顺序文件test1.txt追加打开的是(C)
A)Open test1.txt For Input As #1
B)Open test1.txt For Output As #1
C)Open test1.txt For Append As #1
D)Open test1.txt For Redom As #1

四、上机题

1.小王有存款A元,年利率为P,存储时间为T年.请编写一个程序计算本利合计。(A 、P、 T均使用Inputbox输入)
2.求100以内的素数,素数是指一个数x除了1和它本身,不能被其他任何整数整除。要求每行输出10个素数。
单击窗体,运行结果如图所示:

答案
在单击窗体的事件过程中添加代码,程序代码如下:
Private Sub Form_click()
Const N = 100
Dim i, j, Line, a(N) As Integer
For i = 0 To N - l ' 置初值
a(i) = i
Next i
For i = 2 To Sqr(N)
For j = i + 1 To N
If a(i) <> 0 And a(j) <> 0 Then
If a(j) Mod a(i) = 0 Then a(j) = 0 ' 能整除就赋0
End If
Next j
Next i
Print "显示出100以内的素数"
For i = 2 To N - 1
If a(i) <> 0 Then
Print a(i); Spc(1);
Line = Line + 1
End If
If Line <> 0 And Line Mod 10 = 0 Then Print ' 每行显示10个数
Next i
End Sub
评分标准:
1、正确给数组赋值 (2分)
2、正确判断素数 (3分)
3、正确输出显示结果 (2分)
4、文件存盘 (2分)
5、程序结构合理、清晰 (1分)