1、国家二级 VB机试(多重窗体与数据文件)模拟试卷 1及答案与解析 一、选择题 1 设工程中有 2个窗体: Form1和 Form2,每个窗体上都有一个名称为 Text1的文本框。若希望把 Form1上文本框中的内容复制到 Form2上的文本框中,应进行的操作是 ( )。 ( A)执行 Form1中的语句: Form1 rext1=Form2 Text1 ( B)执行 Form1中的语句: Text1=Form1 Text ( C)执行 Form2 中的语句: Form1 rextl=Text1 ( D)执行 Form2 中的语 句: Text1=Form1 Text1 2 以下关于窗体的叙述中
2、错误的是 ( )。 ( A)窗体的 Hide方法将窗体隐藏并卸载 ( B)窗体的 Show方法可以将窗体装入内存并显示该窗体 ( C)若工程中包含多个窗体,则可指定一个为启动窗体 ( D)窗体的 Load事件在加载窗体时发生 3 设工程中有 Form1、 Form2两个窗体,要求单击 Form2上的 Command1命令按钮, Form2就可以从屏幕上消失,下面的事件过程中不能实现此功能的是 ( )。 ( A) Private Sub Command1_Click() Form2 Hide End Sub ( B) Private Sub Command1_Click() Unload Me
3、End Sub ( C) Private Sub Command1_Click() Form2 Unload End Sub ( D) Private Sub Command1_Click() Me Hide End Sub 4 如果要将一个窗体从内存中清除,应使用的语句是 ( )。 ( A) Unload ( B) Show ( C) Load ( D) Hide 5 为了在 Form_Load事件过程中用 Print方法在窗体上输出指定的内容,首先应执行的操作是 ( )。 ( A)设置窗体的 Visible属性 ( B)设置窗体的 AutoRedraw属性 ( C)调用窗体的 Show方法
4、 ( D)设置窗体的 Enabled属性 6 以下关于多重窗体程序的叙述中,错误的是 ( )。 ( A)对于多重窗体程序,需要单独保存每个窗体 ( B)在多重窗体程序中,可以根据需要指定启动窗体 ( C)在多重窗 体程序中,各窗体的菜单是彼此独立的。 ( D)用 Hide方法不仅可以隐藏窗体,而且还可以清除内存中的窗体 7 以下叙述中错误的是 ( )。 ( A) Sub Main是定义在标准模块中的特定过程 ( B)一个工程中只能有一个 Sub Main过程 ( C) Sub Main过程不能有返回值 ( D)当工程中含有 Sub Main过程时,工程执行时一定最先执行该过程 8 以下关于 V
5、B特点的叙述中,错误的是 ( )。 ( A) VB中一个对象可有多个事件过程 ( B) VB应用程序能以编译方式运行 ( C) VB应用程序从 Form_Load事件过程开始执行 ( D)在 VB应用程序中往往通过引发某个事件导致对对象的操作 9 Visual Basic中的 “启动对象 ”是指启动 Visual Basic应用程序时,被自动加载并首先执行的对象。下列关于 Visual Basic“启动对象 ”的描述中,错误的是 ( )。 ( A) “启动对象 ”可以是指定的标准模块 ( B) “启动对象 ”可以是指定的窗体 ( C) “启动对象 ”可以是 Sub Main过程 ( D)若没有
6、经过设置,则默认的 “启动对象 ”是第一个被创建的窗体 10 以下关于 VB文件的叙述中,正确的是 ( )。 ( A)标准模块文件的扩展名是 frm ( B)一个 vbg文件中可以包括多个 vbp文件 ( C)一个 vbp文件只能含有一个标准模块文件 ( D)类模块文件的扩展名为 bas 11 以下叙述中错误的是 ( )。 ( A)标准模块文件的扩展名是 bas ( B)标准模块文件是纯代码文件 ( C)在标准模块中声明的全局变量可以在整个工程中使用 ( D)在标准模块中不能定义过程 12 下面有关标准模块的叙述中,错误的是 ( )。 ( A)标准 模块不完全由代码组成,还可以有窗体 ( B)
7、标准模块中的 Private过程不能被工程中的其他模块调用 ( C)标准模块的文件扩展名为 bas ( D)标准模块中的全局变量可以被工程中的任何模块引用 13 下面关于标准模块的叙述中错误的是 ( )。 ( A)标准模块中可以声明全局变量 ( B)标准模块中可以包含一个 Sub Main过程,但此过程不能被设置为启动过程 ( C)标准模块中可以包含一些 Public过程 ( D)一个工程中可以含有多个标准模块 14 在标准模块中用 Public关键字定义的变 量,其作用域为 ( )。 ( A)本模块所有过程 ( B)整个工程 ( C)所有窗体 ( D)所有标准模块 15 如果在窗体模块中所有
8、程序代码的前面有语句: Dim x,则 x是 ( )。 ( A)全局变量 ( B)局部变量 ( C)静态变量 ( D)窗体级变量 16 下列操作中不能向工程添加窗体的是 ( )。 ( A)执行 “工程 ”菜单中的 “添加窗体 ”命令 ( B)单击工具栏上的 “添加窗体 ”按钮 ( C)右键单击窗体,在弹出的菜单中选择 “添加窗体 ”命令 ( D)右键单击工程资源管理器,在弹出 的菜单中选择 “添加 ”命令,然后在下一级菜单中选择 “添加窗体 ”命令 17 以下关于 VB文件的叙述中,正确的是 ( )。 ( A)标准模块文件的扩展名是 frm ( B) VB应用程序可以被编译为 exe文件 (
9、C)一个工程文件只能含有一个标准模块文件 ( D)类模块文件的扩展名为 bas 18 以下关于文件的叙述中,错误的是 ( )。 ( A)顺序文件有多种打开文件的方式 ( B)读取顺序文件的记录时,只能从头至尾逐记录进行 ( C)顺序文件中各记录的长度是固定的 ( D)随机文件一般占用空间 比较小 19 以下不属于 Visual Basic数据文件的是 ( )。 ( A)顺序文件 ( B)随机文件 ( C)数据库文件 ( D)二进制文件 20 下列关于顺序文件的描述中,正确的是 ( )。 ( A)文件的组织与数据写入的顺序无关 ( B)主要的优点是占空间少,且容易实现记录的增减操作 ( C)每条
10、记录的长度是固定的 ( D)不能像随机文件一样灵活地存取数据 21 以下关于文件的叙述中,错误的是 ( )。 ( A)顺序文件中的记录是一个接一个地顺序存放 ( B)随机文件中记录 的长度是随机的 ( C)文件被打开后,自动生成一个文件指针 ( D) EOF函数用来测试是否到达文件尾 22 下面关于文件的叙述中,错误的是 ( )。 ( A) VB数据文件需要先打开,再进行处理 ( B)随机文件每个记录的长度是固定的 ( C)不论是顺序文件还是随机文件,都是数据文件 ( D)顺序文件的记录是顺序存放的,可以按记录号直接访问某个记录 23 在窗体上有两个名称分别为 Text1、 Text2的文本框
11、,一个名称为 Command1的命令按钮。运行后的窗体外观如图所示。 设有如下的类型和变量声 ming明: Private Type Person name As String*8 major As String*20 End Type Dim P As Person设文本框中的数据已正确地赋值给 Person类型的变量P,当单击 “保存 ”按钮时,能够正确地把变量中的数据写入随机文件 Test2 dat中的程序段是 ( )。 ( A) Open“c: Test2 dat“For Output As #1 Put#1, 1, P Close#1 ( B) Open“c: Test2 dat“
12、For Random As #1 Get #1, 1, P Close #1 ( C) Open“c: Test2 dat“For Random As #1 Len=Len(p) Put #1, 1, p Close #1 ( D) Open“c: Test2 dat“For Random As #1 Len=Len(p) Get #1, 1, P Close #1 24 下列有关文件的叙述中,正确的是 ( )。 ( A)以 Output方式打开一个不存在的文件时,系统将显示出错 信息 ( B)以 Append方式打开的文件,既可以进行读操作,也可以进行写操作 ( C)在随机文件中,每个记录的
13、长度是固定的 ( D)无论是顺序文件还是随机文件,其打开的语句和打开方式都是完全相同的 25 设有语句: Open“c: Test Dat“For Output As #1 则以下叙述中错误的是 ( )。 ( A)该语句打开 C盘根目录下的一个文件 Test Dat,如果该文件不存在则出错 ( B)该语句打开 C盘根目录下一个名为 Test Dat的文件,如果该文件不存在则创建该文件 ( C)该语句打开文件的文件号为 1 ( D)执行该语句后,就可以通过 Print #语句向文件 Test Dat中写入信息 26 在窗体上画一个名称为 Command1的命令按钮,并编写如下程序: Privat
14、e Type Record ID As Integer Name As String*20 End Type Private Sub Command1_Click() Dim MaxSize, NextChar, MyChar Open“d: temp female txt“For Input As #1 MaxSize=LOF(1) For NextChar=MaxSize To 1 Step-1 MyChar=Input(1, #1) Next NextChar Print EOF(1) Close #1 End Sub 运行程序,单击命令按钮,其输出结果为 ( )。 ( A) True
15、( B) False ( C) 0 ( D) Null 27 某人编写了下面的程序,希望能把 Text1文本框中的内容 写到 out txt文件中: Private Sub Command1_Click() Open“out txt“For Output As # Print“Text1“ Close #2 End Sub 调试时发现没有达到目的,为实现上述目的,应做的修改是 ( )。 ( A)把 Print“Text1“改为 Print #2, Text1 ( B)把 Print“Text1“改为 Print Text1 ( C)把 Print“Text1“改为 Write “Text1“
16、( D)把所有 #2 改为 #1 28 以下叙述中错误的是 ( )。 ( A) Print #语句和 Write #语句都可以向文件中写入数据 ( B)用 Print # 语句和 Write # 语句所建立的顺序文件格式总是一样的 ( C)如果用 Print #语句把数据输出到文件,则各数据项之间没有逗号分隔,字符串也不加双引号 ( D)如果用 Write #语句把数据输出到文件,则各数据项之间自动插入逗号,并且把字符串加上双引号 29 设在当前目录下有一个名为 “file txt”的文本文 件,其中有若干行文本。编写如下程序: Private Sub Command1_Click() Dim
17、 eh$, ascii As Integer Open “file txt“For Input As #1 While Not EOF(1) Line Input #1 ch ascii=toascii(ch) Print ascii Wend Close #1 End Sub Private Function toascii(mystr As String)As Integer n=0 For k=1 To Len(mystr) n=n+Asc(Mid(mystr, k, 1) Next k toascii=n End Function 程序的功能是 ( )。 ( A)按行计算文件中每行字符
18、的 ASCII码之和,并显示在窗体上 ( B)计算文件中所有字符的 ASCII码之和,并显示在窗体上 ( C)把文件中所有文本行按行显示在窗体上 ( D)在窗体上显示文件中所有字符的 ASCII码值 30 文件 d: city txt的内容如下: BeiJing TianJin ShangHai ChongQing 编写如下事件过程: Private Sub Form_Click() Dim InD Oven“d: city txt“For Input As #1 Do While Not EOF(1) Line Input #1, InD Loop Close 1 Print InD End
19、 Sub 运行程序,单击窗体,输出结果是 ( )。 ( A)文件 city txt的全部内容 ( B) BeiJing ( C) ChongQing ( D)空白 31 下面语句中能够打开随机文件的是 ( )。 ( A) Open “file txt“ For Random As #1 ( B) Open “file txt“ For Input As #1 ( C) Open “file txt“ For Output As #1 ( D) Open “file txt“ For Append As #1 32 关于文件操作,以下叙述中正确的是 ( )。 ( A) Kill命令的作用是删除用
20、户编写的 VB程序文件 ( B)使用 Name命令能够对文件或文件夹重新命名 ( C)用 FileCopy进行文件拷贝时,可以使用通配符 ( D)用 FileCopy可以将打开的文件复制到指定的文件夹 国家二级 VB机试(多重窗体与数据文件)模拟试卷 1答案与解析 一、选择题 1 【 正确答案】 D 【试题解析】 把 Form1上文本框中的内容复制到 Form2上的文本框中,所以应该在。 Form2中添加语句: Text1=Form1 Text1。 【知识模块】 多重窗体与数据文件 2 【正确答案】 A 【试题解析】 窗体的 Hide方法只是将窗体隐藏,并不卸载窗体。故 A选项错误,其他选项都
21、正确。 【知识模块】 多重窗体与数据文件 3 【正确答案】 C 【试题解析】 Form2 Hide是隐藏 Form2窗体; Unload Me是卸载并关闭当前窗体; Me Hide是隐藏当前窗体。 From2 Unload语法错误。故 C选项不能使窗体 Form2消失。 【知识模块】 多重窗体与数据文件 4 【正确答案】 A 【试题解析】 Unload语句用来将指定窗体从内存中清除。格式为: Unload窗体名称。 【知识模块】 多重窗体与数据文件 5 【正确答案】 C 【试题解析】 窗体加载时是可以执行 Print,但这个时候看不到显示的结果,可以调用窗体的 Show方法显示。 【知识模块】
22、 多重窗体与数据文件 6 【正确答案】 D 【试题解 析】 用 Hide方法只是隐藏窗体,不卸载窗体,所以不会清除内存中的窗体。故选项 D错误。 【知识模块】 多重窗体与数据文件 7 【正确答案】 D 【试题解析】 Visual Basic工程的启动对象有: Sub Main过程 (在标准模块中定义 )和窗体 (在多个窗体可选一个窗体启动 ),可以通过在 “工程属性 ”对话框中设置启动对象来实现,设置哪个就用哪个启动。所以当工程中含有 Sub Main过程时,工程执行不一定最先执行该过程,也可以通过窗体启动。故选项 D错误。 【知识模块】 多重窗体与数据文件 8 【正确答案】 C 【试题解析】
23、 Visual Basic应用程序不一定从。 From_Load事件开始执行,它是由工程中启动对象决定先从哪儿开始执行。故 C选项错误。 【知识模块】 多重窗体与数据文件 9 【正确答案】 A 【试题解析】 Visual Basic中启动对象可以是 Sub Main过程或窗体,不能是标准模块。故 A选项错误。 【知识模块】 多重窗体与数据文件 10 【正确答案】 B 【试题解析】 标准模块文件的扩展名是 has;工程组文件的扩展名是 vbg,由多个工程文件组成;工程文件的扩展名是 vbp,可以含有多个标准模块文件;类模块文件的扩展名为 cls。 【知识模块】 多重窗体与数据文件 11 【正确答
24、案】 D 【试题解析】 标准模块独立保存为标准模块文件 bas故 A选项正确。 标准模块是应用程序内其他模块访问的过程和声明的容器。当应用程序比较庞大,含有多个窗口,而且几个窗口需要写重复的过程、变量等代码时,就可以把这些重复的代码写在标准模块。故 B选项正确。 在标准模块中定义的 Public变量、 Public过程属于全局变 量和全局过程,在整个工程中的其他窗体、模块都可以使用。故 C选项正确,在标准模块中可以定义过程,故 D选项错误。 【知识模块】 多重窗体与数据文件 12 【正确答案】 A 【试题解析】 标准模块中只包含其他窗体模块中公用的一些变量、过程等代码,不包括窗体。故选项 A错
25、误。 标准模块中用 Private声明的过程属于私有过程,只能被它所在的模块中的其他过程调用,不能被工程中其他模块调用。用 Public声明的全局变量属于公用变量,可以被工程中的任何模块引用。标准模块的文件扩展名是 bas。 【知识模块】 多重窗体与数据文件 13 【正确答案】 B 【试题解析】 标准模块中可以包含一个 Sub Main过程,可以通过 “工程属性 ”对话框中将 Sub Main过程设置启动对象。故 B选项错误。 【知识模块】 多重窗体与数据文件 14 【正确答案】 B 【试题解析】 在标准模块中用 Public定义的变量是公用的全局变量,在整个工程中的所有窗口、模块中都能引用,
26、作用域是整个工程。故 B选项正确。 【知识模块】 多重窗体与数据文件 15 【正确答案】 D 【试题解析】 在窗体所有代码前定义的变量是窗体级变量。在整个窗体模块的过程中都能引用。 【知识模块】 多重窗体与数据文件 16 【正确答案】 C 【试题解析】 右击窗体,弹出的菜单中没有 “添加窗体 ”命令,故 C选项错误。 【知识模块】 多重窗体与数据文件 17 【正确答案】 B 【试题解析】 标准模块文件的扩展名是 bas,不是 frm,故 A选项错误。一个工程中可以包含一个或多个标准模块文件,故 C选项错误。类模块文件的扩展名为 cls,不是 bas。故 D选项错误。 B选项正确。 【知识模 块
27、】 多重窗体与数据文件 18 【正确答案】 C 【试题解析】 顺序文件中各记录的长度不固定。 【知识模块】 多重窗体与数据文件 19 【正确答案】 C 【试题解析】 可以从不同的角度对文件进行分类:按照文件的内容,可分成程序文件和数据文件;按照文件存储信息的形式,可分为 ASCII文件和二进制文件;按照文件的组织形式,可分成顺序文件和随机文件;按照存储介质,又可以分为光盘文件、磁盘文件、磁带文件和打印文件等。 【知识模块】 多重窗体与数据文件 20 【正确答案】 D 【试题解析】 顺序文件的特点是:文件中各记录写入、存放和读取的顺序是一致的,即最先写入的记录放在文件的最前面,后面写入的依次往后
28、面存放,最后写入的记录存放在文件记录。所以文件的组织与数据写入的顺序有关,而且读取文件时效率低,不灵活。故 A选项错误, D选项正确。根据顺序文件的特点,文件实现记录的增减不容易。故 B选项错误。顺序文件的每条记录中各数据项个数不固定,所以记录的长度也不固定。故 C选项错误。 【知识模块】 多重窗体与数据文件 21 【正确答案】 B 【试题解析】 随机文件中记录的长度是固 定的、相等的,不是随机的。故选项 B错误。 【知识模块】 多重窗体与数据文件 22 【正确答案】 D 【试题解析】 顺序文件的记录是顺序存放的,先写入的记录存放在文件的最前面,后写入的依次往后面存放,最后写入的记录放在文件的
29、最后面。如果访问某条记录,要先访问前面的记录,才能访问后面的记录,不能按记录号直接访问。故 D选项错误。 【知识模块】 多重窗体与数据文件 23 【正确答案】 C 【试题解析】 在 Visual Basic中可以访问的文件有顺序文件、随机文件和二进制文件。不同文 件存取方式不同,但处理的步骤大致一样。 用 Open语句打开文件,并为文件制定一个文件号。根据文件的的存取方式使用不同的模式打开文件。 本题是随机文件,读写的是一条一条的记录,所以用 ForRandom模式打开,记录的长度为 Person类型变量 p的长度。 从文件中读出数据进行处理或处理数据后,把数据写入文件。 本题是把变量的数据写
30、入随机文件,所以用 Put语句写入。 文件操作结束,关闭文件。各种文件关闭统一用 Close#文件号关闭。 综合以上,故选 C。 【知识模块】 多重窗体与数据文件 24 【正确答案】 C 【试题解析】 A选项错误原因:当以 Output方式打开一个不存在的顺序文件时, Open语句会首先创建该文件,然后再打开它,系统不会出错。 B选项错误原因:以 Append方式打开文件后。可将内存中的数据追加到顺序文件的尾部,可进行写操作,不能进行读操作。 D选项错误原因: Visual Basic中可访问的文件有顺序文件、随机文件和二进制文件,不同文件打开的方式是不同的。 C选项中随机文件中的每一行称为一
31、条记录,每条记录 的长度相同,通过记录号来定位和查找指定记录。故 C选项正确。 【知识模块】 多重窗体与数据文件 25 【正确答案】 A 【试题解析】 本题中是用 Open语句打开一个顺序文件 Test Dat,并指定一个文件号 1。故 C选项正确。 如果 Test Dat文件不存在,则系统自动创建该文件。故 B选项正确, A选项错误。 用 For Output模式打开文件,可通过 Print #语句向文件写入信息。故 D选项正确。 【知识模块】 多重窗体与数据文件 26 【正确答案】 A 【试题解 析】 程序中以顺序输入方式打开 d: temp female txt文件。 LOF函数取得打开
32、文件的长度。 EOF函数用来测试文件的结束状态。根据文件长度值,利用 Input函数逐一取出文件中的字符,每读取一个字符,文件指针自动下移,指向下一个字符。当执行最后一次循环时, Input函数读取了最后一个字符,文件指针再向下移动就会指向文件的结尾。因此当 EOF函数测试文件结束状态时,就会返回 True。对于逻辑值, Print语句会直接输出 True。因此答案为 A。 【知识模块】 多重窗体与数据文件 27 【正确答案 】 A 【试题解析】 要把文本框中的内容写入文本文件中,首先要用 Open语句的 For Output模式打开文本文件,并为文件制定一个文件号。然后用 Print语句将文
33、本写入文本文件,最后关闭文件。 本题中 Click事件过程中第 1、 3条语句正确。 第 2条语句 Print语句的格式是: Print #文件号,要写入的内容,原语句错误。 根据格式按选项 A修改正确,故 A选项正确。 【知识模块】 多重窗体与数据文件 28 【正确答案】 B 【试题解析】 用 Print#语句和 Write#语句都可以向文件写入数据,但输出到文件的数据的格式不同。故 B选项错误。 用 Print#语句写入文本文件的数据,字符串不会自动加上双引号,各数据项之间没有逗号分隔,原样输入,方便阅读。适合用 Line Input#语句读出。 用 Write#语句写入文本文件的数据,字
34、符串会自动加上双引号,并且各数据项中间用逗号分隔,阅读起来不是很好看。适合用 Input#语句读出。故 A、 C、 D选项正确。 【知识模块】 多重窗体与数据文件 29 【正确答案】 A 【试题解析】 过程 toascii的功能是依次取出传入字符串中的每个字符,用 Asc函数将这个字符转换为相应的 ASCII码值,通过 For循环将这些值累加。累加值由过程名返回。 Click事件中以顺序输入方式打开 file txt文件,即以读取方式打开文件。 While循环的结束条件是到达文件尾部,在循环体中, Line Input #语句读取文件中的一行数据存人变量 ch中,然后以 ch为参数调用过程 t
35、oascii,即计算这一行字符中所有字符的 ASCII码值的和,返回值赋给变量 ascii,在窗体上输出 ascii的值。所以 While循环结束时,将在窗体上 显示输出 file txt中每一行数据的 ASCII码值的和。因此答案为 A。 【知识模块】 多重窗体与数据文件 30 【正确答案】 C 【试题解析】 #1文件以读操作的方式打开。在文件结尾的部分退出。退出时InD内存储的内容是 chongQing,打印的内容就是 ChongQing,选 D。 【知识模块】 多重窗体与数据文件 31 【正确答案】 A 【试题解析】 打开随机文件的一般格式为 Open“文件名 ”For Random As #文件号 Len=记录长度 。 【知识模块】 多 重窗体与数据文件 32 【正确答案】 B 【试题解析】 Kill命令用以删除文件,不能删除文件夹。 FileCopy可以把源文件拷贝到目标文件,拷贝后两个文件的内容完全一样。打开的文件不能拷贝,拷贝文件不能含有通配符 (*或 ?)。 【知识模块】 多重窗体与数据文件