1、国家二级 VB机试(键盘与鼠标事件过程、多重窗体与数据文件)模拟试卷 1及答案与解析 一、选择题 1 下列事件的事件过程中,参数是输入字符 ASCII码的是 ( )。 ( A) KeyDown事件 ( B) KeyUp事件 ( C) KeyPress事件 ( D) Change事件 2 以下说法中正确的是 ( )。 ( A)当焦点在某个控件上时,按下一个字母键,就会执行该控件的 KeyPress事件过程 ( B)因为窗体不接受焦点,所以窗体不存在自己的 KeyPress事件过程 ( C)若按下的键相同, KeyPress事件过程中的 KeyAscii参数与 KeyDown事件过程中的 KeyC
2、ode参数的值也相同 ( D)在 KeyPress事件过程中, KeyAscii参数可以省略 3 将窗体的 KeyPreview属性设为 True,然后编写如下程序: Private Sub FormKeyDown(KeyCode As Integer, Shift As Integer) Print Chr(KeyCode) End Sub Private Sub FormKeyPress(KeyAscii As Integer) Print Chr(KeyAscii) End Sub 运行程序时,按下字母键 a,则窗体上显示的是 ( )。 ( A) A a ( B) A A ( C) a
3、A ( D) a a 4 以下可以判断是否在文本框 (名称为 Text1)内按下了回车键的事件过程是 ( )。 ( A) Textl_Change ( B) Textl一 Click ( C) Text1_KeyPress ( D) Text1一 GotFocus 5 下面叙述中错误的是 ( )。 ( A)由于 窗体不能获得焦点,所以窗体没有键盘事件 ( B)框架控件没有键盘事件 ( C)标签控件没有键盘事件 ( D)文本框有键盘事件,但当 Enabled属性被设置为 False时,其键盘事件无法被激活 6 设窗体上有一个名称为 Checkl的复选框,并有下面程序代码: Private Sub
4、 Check l一 MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Checkl Value=l End Sub 根据上面的事件过程,可以 得出结论 ( )。 ( A)鼠标单击该复选框,复选框的标题被改为 “1” ( B)鼠标右键单击该复选框,可以选中该复选框 ( C)鼠标左键单击该复选框,它被选中,右键单击它,取消选中 ( D)鼠标右键单击该复选框,它被选中,左键单击它,取消选中 7 窗体的 MouseUp事件过程如下: Private Sub FormMouseUp(Buaon As Inte
5、ger, Shift As Integer, X As Single, Y As Single) End Sub 关于以上定义,以下叙述中错误的是 ( )。 ( A)根据 Shift参数,能够确定使用转换键的情况 ( B)根据 X、 Y参数可以确定触发此事件时鼠标的位置 ( C) Button参数的值是在 MouseUp事件发生时,系统自动产生的 ( D) MouseUp是鼠标向上移动时触发的事件 8 命令按钮 Commandl的 MouseUp事件过程结构如下: Private Sub CommandlMouseUp(Button As Integer, Shift As Integer,
6、X As Single, Y As Single) End Sub 则以下 叙述中错误的是 ( )。 ( A) x、 y参数表示的是 Commandl左上角在窗体中的位置 ( B) Button参数用于确定按下的鼠标键 ( C) Shift参数用于确定是否按下了 Alt、 Ctrl或 Shift键 ( D) MouseUp表示抬起鼠标按键时触发的事件 9 要求在程序运行时,如果按住鼠标左键不放而移动鼠标,鼠标的位置坐标同步显示在窗体右上角的标签 (名称为 Labell)中,如下图所示,放开鼠标左键后,停止同步显示。 下面可以实现此功能的程序是 ( )。 ( A) Pfivate Sub For
7、m_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button=1 Then Labell=“X=”&X ” Y=”&Y End If End Sub ( B) Private Sub FormMouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button=l Then Labell=“X=“&X ” Y=”&Y End If End Sub ( C) Private Sub FormMous
8、eMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button=1 Then Labell=”X=”&X&” Y=”&Y End If End Sub ( D) Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Labell=”X=”&X&” Y=”&Y End Sub 10 下列操作说明中,错误的是 ( )。 ( A)在具有焦点的对象上进行一次按下字母键操作,会引发 Ke
9、yPress事件 ( B)可以通过 MousePointer属性设置鼠标光标的形状 ( C)不可以在属性窗口设置 MousePointer属性 ( D)可以在程序代码中设置 MousePointer属性 11 为了实现对象的自动拖放,应该设置该对象的一个属性。下面设置中正确的是( )。 ( A) DragMode=l ( B) DmgMode=0 ( C) Dragleon=1 ( D) DragIeon=0 12 鼠标拖放控件要触发两个事件,这两个事件是 ( )。 ( A) DragOver事件和 DragDrop事件 ( B) Drag事件和 DragDrop事件 ( C) MouseDo
10、wn事件和 KeyDown事件 ( D) MouseUp事件和 KeyUp事件 13 设工程中有 2个窗体: Form1和 Form2,每个窗体上都有一个名称为 Text1的文本框。若希望把 Form1上文本框中的内容复制到 Form2上的文本框中,应进行的操作是 ( )。 ( A)执行 Form1中的语句: Form1 Textl=Form2 Text1 ( B)执行 Form1中的语句: Text1=Form1 Text ( C)执行 Form2中的语句: Form1 Textl=Text1 ( D)执行 Form2中的语句: Text1=Form1 Text1 14 如果要将一个窗体从内
11、存中清除,应使用的语句是 ( )。 ( A) Unload ( B) Show ( C) Load ( D) Hide 15 为了在 FormLoad事 件过程中用 Print方法在窗体上输出指定的内容,首先应执行的操作是 ( )。 ( A)设置窗体的 Visible属性 ( B)设置窗体的 AutoRedraw属性 ( C)调用窗体的 Show方法 ( D)设置窗体的 Enabled属性 16 以下关于 VB特点的叙述中,错误的是 ( )。 ( A) VB中一个对象可有多个事件过程 ( B) VB应用程序能以编译方式运行 ( C) VB应用程序从 FormLoad事件过程开始执行 ( D)在
12、 VB应用程序中往往通过引发某个事件导致对对象的操作 17 Visual Basic中的 “启动对象 ”是指启动 Visual Basic应用程序时,被自动加载并首先执行的对象。下列关于 Visual Basic“启动对象 ”的描述中,错误的是 ( )。 ( A) “启动对象 ”可以是指定的标准模块 ( B) “启动对象 ”可以是指定的窗体 ( C) “启动对象 ”可以是 Sub Main过程 ( D)若没有经过设置,则默认的 “启动对象 ”是第一个被创建的窗体 18 对于含有多个窗体的工程而言,以下叙述中正确的是 ( )。 ( A)没有指定启动窗体时,系统自动将最后一个添加的窗体设置为启动
13、窗体 ( B)启动窗体可以通过 “工程属性 ”对话框指定 ( C) L0ad方法兼有装入和显示窗体两种功能 ( D) Hide方法可以将指定的窗体从内存中清除 19 以下关于 VB文件的叙述中,正确的是 ( )。 ( A)标准模块文件的扩展名是 frm ( B)一个 vbg文件中可以包括多个 vbp文件 ( C)一个 vbp文件只能含有一个标准模块文件 ( D)类模块文件的扩展名为 has 20 以下关于文件的叙述中,错误的是 ( )。 ( A)顺序文件有多种打开文件的方式 ( B)读取顺序文件的记录 时,只能从头至尾逐记录进行 ( C)顺序文件中各记录的长度是固定的 ( D)随机文件一般占用
14、空间比较小 21 下列关于顺序文件的描述中,正确的是 ( )。 ( A)文件的组织与数据写入的顺序无关 ( B)主要的优点是占空间少,且容易实现记录的增减操作 ( C)每条记录的长度是固定的 ( D)不能像随机文件一样灵活地存取数据 22 VB应用程序不能把一个二维表格中的数据存入文件 ( )。 ( A) VB数据文件不包括 VB的窗体文件 ( B) VB应用程序可以用随机方式读写数据文件 ( C) VB应用 程序在读写数据文件之前,必须用 Open语句打开该文件 ( D) VB应用程序不能把一个二维表格中的数据存入文件 23 下面关于文件叙述中错误的是 ( )。 ( A) VB数据文件需要先
15、打开,再进行处理 ( B)随机文件每个记录的长度是固定的 ( C)不论是顺序文件还是随机文件,都是数据文件 ( D)顺序文件的记录是顺序存放的,可以按记录号直接访问某个记录 24 用语句 Open“C: teac txt”For Input As#1打开文件后,就可以编程序 ( )。 ( A)将 C盘根目录下 teac txt文件的内容读入内存 ( B)在 C盘根目录下建立名为 teac txt的文件 ( C)把内存中的数据写入 c盘根目录下名为 teac txt的文件 ( D)将某个磁盘文件的内容写入 C盘根目录下名为 teac txt的文件 25 为了保存数据,需打开顺序文件 ”E: Us
16、erData txt”,以下正确的命令是( )。 ( A) Open E: UserData txt For Input As#1 ( B) Open”E: UserData txt”For: input As#2 ( C) Open E: UserData txt For Output As#l ( D) Open”E: UserData txt”For Output As#2 26 为了读取数据,需打开顺序文件 ”D: data5 txt”,以下正确的命令是 ( )。 ( A) Open D: data5 txt For Input As#1 ( B) Open”D: data5 txt”
17、For Input As#2 ( C) Open D: data5 txt For Output As#1 ( D) Open“D: data5 txt”For Output As#2 27 设在当前目录下有一个名为 “file txt”的文本文件,其中有若干行文本。编写如下程序: Private Sub CommandlClick() Dim ch$ 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
18、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 toastii=n End Function 程序的功能是 ( )。 ( A)按行计算文件中每行字符的 ASC 码之和,并显示在窗体上 ( B)计算文件中所有字符的 ASC 码之和,并显示在窗体上 ( C)把文 件中所有文本行按行显示在窗体上 ( D)在窗体上显示文件中所有字符的 ASC 码值 28 文件 d: city txt的内容如下: BeiJing Ti
19、anJin ShangHai ChongQing 编写如下事件过程: Private Sub FormClick() Dim InD Open“d: city txt”For Input As#1 Do While Not EOF(1) Line Input#1 InD Loop Close 1 Print InD End Sub 运行程序,单击窗体,输出结果是 ( )。 ( A)文件 city txt的全部内容 ( B) BeiJing ( C) ChongQing ( D)空白 国家二级 VB机试(键盘与鼠标事件过程、多重窗体与数据文件)模拟试卷 1答案与解析 一、选择题 1 【正确答案】
20、 C 【试题解析】 KeyPress事件参数 KeyAscii As Integer, Key Ascii是所按键字符的 ASCII码。 KeyDown和 Keyup事 件参数有两个,是 KeyCode As Integer和Shift As Integer, KeyCode是按键的实际的 ASCII码,同一个按键上的大小写字母它们的 KeyCode相同 (使用大写字母的 ASCII码 )。 【知识模块】 键盘与鼠标事件过程 2 【正确答案】 A 【试题解析】 B)选项错误原因:窗体有自己的 KeyPress事件过程; c)选项错误原因: KeyPress事件过程中的 KeyAscii参数返回
21、按键的 ASCII码值,大小写字母返回值不同;而 KeyDown事件过程中的 KeyCode参 数返回的是按键代码,大小写字母返回值相同。故按下的键相同时, keyAscii和 KeyCode参数不一定返回相同值; D)选项错误原因: KeyPress事件中的 KeyAscii参数不能省略。 A)选项正确。 【知识模块】 键盘与鼠标事件过程 3 【正确答案】 B 【试题解析】 KeyCode是按键的实际字符 (不区分大小写 ), Key Ascii是以字符为准,是所按键的 ASCII码。 【知识模块】 键盘与鼠标事件过程 4 【正确答案】 C 【试题解析】 KeyPress事件:用户按下并 且
22、释放一个会产生 ASCII码的键时被触发。此事件只对会产生 ACSII码的按键有反应,包括数字、大小写的字母、Enter、 Backspace、 Esc、 Tab等,对于如方向键这样的不会产生 ASCII码的按键, KeyPress事件就不会被触发。 【知识模块】 键盘与鼠标事件过程 5 【正确答案】 A 【试题解析】 : KeyPreview属性返回或设置一个值,以决定是否在控件的键盘事件之前激活窗体的键盘事件。键盘事件为: KeyDown、 KeyUp和 KeyPress。当KeyPreview的值为 True时窗体先接收键盘事件,然后是活动控件接收事件;为False时 (缺省值 )活动控
23、件接收键盘事件,而窗体不接收。 【知识模块】 键盘与鼠标事件过程 6 【正确答案】 B 【试题解析】 在鼠标单击事件过程中, Button属性值为 1时代表按下鼠标左键,值为 2时代表按下鼠标右键,单击鼠标左键或者右键都能触发 MouseDown事件。Value属性值决定每个复选框的选中状态: 0为未选、 1为选中、 2为不可用 (以灰色呈现 )。选 B)。 【知识模块】 键盘与鼠标事件过程 7 【正确答案】 D 【试 题解析】 MouseUp事件是鼠标松开时触发的事件过程,事件过程的 Button参数值由系统产生,为被按下的键, Shift参数表示 Shift、 Ctrl和 Alt键的状态,
24、X、 Y参数表示光标的当前位置。 【知识模块】 键盘与鼠标事件过程 8 【正确答案】 A 【试题解析】 X, Y用来表示鼠标光标当前在窗体上的 X、 Y轴坐标。 【知识模块】 键盘与鼠标事件过程 9 【正确答案】 C 【试题解析】 鼠标移动时产生的事件是 MouseMove事件。 MouseDown事件过程的参数定义如下: Sub Form_MouseMove(Button As integer, Shift As Integer, x As Single, y As single) 其中 Button表示被按下的鼠标键,按下左键时值为 1,按下右键时值为 2,按下中间键时值为 4。 x, y
25、参数表示鼠标光标当前位置的坐标。 题目要求按住左键时移动显示鼠标位置,因此在事件过程要判断是否按下了左键,按下了左键则在标签中显示鼠标位置,否则不显示。因此可用 Button=1来判断是否按下了左键及是否显示鼠标位置。因此应该选择 C选项。 【知识模块 】 键盘与鼠标事件过程 10 【正确答案】 C 【试题解析】 可以在属性窗口中给 MousePointer属性设置属性值。故 c选项错误。 【知识模块】 键盘与鼠标事件过程 11 【正确答案】 A 【试题解析】 实现对象的自动拖放应设置 DragMode=1。 【知识模块】 键盘与鼠标事件过程 12 【正确答案】 A 【试题解析】 当鼠标拖动控
26、件到目标对象上,不松开鼠标时,触发目标对象的DragOver事件;松开鼠标时,就会触发目标对象的: DragDrop事件。故选 A。 【知识模块】 键盘与鼠标事件过程 13 【正确答案】 D 【试题解析】 把 Forml上文本框中的内容复制到 Form2上的文本框中,应该在Form2中添加语句: Textl=Forml Text1。 【知识模块】 多重窗体与数据文件 14 【正确答案】 A 【试题解析】 Unload语句用来将指定窗体从内存中清除。格式: Unload窗体名称。 【知识模块】 多重窗体与数据文件 15 【正确答案】 C 【试题解析】 窗体加载的时候可以 Print,但这个时候还
27、没有显示 出来,看不到Print的结果,要调用窗体的 Show方法显示结果。 【知识模块】 多重窗体与数据文件 16 【正确答案】 C 【试题解析】 VB应用程序不一定从 FromLmad事件开始执行,它是由工程中启动对象决定先从哪儿开始执行。故 C选项错误。 【知识模块】 多重窗体与数据文件 17 【正确答案】 A 【试题解析】 VB中启动对象可以是 Sub Main过程或窗体,不能是标准模块。故 A选项错误。 【知识模块】 多重窗体与数据文件 18 【正确答案】 B 【试题 解析】 没有指定启动窗体时,系统自动将第一个窗体默认为启动窗体,所以选项 A)错误;要想使包含多个窗体的工程中的某个
28、窗体在程序运行时首先显示,则方法就是在 “工程属性 ”对话框中将 “启动对象 ”设置为某个窗体,所以选项B)正确; Load方法有装入窗体功能,所以选项 c)错误; Hide方法使指定的窗体不显示,但不从内存中删除窗体,所以选项 D)错误。 【知识模块】 多重窗体与数据文件 19 【正确答案】 B 【试题解析】 标准模块文件的扩展名是。 bas;工程组文件的扩展名是 .vbs,由多个工程文件组成;工 程文件的扩展名是 vbp,可以含有多个标准模块文件;类模块文件的扩展名为 cls。 【知识模块】 多重窗体与数据文件 20 【正确答案】 C 【试题解析】 顺序文件中各记录的长度不固定。 【知识模
29、块】 多重窗体与数据文件 21 【正确答案】 D 【试题解析】 顺序文件的特点是:文件中各记录写入、存放和读取的顺序是一致的,即最先写入的记录放在文件的最前面,后面写入的依次往后面存放,最后写人的记录存放在文件的最后。读取时也是,先读取完前面的记录,才能读取后面的记录。所以文件的组织 与数据写入的顺序有关,而且读取文件时效率低,不灵活。故 A选项错误, D选项正确。根据顺序文件的特点,文件实现记录的增减不容易。故 B选项错误。顺序文件的每条记录中各数据项个数不固定,所以记录的长度也不固定。故 C选项错误。 【知识模块】 多重窗体与数据文件 22 【正确答案】 D 【试题解析】 VB应用程序可以
30、把一个二维表格中的数据存入文件。 【知识模块】 多重窗体与数据文件 23 【正确答案】 D 【试题解析】 顺序文件的记录是顺序存放的,先写入的记录存放在文件的最前面,后写入的 依次往后面存放,最后写入的记录放在文件的最后面。如果访问某条记录,要先访问前面的记录,才能访问后面的记录,不能按记录号直接访问。故 D选项错误。 【知识模块】 多重窗体与数据文件 24 【正确答案】 A 【试题解析】 Open语句兼有打开文件和建立文件两种功能, Input是指定顺序输入方式,题意为打开已存在的数据文件,以便从文件中读出记录。 【知识模块】 多重窗体与数据文件 25 【正确答案】 D 【试题解析】 打开顺
31、序文件的基本格式为: Open“文件名称 ”For Mode As#文件号。 “文件名称 ”表示要打开的文件的路径。 Mode为打开模式: OutPut用于输出; Append用于追加写入; Input用于读取。 文件号为打开文件时指定的句柄 (即文件号 )。 【知识模块】 多重窗体与数据文件 26 【正确答案】 B 【试题解析】 打开顺序文件的基本格式为: Open“文件名称 ”For Mode As#文件号。 “文件名称 ”表示要打开的文件的路径。 Mode为打开模式: OutPut用于输出; Append用于追加写入; Input用于读取。 文件号为打开文件时指定的句柄 (即文件号 )。
32、 【知识模块】 多重窗体与数据文件 27 【正确答案】 A 【试题解析】 过程 toascii的功能是依次取出传入字符串中的每个字符,用 Asc函数将这个字符转换为相应的 ASCII码值,通过 For循环将这些值累加。累加值由过程名返回。 Click事件中以顺序输入方式打开 file txt文件,即以读取方式打开文件。 While循环的结束条件是到达文件尾部,在循环体中, Line Input#语句读取文件中的一行数据存入变量 ch中,然后以 ch为参数调用过程 toascii,即计算这一行字符中所有 字符的 ASCII码值的和,返回值赋给变量 ascii,在窗体上输出ascii的值。所以 While循环结束时,将在窗体上显示输出 file txt中每一行数据的 ASCII码值的和。因此答案为 A。 【知识模块】 多重窗体与数据文件 28 【正确答案】 C 【试题解析】 #1文件以读操作的方式打开。在文件结尾的部分退出。退出时InD内存储的内容是 ChongQing,打印的内容就是 ChongQing,选 D)。 【知识模块】 多重窗体与数据文件