1、国家计算机二级(VB)68 及答案解析(总分:100.00,做题时间:120 分钟)一、选择题(每小题 2分,共 70分) 下列各(总题数:35,分数:70.00)1.当在滚动条内拖动滚动块时触发( )。(分数:2.00)A.KeyUp事件B.KeyPress事件C.Scroll事件D.Change事件2.以下叙述中错误的是( )。 (分数:2.00)A.一个工程可以包括多种类型的文件B.Visual Basic应用程序既能以编译方式执行,也能以解释方式执行C.程序运行后,在内存中只能驻留一个窗体D.对于事件驱动型应用程序,每次运行时的执行顺序可以不一样3.下面说法不正确的是( )。(分数:2
2、.00)A.Float.MIN_VALUEB.1.8e-6FC.2.0D.abcd4.下列程序的执行结果为( )。 Ptivate Sub Commandl_Click() Dim FirStr As String FirStr=“abcdef“ Print Pct (FirStr) End Sub Private Function Pct(xStr As String)As String Dim tempStr As String,strLen As Integer tempStr=“ strLen=Len(xStr) i=1 Do While i=Len(xStr)-3 tempStr=t
3、empStr + Mid(xStr,i,l) + Mid(xStr,strLen - i+i ,1) i=i + 1 Loop Pct=tempStr End FunCtion (分数:2.00)A.voidB.intC.newD.long5.Visual Basic程序设计采用的编程机制是( )。(分数:2.00)A.方法是对象的一部分B.方法的调用格式和对象的属性的使用格式相同C.方法是一种特殊的过程和函数D.在调用方法时,对象名是不可缺少的6.以下关于文件的叙述中,错误的是_。 (分数:2.00)A.使用 Append方式打开文件时,文件指针被定位于文件尾B.当以输入方式(Input)打
4、开文件时,如果文件不存在,则建立一个新文件C.顺序文件各记录的长度可以不同D.随机文件打开后,既可以进行读操作,也可以进行写操作7.执行下面的程序段后,变量 c的值为( )。 a=14 b=30 Slect Case b/10 Case 0 C=a * 10 + b Case 1 To 9 C=a * 100+b Case 10 To 99 C=a * 1000 + b End Select print c (分数:2.00)A.excellentB.goodC.passD.fail8.以下程序的输出结果为( )。 Dim i,c(10),p(3) k=5 For i=0 To 10 c(i)
5、 =i Next i For i=0 To 2 p(i) = c(i * (i + 1) Next i For i=0 To 2 k=k+p(i) * 2 Next i Print k (分数:2.00)A.20B.21C.56D.329.如果设置窗体的 ControlBox属性值为 False,则( )。(分数:2.00)A.结合型B.非结合型C.计算型D.非计算型10.执行下面的程序段后,变量 c的值为( )。 a=14 b=30 Slect Case b/10 Case 0 C=a * 10 + b Case 1 To 9 C=a * 100+b Case 10 To 99 C=a *
6、1000 + b End Select print c (分数:2.00)A.363B.2548C.1430D.987511.标签控件能够显示文本信息,决定其文本内容的属性是( )。(分数:2.00)A.AlignmentB.CaptionC.VisibleD.BorderStyle12.下列语句的输出结果为( )。 Print Format (1000936,“000,000000”) (分数:2.00)A.10,00936B.10,009360C.10,0093D.010,00936013.下列过程定义语句中,参数不是对象的定义语句是( )。(分数:2.00)A.BorderStyle的值
7、设为 FixedSingle,此项设置值的作用即禁止最大化和最小化按钮B.窗体的 MaxButton和 MinButton值设为 FalseC.正常情况下新建的窗体都没有最大化和最小化按钮D.该窗体可用鼠标拖动边框的方法改变窗体的大小14.用树形结构表示实体之间联系的模型是_。 (分数:2.00)A.关系模型B.网状模型C.层次模型D.以上三个都是15.新建一个窗体,其 Borderstyle属性设置为 Fixed Single,但运行时却没有最大化和最小化按钮,可能的原因是 ( )。(分数:2.00)A.默认情况下,属性 Visible的值为 FalseB.如果设置控件的 Visible属性
8、为 False,则运行时控件会隐藏C.Visible的值可设为 True或者 FalseD.设置 Visible属性同设置 Enabled属性的功能是相同的,都是使控件处于失效状态16.下列程序段的执行结果为( )。 a=75 If a 60 Then Score=1 If a 70 Then Score=2 If a 80 Then Score=3 If a 90 Then Score=4 Print “Score= “;Score (分数:2.00)A.Score=1B.Score=2C.Score=3D.Score=417.假定一个工程由一个窗体文件 Form1和两个标准模块文件 Mod
9、el1及 Model2组成。 Model1 代码如下:Public x As Integer Public y As Integer Sub S1( ) x=1 S2 End Sub Sub S2( ) y=10 Form1Show End Sub Model2的代码如下: Sub Main( ) S1 End Sub 其中 Sub Main被设置为启动过程。程序运行后,各模块的执行顺序是( )。 (分数:2.00)A.Form1Model1Model2B.Model1Model2Form1C.Model2Model1Form1D.Model2Form1Model118.结构化程序设计的基本原
10、则不包括(分数:2.00)A.多态性B.自顶向下C.模块化D.逐步求精19.在窗体上画一个名称为 Command1的命令按钮,然后编写如下程序: Option Base1 Private Sub Command1_Click( ) Dim a As Variant a=Array(1,2,3,4,5) Sum=0 For i=1To 5 Sum=Sum+a(i) Next i x=Sum/5 For i=1 To 5 If a(i)x Then Print a(i); Next i End Sub 程序运行后,单击命令按钮,在窗体上显示的内容是( )。 (分数:2.00)A.1 2B.1 2
11、3C.3 4 5D.4 520.设有数组定义语句:Dim a(5)As Integer,List1 为列表框控件。下列给数组元素赋值的语句错误的是( )。(分数:2.00)A.打开过程文件时,其中的主过程自动调入内存B.同一时刻只能打开一个过程,打开新的过程后,旧的过程自动关闭C.用命令 DOWITH调用过程时,过程文件无需打开就可调用其中的过程D.用命令 DOWITHIN调用过程时,过程文件无需打开,就可调用其中的过程21.在窗体上画 3个标签、3 个文本框(名称分别为 Text1、Text2 和 Text3)和 1个命令按钮 (名称为Command1),外观如图所示。 (分数:2.00)A
12、.4B.6C.8D.1222.执行以下程序段后,变量 c$的值为【 】 a$=“Visual Basic Programming“ b$=“Quick“ c$=b$n-m (分数:2.00)A.1,6,3,1,3B.1,6,3,6,3C.1,6,3,2,3D.1,7,3,2,333.在窗体上画一个名称为 Command1的命令按钮,然后编写如下通用过程和命令按钮的 事件过程: Private Function fun(ByVal m As Integer) If m Mod 2 = 0 Then fun = 2 Else fun = 1 End If End Function Private
13、Sub Command1_Click() Dim i As Integer, s As Integer s = 0 For i = 1 To 5 s = s + fun(i) Next Print s End Sub 程序运行后,单击命令按钮,在窗体上显示的是_。 (分数:2.00)A.6B.7C.8D.934.设有如下通用过程: Public Function Fun(xStr As String) As String Dim tStr As String,strL As Integer tStr=“ “ strL=Len(xStr) i=1 Do While ix Then Print a
14、(i); Next i End Sub 程序运行后,单击命令按钮,在窗体上显示的内容是( )。 (分数:2.00)A.1 2B.1 2 3C.3 4 5D.4 5 解析:20.设有数组定义语句:Dim a(5)As Integer,List1 为列表框控件。下列给数组元素赋值的语句错误的是( )。(分数:2.00)A.打开过程文件时,其中的主过程自动调入内存B.同一时刻只能打开一个过程,打开新的过程后,旧的过程自动关闭C.用命令 DOWITH调用过程时,过程文件无需打开就可调用其中的过程D.用命令 DOWITHIN调用过程时,过程文件无需打开,就可调用其中的过程 解析:调用过程时,首先应该打开
15、过程文件,在使用 IN语句后,系统自动打开过程文件,不需要再次打开。21.在窗体上画 3个标签、3 个文本框(名称分别为 Text1、Text2 和 Text3)和 1个命令按钮 (名称为Command1),外观如图所示。 (分数:2.00)A.4B.6C.8 D.12解析:分析程序可知,函数 f 采用辗转相除法计算两个数的最大公约数,由于题面中输入的两个数是 36 和 24,它们的最大公约数为 8。22.执行以下程序段后,变量 c$的值为【 】 a$=“Visual Basic Programming“ b$=“Quick“ c$=b$n-m (分数:2.00)A.1,6,3,1,3B.1,
16、6,3,6,3C.1,6,3,2,3 D.1,7,3,2,3解析:左移 1位,相当于乘以 2,题中的 x的值是一个八进制数,转换为十进制数是 32,再乘以 2,x 的值为 64。33.在窗体上画一个名称为 Command1的命令按钮,然后编写如下通用过程和命令按钮的 事件过程: Private Function fun(ByVal m As Integer) If m Mod 2 = 0 Then fun = 2 Else fun = 1 End If End Function Private Sub Command1_Click() Dim i As Integer, s As Intege
17、r s = 0 For i = 1 To 5 s = s + fun(i) Next Print s End Sub 程序运行后,单击命令按钮,在窗体上显示的是_。 (分数:2.00)A.6B.7 C.8D.9解析:本题中 fun 函数的功能是偶数时返回 2,奇数时返回 1。而 1 到 5 中,有三个奇数,两个偶数。所以 s 是三个 1 和两个 2 之和。故 s=7。34.设有如下通用过程: Public Function Fun(xStr As String) As String Dim tStr As String,strL As Integer tStr=“ “ strL=Len(xSt
18、r) i=1 Do While i=strL/2 tStr=tStr & Mid(xStr,i,1) & Mid(xStr,strL-i+1,1) i=i+1 Loop Fun=tStr End Function 在窗体上画一个名称为 Command1的命令按钮。然后编写如下的事件过程: Private Sub Command1_Click() Dim S1 As String S1=“abcdef“ Print UCase(Fun(S1) End Sub 程序运行后,单击命令按钮,输出结果是 (分数:2.00)A.ABCDEFB.abcdefC.AFBECD D.DEFABC解析:此题主要考
19、核 Mid函数、UCASE 函数,MID 返回文本字符串中从指定位置开始的特定数目的字符,其格式为:MID(text,start_num,num_chars),Text 包含要提取字符的文本字符串。Start_num 文本中要提取的第一个字符的位置。文本中第一个字符的 start_num为 1,以此类推。Num_chars 指定希望 MID从文本中返回字符的个数。UCASE 函数则将小写字母转换成大写字母。35.Visual Basic中的控件分为两类,类是 ActiveX控件,另一类是( )。(分数:2.00)A.1B.2C.3 D.程序有错误解析:类 D继承了类 C和类 B,所以在构造的时
20、候分别构造类 B和类 C。二、填空题(每空 2分,共 30分)(总题数:10,分数:30.00)36.在数据库管理系统提供的数据定义语言、数据操纵语言和数据控制语言中, -|_|-负责数据的模式定义与数据的物理存取构建。(分数:3.00)_正确答案:(数据定义语言)解析:数据定义语言:负责数据的模式定义与数据的物理存取构建;数据操纵语言:负责数据的操纵,如查询与增、删、改等;数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等。37.浮点数由 3部分组成,即符号、 -|_|-和尾数。(分数:3.00)_正确答案:(指数)解析:浮点数也称实型数或实数,是带有小数部分的数值,它
21、由 3部分组成:符 号、指数和尾数。单精度浮点数和双精度浮点数的指数分别用“E”(或“e”)和“D”(或 “d”)来表示。38.在 E盘当前目录文件夹下建立一个名为“Studenttxt的顺序文件,要求用 InputBox函数输入 5个学生的姓名(StuName)、年级(StuGrade)和年龄(StuAge)。 Private Sub Form _ Click( ) -|_|- For i=1 To 5 StuName=InputBox(“请输入姓名“) StuGrade=InputBox(“请输入年级号“) StuAge=InputBox(“请输入年龄“) -|_|- Next i -|_
22、|- End Sub (分数:3.00)_正确答案:(Open“E:/Studenttxt“ For Output As #1)解析:在 Form _ Click过程中,要在文件中写入数据,首先要建立一个文件,建立文件用 Open语句,文件名必须是全称;因为要建立的文件为空文件,所以可以认为不能从它里面读出数据,只能写入数据在For“模式”中应该用“Output”,所以在第一个空处应填入的语句是“Open”E:/Studenttxt“ For Output As #1”;在 For循环语句中,首先调用 InputBox函数,给出提示信息,并将接收到的信息依次赋给相应的变量,然后将它们写入文件中
23、,因为 StuName,StuGrade,StuAge 为变量名,不能用双引号,所以在第二个空处应填入的语句是“Write #1,StuName,StuGrade,StuAge”;当对文件写完以后,就要关闭文件,关闭文件用 Close语句,关闭文件的格式为 Close#文件号,#文件号,文件号即为打开文件时的文件号,所以第三个空应填入的语句是“Close #1”。39.建立随机文件 Workersdat。存取职工的姓名和职工号,然后把该文件中的数据读出显示。请在空白处填入适当的语句。 Type Worker name As String*8 number As Integer End Type
24、 Open“e:/Workersdat“For Random As #1 Len=Len(Workerl) Workerlname=“zn“:Worker1number=100# -|_|- Close #1 Open“Workersdat“For Random As #1 Len=Len(Worker1) -|_|- Print“Worker1:“,Worker1name Print “Worker1:“,Worker1number Close #1 (分数:3.00)_正确答案:(Put #1,1,Worker1)解析:Put 命令是向随机文件写入数据,Get 命令是读取随机文件的数据。4
25、0.在窗体上添加一个文本框控件 Info,画一个命令按钮,当单击命令按钮显示“保存文件”对话框,设置该对话框可用于保存文本文件(默认)和可执行文件(exe),然后在文本控件中显示保存的文件名。 Private Sub Command1_Click( ) CommonDialog1Filter= -|_|- CommonDialog1FilterIndex= -|_|- CommonDialog1ShowSave InfoText= -|_|- End Sub (分数:3.00)_正确答案:(“文本文件(*txt)|*.txt|可执行文件(exe)|*exe*”)解析:要设置通用对话框可用于保存
26、文本文件和 Word文档,需要设置通用对话框的 Filter属性值,在这里应该填写的是“文本文件(*txt)|*txt|可执行文件(exe)| *.exe”;在文件类型栏内通过下拉列表选择要显示的文件类型,而最初默认显示的文件类型(过滤器)可以由 FilterIndex属性来指定,该属性是一个整数。用 Filter属性设置多个过滤器后,每个过滤器都有一个值,第一个过滤器的值为 1,第二个过滤器的值为 2,用 FilterIndex属性可以指定作为默认显示的过滤器,对于本题要想使文本文件为默认的类型,只需设置 FilterIndex属性值为 1即可;选择了需要保存的文本文件或 Word文档后,应
27、该让文件的文件名显示在文本框中,因此需要将通用对话框中选择的文件赋给文本控件,即将对话框的FileTitle属性值赋给文本框的 Text属性。41.在窗体上画一个名称为“Command1”,标题为“计算”的命令按钮,再画 7个标签,其中 5个标签组成名称为 Label1的控件数组;名称为 Label2的标签用于显示计算结果,其 Caption 属性的初始值为空;标签 Label3的标题为“计算结果”。运行程序时会自动生成 5个随机整数,分别显示在标签控件数组的各个标签中,如图所示。单击“计算”按钮,则将标签数绍各元素的值累加,然后将计算结果显示在Label2中。请填空。 (分数:3.00)_正
28、确答案:(Label1(i).Caption)解析:42.下面的程序用于根据文本框 Test中输入的内容进行以下处理: 若 Text为 1,则打印“您的成绩为优秀!”;若 Text为 2,则打印“您的成绩为良好!”;若 Text 为 3,则打印“您的成绩为一般”;否则打印“您的成绩一般以下!”,请填空。 Private Sub Command1_Click( ) Selct Case Val(Text1.Text) Case -|_|- Print “您的成绩为优秀!“ Case -|_|- Print “您的成绩为良好!“ Case -|_|- Print “您的成绩为一般!“ Case E
29、lse Print “您的成绩为一般以下!“ End Select End Sub (分数:3.00)_正确答案:(1)解析:函数调用了 Val(Text1Text)函数将从文本框中得到的字符串转化为数据,将转换来的数据作为情况语句的测试条件。因为当输入 1时,则打印“您的成绩为优秀!”;所以当测试表达式的值与之相同时,就执行该 Case分支的语句,同样当输入 2,3 等其他数字时执行其他的 Case分支。43.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可 以不变,因此,基于逻辑结构的应用程序不必修改,称为 -|_|-。(分数:3.00)_正确答案:(物理独立性)
30、解析:数据独立性包括数据的物理独立性和逻辑独立性。物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。数据在磁盘上的数据库中怎样存储是由 DBMS 管理的,用户程序不需要了 解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变时,应用程序不用改变。逻辑独 立性是指用户的应用程序与数据库的逻辑结构是相互独立的,也就是说,数据的逻辑结构改变了,用户程 序也可以不变。44.我国古代数学家张丘建在其著名的算经中提出了百鸡问题:每只公鸡 5元,每只母鸡 3元,三只雏鸡 1元;如何用 100元买 100只鸡,即公鸡、母鸡、雏鸡各多少只。请在空白处填入适当的内容,将程序补充完整
31、。 Private Sub Commandl_Click() Dim Cock As Integer Dim Hen As Integer Dim Chick As Integer FormlPrint“公鸡数”,“母鸡数”,“雏鸡数” For Cock;0 To 20 For Hen=0 To 33 For Chick=0 To 100 If -|_|-Then Form1Print Cock,Hen,Chick End If Next Chick Next Hen Next Cock End Sub (分数:3.00)_正确答案:(Cock + Hen + Chick = 100 And
32、5 * Cock + 3 * Hen + ch/3 = 100)解析:在该题中运用了循环语句的嵌套,即多重循环。从题目来看,需要填入的是一个条件语句,即满足百鸡问题的数的条件。如果满足条件就在窗体上显示出 来,应填入的语句是:Cock + Hen + Chick = 100 And 5 * Cock + 3 * Hen + ch/3; 100。45.下列程序计算 Sn的值。Sn=a+aa+aaa+aaaa,其中最后一项为 n个。 例如:a=5,n=4 时,则Sn=5+55+555+5555。请在空白处填入适当的内容,将程序补充完整。 Private Sub Command1_Click() D
33、im a As Integer,n As Integer,Cout As Integer Dim Sn As Long,Tn As Long Cout=1 Sn=0 Tn=0 a=InputBox(“请输入 a的值:“) -|_|- Do Tn=Tn * 10 + a Sn 二 Sn + Tn Cout=Cout+1 -|_|- DebugPrint a,n,Sn End Sub (分数:3.00)_正确答案:(答案:n = InputBox(“请输入 n的值!”)解析: a 和 n的值必须已知,表达式才能计算。但程序中没有给变量 n赋值的语句,可见第一个空白行应该填写给 n赋值的语句。 Do 循环应该有与之对应的终端语句,可见于第二个空白行应填写 Do循环的终端语句,即 While 语句,同时要构造出控制循环的。程序中有四个赋值语句,其中有 一个计数语句 Cout=Cout + 1,可见控制循环次数的变量应是 Cout。