1、国家二级(VB)机试-试卷 1 及答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.下面程序的功能是利用随机数函数模拟掷骰子。方法是每次随机产生一个 16 的整数,相当于一次掷骰子。程序运行后,在 Text2 文本框中输入总投掷次数(例如 10000),单击“开始投掷“按钮则进行模拟掷骰子,并把出现 16 的次数分别显示在文本框数组 Text1(从上到下各文本框的下标为 05)的各元素中,如图所示 (分数:2.00)A.nB.a(n) + 1C.a(n) + nD.a(n) + k2.下面是一个判断并输出获得奖学金信息的程序:Private Su
2、b Command1_Click() a% = InputBox(“请输入主课成绩 1“) b% = InputBox(“请输入主课成绩 2“) c% = InputBox(“请输入副课成绩“) s = (a + b + c) / 3 If s = 85 Then If a = 90 And b = 90 Then Print “获得一等奖学金“ Else Print “获得二等奖学金“ End If Else If a = 95 Or b = 95 Then Print “获得三等奖学金“ Else Print “不获得奖学金“ End If End IfEnd Sub 程序运行时,如果输入
3、的依次是 90、91、72,则输出是(分数:2.00)A.获得一等奖学金B.获得二等奖学金C.获得三等奖学金D.不获得奖学金3.编写如下程序:Private Sub Command1_Click() x = 4 n = 1 Do x = 2 * x - 3 n = n + 1 Print x Loop Until x 30 Print nEnd Sub 在保证程序输出不变的前提下,可以把循环条件 Until x 30 改为(分数:2.00)A.Until x 40B.Until x 20C.While x 204.窗体上有一个 Text1 文本框和一个 Command1 命令按钮。程序的功能是
4、在文本框中输入密码后单击命令按钮则进行密码确认,若密码正确,弹出信息框显示“密码正确“,若密码错误,弹出信息框显示“密码错误,请重新输入“,但最多允许输出 3 次,若还不正确,则弹出信息框显示“密码错误,不能再输入“,且命令按钮变为无效。某人编写了如下程序:Private Sub Command1_Click() Dim num As Integer num = num + 1 If Text1.Text = “123456“ Then MsgBox “密码正确“ ElseIf num = 3 Then Command1.Enabled = False MsgBox “密码错误,不能再输入“
5、Else MsgBox “密码错误,请重新输入“ End IfEnd Sub 调试时发现有错误需要修改,下面正确的修改方案是(分数:2.00)A.把 ElseIf num = 3 Then 改为 ElseIf num 3 ThenB.把 Command1.Enabled = False 改为 Command1.Enabled = TrueC.把 Dim num As Integer 改为 Static num As IntegerD.把 num = num + 1 改为 num = num + 35.编写如下程序:Function Fun1(ByVal a As Integer, b As I
6、nteger) As Integer a = b + a b = 2 * a Fun1 = bEnd FunctionPrivate Sub Command1_Click() Dim x As Integer x = 5 Print Fun1(Fun1(x, x - 1), x - 2)End Sub 程序运行后,单击命令按钮 Command1,输出结果为(分数:2.00)A.5B.42C.50D.686.下面程序的功能是:先输入一个字符串,再输入 3 个字符,然后统计这 3 个字符分别在字符串中出现的次数并输出 Private Sub Command1_Click() Dim ch$(3),
7、 str$, prompt$, count%(3) str = InputBox(“请输入一个字符串“) For k = 1 To 3 prompt = “请输入要查找的第“ “出现的次数为“; count(k) Next kEnd Sub 程序不完整,在横线上应该填写的是(分数:2.00)A.Mid(str, k, 1)B.Mid(str, j, 1)C.str(k)D.str(j)7.窗体上有一个名称为 Line1 的直线控件,并有如下程序:Dim down As Boolean, x1%, y1%Private Sub Form_Load() Line1.Visible = False
8、down = FalseEnd SubPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 1 Then down = True x1 = X : y1 = Y End IfEnd SubPrivate Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 1 Then down = False Line1.x1 =
9、x1 : Line1.y1 = y1 Line1.x2 = X : Line1.y2 = Y Line1.Visible = True End IfEnd Sub 运行程序,按下鼠标左键不放,移动鼠标到窗体其他位置处放开左键,则产生的结果是(分数:2.00)A.以鼠标按下和抬起的两点为端点显示一条直线B.鼠标按下时显示一条直线;鼠标抬起时直线消失C.直线从鼠标按下处移动到鼠标抬起处D.鼠标按下时直线消失;鼠标抬起时显示直线8.编写如下程序:Private Sub Command1_Click() Dim a(2, 3) For i = 0 To 2 For j = 0 To 3 a(i, j)
10、 = InputBox(“请输入整数“) Next j Next i For i = 0 To 2 a(i, 1) = a(i, 3) Next i For i = 0 To 2 For j = 0 To 3 Print a(i, j), Next j Print Next iEnd Sub 程序运行后,单击命令按钮Command1,并输入了 12 个整数:1,2,3,4,5,6,7,8,9,10,11,12,则输出结果为(分数:2.00)A.1 4 3 2 5 8 7 6 9 12 11 10B.1 4 3 4 5 8 7 8 9 12 11 12C.3 2 1 4 7 6 5 8 11 1
11、0 9 12D.3 2 3 4 7 6 7 8 11 10 11 129.有如下过程:Private Sub Command1_Click() Dim Name As String * 20 Open “file1.dat“ For Random As #1 Len = 20 k = 1 Do While Not EOF(1) Get #1, k, Name Print Name k = k + 2 Loop Close #1End Sub 这一过程的功能是(分数:2.00)A.读入文件 file1.dat 中所有记录号为偶数的记录并显示在窗体上B.读入文件 file1.dat 中所有记录号为
12、奇数的记录并显示在窗体上C.读入文件 file1.dat 中记录号为 1 的记录并显示在窗体上D.把 Name 中的数据写进文件 file1.dat 中10.设数据元素的集合 D= 1,2,3,4,5 ,则满足下列关系 R 的数据结构中为线性结构的是(分数:2.00)A.R= (1,2), (3,4), (5,1) B.R= (1,3), (4,1), (3,2), (5,4) C.R= (1,2), (2,3), (4,5) D.R= (1,3), (2,4), (3,5) 11.下列叙述中正确的是(分数:2.00)A.链表结点中具有两个指针域的数据结构可以是线性结构,也可以是非线性结构B.
13、线性表的链式存储结构中,每个结点必须有指向前件和指向后件的两个指针C.线性表的链式存储结构中,每个结点只能有一个指向后件的指针D.线性表的链式存储结构中,叶子结点的指针只能是空12.一个栈的初始状态为空。现将元素 A,B,C,D,E 依次入栈,然后依次退栈三次,并将退栈的三个元素依次入队(原队列为空),最后将队列中的元素全部退出。则元素退队的顺序为(分数:2.00)A.ABCB.CBAC.EDCD.CDE13.某二叉树的中序序列为 DCBAEFG,后序序列为 DCBGFEA,则该二叉树的深度(根结点在第 1 层)为(分数:2.00)A.5B.4C.3D.214.软件生命周期是指(分数:2.00
14、)A.软件产品从提出、实现、使用、维护到停止使用退役的过程B.软件的需求分析、设计与实现C.软件的开发与管理D.软件的实现和维护15.某系统结构图如下图所示 (分数:2.00)A.1B.2C.3D.416.下面属于应用软件的是(分数:2.00)A.学生成绩管理系统B.UNIX 操作系统C.汇编程序D.编译程序17.将 E-R 图转换为关系模式时,E-R 图中的属性可以表示为(分数:2.00)A.属性B.键C.关系D.域18.有两个关系 R 与 S 如下,由关系 R 和 S 得到关系 T,则所使用的操作为 (分数:2.00)A.并B.自然连接C.除法D.交19.优化数据库系统查询性能的索引设计属
15、于数据库设计的(分数:2.00)A.需求分析B.概念设计C.逻辑设计D.物理设计20.Visual Basic 集成环境的“工程“菜单(部分)如图所示。为了编写全局变量和通用过程,要为当前工程创建一个新的.bas 文件,为此,应在菜单中选择的是 (分数:2.00)A.添加窗体B.添加 MDI 窗体C.添加模块D.添加类模块21.如果在程序中直接使用了没有声明的变量,则它的数据类型是(分数:2.00)A.字符串型B.整型C.逻辑型D.变体型22.为了判断字符串变量 ch 中是否是一个大写字母,需要编写这样一个表达式:当 ch 中字符为大写字母时,表达式的值为 True,否则为 False。下面能
16、正确实现这一目的的表达式是(分数:2.00)A.A b, a, b) c, c, IIf(a b, a, b)B.x = IIf(IIf(a b, a, b) c, IIf(a b, a, b), c)C.x = IIf(a c, IIf(a b, a, b), c)D.x = IIf(a b, IIf(a 10D.Do Until x = 10 x = x + 127.下面过程定义框架中正确的是(分数:2.00)A.Function fun(x As Control) End FunctionB.Function fun(ByVal a() As Integer) As Long End F
17、unctionC.Sub proc(x As Integer) As Integer End SubD.Sub proc(Optional x As Long, y As Integer) End Sub28.设有下面的类型和变量定义,Private Type Rec name As String score(5) As IntegerEnd TypeDim student As Rec 则下面正确的语句是(分数:2.00)A.student = “张三“B.student.score(2) = 75C.student(3).score = 69D.score(4) = 7729.写文件语句
18、Print # 与 Write # 的区别之一是(分数:2.00)A.Write # 用于写二进制文件;Print # 用于写文本文件B.Print # 既可以写顺序文件,也可以写随机文件;Write # 则只能写顺序文件C.Print # 写到文件的每个数据项之间自动添加“,“字符;而 Write # 没有D.Write # 写到文件的每个数据项之间自动添加“,“字符;而 Print # 没有30.下面不响应键盘事件的对象是(分数:2.00)A.窗体B.按钮C.复选框D.标签31.下面关于单选按钮和复选框的叙述中正确的是(分数:2.00)A.单选按钮被选中则它的 Value 属性为 True
19、;复选框被选中则它的 Value 属性为 TrueB.单选按钮被选中则它的 Value 属性为 1;复选框被选中则它的 Value 属性为 1C.单选按钮被选中则它的 Value 属性为 True;复选框被选中则它的 Value 属性为 2D.单选按钮被选中则它的 Value 属性为 True;复选框被选中则它的 Value 属性为 132.设窗体、框架、图片框(PictureBox)、图像框(Image)的名称分别是Form1、Frame1、Picture1、Image1,有下面 4 条语句: Form1.Print “VB“ Frame1.Print “VB“ Picture1.Print
20、 “VB“ Image1.Print “VB“其中正确的是(分数:2.00)A. 和 B. 和 C. 和 D. 和 33.在窗体上画一个 Text1 文本框和一个 HScroll1 水平滚动条,然后编写以下程序并运行: Private Sub Form_Load() HScroll1.Max = Text1.Width * 2 HScroll1.Value = Text1.Width HScroll1.Width = HScroll1.MaxEnd SubPrivate Sub HScroll1_Change() Text1.Width = HScroll1.ValueEnd Sub 下面叙述
21、中错误的是(分数:2.00)A.拖动滚动条的滚动块,可以改变文本框的宽度B.窗体刚显示时滚动条的宽度是文本框宽度的 2 倍C.文本框的宽度最多可以增加到窗体刚显示时自身宽度的 2 倍D.窗体刚显示时滚动块的位置在滚动条的最左边34.在窗体上画 Text1、Text2 两个文本框,并编写如下程序:Private Sub Form_Load() Text2.PasswordChar = “$“End SubPrivate Sub Text1_Change() Text2.Text = Text1.TextEnd Sub 运行程序,在 Text1 文本框中输入“ABCDEFG“,则产生的结果是(分数
22、:2.00)A.在 Text2 中同步显示与 Text1 同样内容B.在 Text2 中同步显示“abcdefg“C.在 Text2 中同步显示与 Text1 中字符数量相同的“$“D.在 Text1 中显示“$“,而在 Text2 中不显示任何内容35.在窗体上画一个 Timer1 计时器控件和一个 Shape1 形状控件,并编写如下程序 Private Sub Form_Load() Timer1.Interval = 1000 Timer1.Enabled = TrueEnd SubPrivate Sub Timer1_Timer() If Shape1.Shape = 1 Then S
23、hape1.Shape = 3 Else Shape1.Shape = 1 End IfEnd Sub 运行程序,则看到的结果是(分数:2.00)A.交替显示正方形和圆形,每秒交替一次B.交替显示矩形和椭圆形,每秒交替一次C.显示正方形,每秒闪烁一次D.显示椭圆形,每秒移动一次36.下面可以识别功能键 F1 的事件是(分数:2.00)A.KeyPress 事件和 KeyDown 事件B.KeyPress 事件和 KeyUp 事件C.KeyDown 事件和 KeyUp 事件D.KeyPress 事件37.下面关于列表框 Selected 属性的叙述中正确的是(分数:2.00)A.Selected
24、 属性是个字符数组B.Selected 属性一个数组,用来表示哪些列表项被选中C.Selected 属性是一个逻辑型变量,当选中一个列表项时,Selected 属性被设置为 TrueD.Selected 属性为 1 时表示列表框中有列表项被选中38.下面关于菜单的叙述中错误的是(分数:2.00)A.弹出式菜单也用菜单编辑器编辑B.弹出式菜单中的某个菜单项也可以有自己的子菜单C.把弹出式菜单的最高级菜单项的 Visible 属性设置为 True,可以弹出该弹出式菜单D.用菜单编辑器可以同时编辑下拉式菜单和弹出式菜单39.在窗体上画一个 Text1 文本框和一个 CD1 通用对话框控件,并编写下面
25、程序:Private Sub Command1_Click() CD1.Flags = 1 Or 256 CD1.Action = 4 If CD1.Color = 0 Then Text1.ForeColor = CD1.Color End IfEnd Sub 运行程序并单击命令按钮,下面叙述中正确的是(分数:2.00)A.弹出的是颜色对话框B.弹出的是打开文件对话框C.把代码 CD1.Action = 4 改为 CD1.ShowColor 效果是一样的D.在弹出的对话框中选了一个颜色并单击“确定“ 按钮后,会改变文本框中文本的颜色40.有下面的程序段:A = 1.2B = 321C = L
26、en(Str(A) + Str(B)Print C 执行上面的程序段,输出结果是(分数:2.00)A.5B.6C.7D.8二、基本操作题(总题数:1,分数:2.00)41.(1)在名称为 Form1 的窗体上添加一个名称为 Picture1 的图片框(PictureBox),高、宽均为 1000。在图片框内再添加一个有边框的名称为 Imagel 的图像框(Image)。并通过属性窗口把考生文件夹下的图标文件 Pointl1(香蕉图标)装入图像框 Image1 中,如图所示。 注意:存盘时必须存放在考生文件夹下,工程文件名保存为 Sjt1vbp,窗体文件名保存为 sjt1frm。 (2)在名称为
27、 Form1 的窗体上添加一个名称为 Command1、标题为“保存文件”的命令按钮,再添加一个名称为 CommonDialog1 的通用对话框。 要求: 运行时单击“保存文件”命令按钮,则以“保存文件”方式打开该通用对话框,如图所示。 通过属性窗口设置适当的属性,使得程序运行时对话框的标题为“保存文件”,且默认文件名为 out2。 注意:要求程序中不能使用变量,每个事件过程中只能写一条语句。 保存时必须存放在考生文件夹下,工程文件名保存为 sjt2vbp,窗体文件名保存为 sjt2frm。 (分数:2.00)_三、简单应用题(总题数:1,分数:2.00)42.(1)在考生文件夹下有一个工程文
28、件 sjt3vbp,其功能是: 单击“读数据”按钮,则将考生文件夹下 in3dat 文件中的 100 个正整数读入数组 a 中。 单击“计算”按钮,则找出这 100 个正整数中的所有完全平方数(一个整数若是另一个整数的平方,那么它就是完全平方数。如:36=6 2 ,所以 36 就是一个完全平方数),并计算这些完全平方数的平均值,最后将计算所得平均值截尾取整后在文本框 Text1中显示。 在给出的窗体文件中已经有了全部控件(如图所示),但程序不完整。要求完善程序使其实现上述功能。 注意:考生不得修改窗体文件中已经存在的控件和程序。在结束程序运行之前,必须进行“计算”,且必须用窗体右上角的关闭按钮
29、结束程序,否则无成绩。最后将修改后的文件按原文件名存盘。 (2)在考生文件夹下有一个工程文件 sjt4vbp,其窗体上有一个计时器和两个命令按钮。计时器Timer1 的初始状态为不可用;2 个命令按钮的初始标题分别是“演示”和“退出”。请添加一个名称为Label1,且能根据标题内容自动调整大小的标签,其标题为“Visual Basic 程序设计”,标题字体为黑体小四号字,如图所示,程序功能如下: 单击标题为“演示”的命令按钮时,则该按钮的标题自动变换为“暂停”,且标签在窗体上从左向右循环滚动,当完全滚动出窗体右侧时,从窗体左侧重新进入。 单击标题为“暂停”的命令按钮时,则该按钮的标题自动变换为
30、“演示”,并暂停标签的滚动。 单击“退出”按钮,则结束程序运行。 (分数:2.00)_四、综合应用题(总题数:1,分数:2.00)43.在考生文件夹下有一个工程文件 sjt5vbp,其窗体上添加有两个名称分别为 Text1、Text2 的文本框,其中 Text1 中 MutiLine 属性为 True。请添加两个名称为 Command1、Command2,标题分别为“产生数组”、“查找”的命令按钮,如图所示。程序功能如下: 单击“产生数组”按钮,则用函数生成 10 个 0 一100 范围内(不含 0 和 100)互不相同的随机数值,并将它们保存到一维数组 a 中,同时将这 10 个数值显示在
31、Text1 文本框内。 单击“查找”按钮将弹出输入对话框,接收用户输入的任意一个数,并在一维数组 a 中查找该数,若查找失败,则在 Text2 文本框内显示该数“不存在于数组中”;否则显示该数在数组中的位置。 要求:请去掉程序中的注释符,把程序中的“?”改为正确内容,使其实现上述功能,但是不能修改窗体文件中已经存在的控件和程序,最后将修改后的文件按原文件名进行存盘。 (分数:2.00)_国家二级(VB)机试-试卷 1 答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.下面程序的功能是利用随机数函数模拟掷骰子。方法是每次随机产生一个 16 的整数,
32、相当于一次掷骰子。程序运行后,在 Text2 文本框中输入总投掷次数(例如 10000),单击“开始投掷“按钮则进行模拟掷骰子,并把出现 16 的次数分别显示在文本框数组 Text1(从上到下各文本框的下标为 05)的各元素中,如图所示 (分数:2.00)A.nB.a(n) + 1 C.a(n) + nD.a(n) + k解析:解析:所填的是计数数组的自增,每当产生一个在 1 到 6 之间的某一随机数,当要在其所对应数组的下标中的元素值加 1,。在对应的计数数组 a(n)=a(n)+1,故选择 B 项。2.下面是一个判断并输出获得奖学金信息的程序:Private Sub Command1_Cl
33、ick() a% = InputBox(“请输入主课成绩 1“) b% = InputBox(“请输入主课成绩 2“) c% = InputBox(“请输入副课成绩“) s = (a + b + c) / 3 If s = 85 Then If a = 90 And b = 90 Then Print “获得一等奖学金“ Else Print “获得二等奖学金“ End If Else If a = 95 Or b = 95 Then Print “获得三等奖学金“ Else Print “不获得奖学金“ End If End IfEnd Sub 程序运行时,如果输入的依次是 90、91、72
34、,则输出是(分数:2.00)A.获得一等奖学金B.获得二等奖学金C.获得三等奖学金D.不获得奖学金 解析:解析:输入的依次是 90、91、72 时,a=90,b=91,c=72,平均成绩 s=253/3=84;s 小于 85 且不满足 If a = 95 Or b = 95 的条件,故输出是不获得奖学金。3.编写如下程序:Private Sub Command1_Click() x = 4 n = 1 Do x = 2 * x - 3 n = n + 1 Print x Loop Until x 30 Print nEnd Sub 在保证程序输出不变的前提下,可以把循环条件 Until x 3
35、0 改为(分数:2.00)A.Until x 40B.Until x 20 C.While x 20解析:解析:第一次执行循环体得到 x=5,n=2;第二次执行循环体得到 x=7,n=3;第三次执行循环体得到 x=11,n=4;第四次执行循环体得到 x=19,n=5;第五次执行循环体得到 x=35,x=6,满足 x30 条件退出循环。若输出结果相同,则当 x=35 时,退出循环,选项中只有 B 选项,即 x=35 时,满足 x20 条件,退出循环。故选择 B 项。4.窗体上有一个 Text1 文本框和一个 Command1 命令按钮。程序的功能是在文本框中输入密码后单击命令按钮则进行密码确认,
36、若密码正确,弹出信息框显示“密码正确“,若密码错误,弹出信息框显示“密码错误,请重新输入“,但最多允许输出 3 次,若还不正确,则弹出信息框显示“密码错误,不能再输入“,且命令按钮变为无效。某人编写了如下程序:Private Sub Command1_Click() Dim num As Integer num = num + 1 If Text1.Text = “123456“ Then MsgBox “密码正确“ ElseIf num = 3 Then Command1.Enabled = False MsgBox “密码错误,不能再输入“ Else MsgBox “密码错误,请重新输入“
37、 End IfEnd Sub 调试时发现有错误需要修改,下面正确的修改方案是(分数:2.00)A.把 ElseIf num = 3 Then 改为 ElseIf num 3 ThenB.把 Command1.Enabled = False 改为 Command1.Enabled = TrueC.把 Dim num As Integer 改为 Static num As Integer D.把 num = num + 1 改为 num = num + 3解析:解析:变量,dim 定义的变量称为“自动变量“,当引用 Dim 定义变量时,变量值会被重新设置(数值变量重新设置为 0,字符串变量被设置为
38、空)。也就是说,下次再使用此变量,其值为初始值;而static 定义变量,每次运用该静态变量后,其值会继续保留,作为下一次引用时该变量的初始值。每次运行 Command1_Click()后,num 的值都需保留,故选择 D 项。5.编写如下程序:Function Fun1(ByVal a As Integer, b As Integer) As Integer a = b + a b = 2 * a Fun1 = bEnd FunctionPrivate Sub Command1_Click() Dim x As Integer x = 5 Print Fun1(Fun1(x, x - 1),
39、 x - 2)End Sub 程序运行后,单击命令按钮 Command1,输出结果为(分数:2.00)A.5B.42 C.50D.68解析:解析:函数 Fun1 参数 a 是值传递,b 是地址传递,值传递是将实参变量值传递给形参变量 a,地址传递是将实参变量地址传给形参变量 b,这意味着 a 的变化不会改变原变量的值,b 的变化会改变原变量的值。定义局部变量 x,x=5,调用函数 Fun1(Fun1(x,x - 1),x - 2),首先调用的 Fun1(5,4),此时 a=9,b=18,返回值为 18;第二次调用 fun(18,3),a=18+3=21,b=2*a=42,返回值为 42,故输出
40、结果为 42,选 B 项。6.下面程序的功能是:先输入一个字符串,再输入 3 个字符,然后统计这 3 个字符分别在字符串中出现的次数并输出 Private Sub Command1_Click() Dim ch$(3), str$, prompt$, count%(3) str = InputBox(“请输入一个字符串“) For k = 1 To 3 prompt = “请输入要查找的第“ “出现的次数为“; count(k) Next kEnd Sub 程序不完整,在横线上应该填写的是(分数:2.00)A.Mid(str, k, 1)B.Mid(str, j, 1) C.str(k)D.s
41、tr(j)解析:解析:将输入对话框中输入的第一个字符串赋值给 str,第一个 For 循环,将输入 3 个字符复制到数组 ch(3)中;第二个 For 的多重循环,利用数组 count 记录字符串 str 中出现 ch(3)数组元素的个数;最后一个 For 循环输出记录的次数。则在第二个 for 的多重循环中,If 条件语句应为检验待查找的字符 ch(k)和字符串 str 中的每个字符是否相同,相同时,条件为真。故应该与 Mid(str,j,1),即与 str 的 j 后的第一个字符比较,看是否相同。由于在 For 循环中,保证了 ch(k)每个元素和 str 的每个字符都进行了比较。7.窗体
42、上有一个名称为 Line1 的直线控件,并有如下程序:Dim down As Boolean, x1%, y1%Private Sub Form_Load() Line1.Visible = False down = FalseEnd SubPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 1 Then down = True x1 = X : y1 = Y End IfEnd SubPrivate Sub Form_MouseUp(Butt
43、on As Integer, Shift As Integer, X As Single, Y As Single) If Button = 1 Then down = False Line1.x1 = x1 : Line1.y1 = y1 Line1.x2 = X : Line1.y2 = Y Line1.Visible = True End IfEnd Sub 运行程序,按下鼠标左键不放,移动鼠标到窗体其他位置处放开左键,则产生的结果是(分数:2.00)A.以鼠标按下和抬起的两点为端点显示一条直线 B.鼠标按下时显示一条直线;鼠标抬起时直线消失C.直线从鼠标按下处移动到鼠标抬起处D.鼠标按
44、下时直线消失;鼠标抬起时显示直线解析:解析:如果光标移到某个位置,按下鼠标键,则产生 MouseDown 事件,松开鼠标键,产生 MouseUp过程。对于两个键的鼠标来说,左键的 Button 参数值为 1,右键的 Button 参数值为 2,因此 If Button =1 条件语句保证只有按下左键或松开左键才能执行 IF 后面的语句。鼠标左键按下,执行Form_MouseDown 过程中,x1,y1 分别记录了鼠标按下的坐标;鼠标抬起,执行 Form_MouseUp 过程,直线起始点坐标为(x1,y1),结束点坐标为鼠标左键放开时的坐标(x2,y2),又直线 Line1 可见属性为true,
45、故以鼠标按下和抬起的两点为端点显示一条直线,故选项 A 正确。8.编写如下程序:Private Sub Command1_Click() Dim a(2, 3) For i = 0 To 2 For j = 0 To 3 a(i, j) = InputBox(“请输入整数“) Next j Next i For i = 0 To 2 a(i, 1) = a(i, 3) Next i For i = 0 To 2 For j = 0 To 3 Print a(i, j), Next j Print Next iEnd Sub 程序运行后,单击命令按钮Command1,并输入了 12 个整数:1,
46、2,3,4,5,6,7,8,9,10,11,12,则输出结果为(分数:2.00)A.1 4 3 2 5 8 7 6 9 12 11 10B.1 4 3 4 5 8 7 8 9 12 11 12 C.3 2 1 4 7 6 5 8 11 10 9 12D.3 2 3 4 7 6 7 8 11 10 11 12解析:解析:第一个 For 的多重循环,将输入的 12 个整数赋值给数组 a(2,3),a0,0=1, a0,1=2,a0,2=3;a1,0=4,a1,1=5,a1,2=6;a2,0=7,a2,1=8, a2,2=9; a3,0=10,a3,1=11,a3,2=12;。第二个 For 循环,
47、将数组 a 的第 4 列的值赋值给第 2 列;故输出结果如 B 所示,B 正确。9.有如下过程:Private Sub Command1_Click() Dim Name As String * 20 Open “file1.dat“ For Random As #1 Len = 20 k = 1 Do While Not EOF(1) Get #1, k, Name Print Name k = k + 2 Loop Close #1End Sub 这一过程的功能是(分数:2.00)A.读入文件 file1.dat 中所有记录号为偶数的记录并显示在窗体上B.读入文件 file1.dat 中所
48、有记录号为奇数的记录并显示在窗体上 C.读入文件 file1.dat 中记录号为 1 的记录并显示在窗体上D.把 Name 中的数据写进文件 file1.dat 中解析:解析:Open 语句兼有打开文件和建立文件两种功能。Open “file1.dat“ For Random As #1 Len = 20 以随机方式打开 file1.dat,记录的长度为 20 个字节。EOF 函数用来返回测试文件的结束状态,对于顺序文件来说,如果已达到文件尾,则函数返回值为 True,否则返回值为 False。利用 EOF 函数,可以避免在文件输入时出现“输入超出文件尾“的错误。EOF(n)的含义是已到达文件尾,Not EOF(n)的含义是没有到达 n 所对应文件的末尾。 Do While Not EOF(1)保证循环执行,直到已到达文件号为 1 的文件尾。Get#文件号,【记录号】,变量这一语句实现的功能是将一个打开的磁盘文件的一条记录读到一个变量中。Get #1, k, Name,打开文件号 1 文件,将记录号为 k 的记录读到变量 Name。Print Name 将 Name 显示在窗体上。k 的初始值为 1,在循环中 k=k+2,保证了循环中操作的记录号为奇数,即将读入文