VB二级考试习题及答案2.docx
练习3
单选题(30分,每小题1分) 一个完整计算机系统应包括—(1)—o
(A) 主机、键盘、和显示器 (B)硬件系统和软件系统
(0主机和其他外部设备
(D) ?打印机属于计算机部件中的—(2)—o
(A) 输岀设备 (B)输入设备
?下列表示存储容量的数据中,
(3)_
(A) 20480 KB
(B) 1.44 MB (C) 1 GB
(D) 4865723 Byte
?在计算机内部能够直接执行的程序语言是_(4)—o
(A)数据库语言
(B)高级语言 (C)机器语言
(D)汇编语言
?下列叙述正确的是—(5)_o
(A)程序设计就是编制程序
(B)程序的测试必须由程序员自己去
完成
(C)程序经调试改错后还应进行再测试
(D)程序经调试改错后不必进行再测试
?以下叙述中错误的是_(6)_。
(A) Visual Basic 是事件驱动型可视化编程工具 (B) Visual Basic 应用程序不具有明显的开始和结束语句
(C) Visual Basic 工具箱中的所有控件都具有宽度(Width)和高度(Height)属性 (D) Visual Basic 中控件的某些属性只能在运行时设置
?以下不属于VB 工作模式的是_(7)_模式。
(A)编译 (B)设计 (C)运行 (D)中断 ?以下语句的输出结果是_(8)_。 Print Format $(32548.5, “000,000.00” )
(A) 32548. 5 (B) 32, 548. 5 (C) 032, 548. 50 (D) 32, 548. 50
?若要使某可见控件获得焦点,则可使用—(9) ___________ 方法来实现。
(A) Refresh (B) SetFocus (C) Value (D) GotFocus
? 在下列说法中,正确的是—(10)—O
(A) 通过适当的设置,可以在程序运行期间,让时钟控件显示在窗体上 (B) 在列表框中不能进行多项选择
(0 VB 系统不能在列表框中自动实现将项目按字母顺序从大到小排列
(D)复选框的Value 属性值为布尔型
?执行以下程序段,输出的结果为—(11)—。
a$二〃abbacddcba"
系统软件和应用软件
(0存储设备 (D)缓冲设备 是最大
的。
For i=6 To 2 Step -2
x二Mid (a, i, i):
y二Left (a,
i)
z二Right (a, i):
z二
UCase(X
& Y & z)
Next i
Print z
(A) ABA (B) BBABBA (0 ABBABA (D) AABAAB
?控件在窗体上的位置是由(12) 属性确定的。
(A)Width 和Height (B) Top 和Left (C) Width 和Left (D) Top 和Width
?关于Name属性,以下叙述中—(13)—是正确的。
(A)窗体的Name属性指定窗体的名称,用于标识一个窗体。
(B)窗体的Name属性用于设置显示在窗体标题栏的文本。
(0可以通过代码在程序运行中改变某个对象的Name属性值。
(D)对象的Name属性值可以设置为空。
?下列名称中—(14)—可以作为VB的变量名。
(A) mod (B) m-d (C) tempVal (D) left
?要求出变量x和y中较大的一个并保存在变量Max中,下面的程序段中—(15)_ 是不正确的。
(A) Max 二Ilf (x > y, x, y) (B) If x > y Then Max 二x Else Max 二y
(C)Max = x (D) If y > x Then Max = y
If y >= x Then Max = y Max = x
?执行以下语句后,&的值为—(16)—
Dim a As Intcgcr
a = 1
Do Until a = 100
a 二El + 2
Loop
(A) 102 (B)100 (C)溢出(D)101
?对于语句If a = b Then c = d的语法分析,_______ (17) ___ 是正确的。
(A) a=b和c=d都是赋值语句(B) a=b是关系表达式,c=d是赋值语句
(C)a=b和c二d都是关系表达式(D)且二b是赋值语句,c二d是关系表达式
?运行下列程序段,单击两次命令按钮,则第二次单击时窗体屮显示的结果是_(18)_。
Private Sub Commandl_Click()
Dim a As Integer
Static b As Intcgcr
a = a + 5:
b = b + 5
Print a, b
End Sub
(A) 5 10 (B) 5 5 (C) 10 10 (D) 0 0 ?在系统默认的情况下,Dim a(3, 4, 2 To 5)定义的数组共有_仃9)—个元素。
(A) 36 (B) 48 (C) 60 (D) 80
?下面的子过程定义语句中没有语法和逻辑错误的是—(20)—o
(A) Sub SI (ByVai n%()) (B) Sub SI (n As Integer) As Integer
(C) Function SI(ByVai n As Integer) (D) Function Sl%(ByVal SI As Integer) ?执行了下面程序后,组合框中数据项的值是—(21)—。
Private Sub Form ClickO
For i=l to 6
Combo1. AddItem i
Next i
For i= 1 to 3
Combo1. RemoveItem i
Next i
End Sub
(A) 1 5 6 (B)l 3 5 (C)4 5 6 (D)2 4 6
?设窗体上有一个列表框控件Listl,且其中含有若干列表项。则以下能表示当前被选中的列表项内容的是_(22)_?
(A)Listl. List B) Listl. Listindex (0)Listl. Index (D)Listl. Text
?在窗体上画一个名称为Command 1的命令按钮和一个名称为Textl的文本框,然后编写如下事件过程:
Private Sub CommandlClick()
n = Vai (Textl. 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
该事件过程的功能是_(23)_
(A)输岀n以内的奇数(B)输岀n以内的偶数
(0输岀n以内的素数(D)输岀n以内能被j整除的数
?如果要在菜单中添加一个分隔线,则应将其标题属性设置为(24) 。
?以下关于文件的叙述中正确的是_(25)_。
(A) 一个记录中所包含的各元素的数据类型都是相同的
(B) 随机文件中每个记录的长度是固定的
(0 Open 命令的作用是打开一个已经存在的文件 (D) 使用Input #语句可以从随时机文件中读取数据
(D) Dim a (3), b(3) As Integer
a(0)=0 : a(l)=l : a(2) =2 : b=a
?窗体中有一个命令按钮,编写如下程序,程序运行后,输岀结果为—(27) Private Sub test
(p, m, n)
p=p+l: m=m+1: n=n+l Print “Sub:” ; p; m; n End Sub
Private Sub CommandlClick() al=l: bl=2: cl=3
Call test (al, bl+3, (cl)) Print "Main:” ; al; bl; cl End Sub
(A) Sub: 264 (B) Sub: 264 (C) Sub: 264
(D) Sub: 264 Main: 2 6 4
Main: 1
6 4 Main: 1 2 3
Main: 2 2 3
? 以下语句用于打开一个顺序文件Open z/C: \MyFile. txt 〃 For OutPut,但是该语句的一 个重
要错误是没有—(28) ____________ o
(A)指定打开方式(B)指定文件号(C)指定打开文件名(D)指定文件类型
? 在窗体上画一个名称为LabelK 标题为“VisualBasic 考试”的标签,两个名称分别 为
Command 1和Command2、标题分别为“开始”和“停止”的命令按钮,然后画一个 并把其Interval 属性设置为500。编写如下程序:
End If
⑷二 ⑻* (C) & (D)-
?以下定义数组或给数组元素赋值的语句中,
正确的是(26) o
(A) Dim a As Variant
(B) Dim a(10) As Integer
a=Array (1, 2, 3, 4, 5)
a=Array (1, 2, 3, 4, 5)
(C) Dim a%仃0)
a(l)二〃
Private Sub FormLoad() Timerl. Enabled=False End Sub
Private Sub CommandlClick()
Private Sub Timerl_Timer() If Labell.Left Label 1. Left = Label 1. Left + 20 Else Label 1. Left 二0 名称为Timerl 的计时器控件, End Sub Timerl. Enabled二True End Sub 程序运行后,单击“开始”按钮,标签在窗体中移动。对于这个程序,以下叙述中错误的是—(29)— (A)标签的移动方向为自右向左 (B)单击“停止”按钮后再单击“开始”按钮,标签从停止的位置继续移动 (0当标签全部移出窗体后,将从窗体的另一端出现并重新移动 (D)标签按指定的时间时隔移动 ?设有如下程序,通过For循环计算一个表达式的值,这个表达式是_(30)—: Private Sub CommandlClick() Dim sum As Double, x As Double sum = 0: n = 0 For i = 1 To 5 x = n / i: n = n + 1: sum = sum + x Next End Sub (A)1+1/2+ 2/3+3/4+4/5 (B)1+1/2+2/3+3/4 (01/2+2/3+3/4+4/5 (D) 1+1/2+1/3+1/4+1/5 二、填空题(50分,每空2分) ?Visual Basic中有三种类型的模块文件,即类模块、标准模块和—[1]_窗体模块。?将数学式点丄写成VB表达式,应该是—[2]sqr(y^3+3/abs(a*b)) __________________ 。 V \ab\ ?赋值语句:a=123 + MIDC123456", 3,2)执行后,a变量中的值_[3]157 _____________ 。 ?Visual Basic提供的对数据文件的三种访问方式为顺序访问方式、—[幻_随机访问方式—和二进制访问方式。 ?执行下列语句序列,显示的结果是____ [5]false o a = 2: b = 3: c = 4: d = 5 Print 3>2*b0ra=c And b <> c Or c > d ?运行下列程序,单击命令按钮,则Textl中显示—[6]5_,窗体中显示—[7]0__。 Private Sub CommandlClick() Dim i As Integer, j As Integer, a(5, 4) As Integer For i = 2 To 3 For j = 2 To 4 a(i, j)二i + j Next j Next i Textl. Text = a(3, 2) Print a(3, 1) End Sub ?如下图,窗体上有两个命令按扭Cl, C2及一个文木框Text!,当按下Cl时,将C2 的标题与Textl中的内容交换。 Private Sub Cl_Click() Dim a As String Forml. Caption 二〃交换后〃 a 二 _ [8]textl. text _____ Textl. Text 二__ [9]c2. caption _____ C2. Caption 二 a End Sub ?请完善以下判断完数的程序。一个数如果恰好等于它的因子之 和,这个数就被称为“完数”。一个数的因子是指除了该数 本身以外能够被其整除的数。例如6是一个完数,因为6二 1+2+3。 Private Sub CmdJudgeClick() Dim a () m = Vai(Textl. Text) ReDim a(1) a(l) = 1 k = _[10]_l_ J = 1 For i = 2 To m - 1 If m Mod i = 0 Then Else If [13]_k=m _____ Then Picturel. Print m & 〃是完数〃 Picture1.Print m;"二“; For i = 1 To UBound (a) - 1 Picture1.Print a(i); 〃+〃; Next i Picture1.Print k = k + i *因数和 j二j + 1 1因数个数 ReDim ___ [1l]_preserve_ a(j) a(j)二 __ [12] i ____ End If Next 1(转右) ?编写程序。在窗体上显示如下图所示的“九九加法表”。 [15]option Explicit Private Sub Form Click() Dim i%, j% Print 〃+ 1 2 3 4 5 6 7 8 9〃For i = 1 To [16] 9 Print i; For j = 1 To —[17]i If i + j < 10 _[18]then Print “〃; Print [19]i+j 一; Next j __ [20]print ______ Next i -ini x| ■j 3 + 1 2 3 4 5 6 7 8 9 4 5 6 7 8 9 1 1 1 1 1 6 7 8 9 1 2 1 2 3 4 4 1 1 * 1 * 1 1 1 * 6 7 1 A 1 End Sub ?在窗体上画一个名称为Command 1的命令按钮,然后编写如下程序,通过调用过程Swap,调换数组中数值的存放位置,即a(l)与a(10)的值互换,a⑵与肛9)的值互换,……,a (5)与a(6)的值互换。请填空 Option Base 1 Private Sub CommandlClick() Dim a (10) As Integer For i = 1 To 10 a(i) = i Next Call Swap( ____ [21]a() ____ ) For i = 1 To 10 Print a(i); Next End Sub Sub Swap (b () As Integer) n = _____ [22]ubound(b) _____ For i = 1 To n / 2 t = b(i) b(i) = b(n) b(n) = t [23] n=n+l Next End Sub ?设当前文件夹已有文件tl. txt和t2. txt,其中各有若干文字。现要将t2. txt的内 彦彳滋摩篦试题、试卷纸总8页第8页(A)卷容合并到11. txt中。例如11. txt原来内容为〃ABCD〃, 12. txt原来内容为〃1234〃,合并后tl.txt的内容将成为 “ABCD1234” Private Sub Command1 Click () Open 气1. txt/z_____ [24] for append _____ As #1 Open 〃t2.txt" For Input As #2 Do While Not EOF(2) Line Input #2, s ________ [25] print #1, s Loop Close End Sub 三、编程题(20分,每题10分) 1?编写一个自定义函数Gcd (m, n),实现求m和n两个正整数的最大公约数。 Function gcd(n%5m%) p = n Mod m If p=0 Then gcd 二p Else gcd 二gcd(m』) End If End Function 2.在文木框Textl中输入一串字符,用标签Label 1显示其中出现频率最高的字母(不区分大小写)及其出现次数。例如:输入"This is a beautiful world. ”则输出"使用频率最高的是i,共出现3次。” Option Base 1 Private Sub command 1 _click() Dim zimu$, a(l To 26) As Integer 1 = Len(Textl.Text) For i = 1 To I zimu = LCase(Mid(Textl .Text, i, 1)) If zimu >= M a H And zimu <= H z n Then /參彳滋滲篦试题、试卷纸总S页第9页(A )卷j = Asc(zimu) -97+1 a(j)二a(j) + 1 End If Next i Max = 1 For i = 2 To 26 If a(i) > a(Max) Then t = i: i = Max: Max = t End If Next i de = Chr(Max - 1 + 97) Label 1.Caption = ”使用频率最高的是“ & de & ”,共出现”& a(Max) &“次End Sub