1、二级 VISUAL+BASIC-44及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:100.00)1.下列叙述中正确的是_。(分数:2.50)A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针共同决定2.下列叙述中正确的是_。(分数:2.50)A.有一个以上根结点的数据结构不一定是非线性结构B.只有一个根结点的数据结构不一定是线性结构C.循环链表是非线性结构D.双向链表是非线
2、性结构3.设有下列二叉树: (分数:2.50)A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY4.结构化程序设计的基本原则不包括_。(分数:2.50)A.多态性B.自顶向下C.模块化D.逐步求精5.软件按功能可以分为:应用软件、系统软件和支撑软件(工具软件)。下面属于应用软件的是_。(分数:2.50)A.编译程序B.操作系统C.教务管理系统D.汇编程序6.软件详细设计产生的图如下图所示: (分数:2.50)A.N-S图B.PAD图C.程序流程图D.E-R图7.软件测试的目的是_。(分数:2.50)A.评估软件可靠性B.发现并改正程序中的错误C.改正程序中的错误D
3、.发现程序中的错误8.负责数据库中查询操作的数据库语言是_。(分数:2.50)A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言9.在满足实体完整性约束的条件下_。(分数:2.50)A.一个关系中应该有一个或多个候选关键字B.一个关系中只能有一个候选关键字C.一个关系中必须有多个候选关键字D.一个关系中可以没有候选关键字10.关系表中的每一横行称为一个_。(分数:2.50)A.元组B.字段C.属性D码11.在窗体上画一个文本框(名称为 Text1)和一个标签(名称为 Label1),程序运行后,在文本框中每输入一个字符,都会立即在标签中显示文本框中字符的个数。以下可以实现上述操作
4、的事件过程是_。(分数:2.50)A.Private Sub Text1_Change()Label1. Caption=Str(Len(Text1. Text)End SubB.Private Sub Text1_Cilck()Label1. Caption=Str(Len(Text1. Text)End SubC.Private Sub Text1_Change()Label1. Caption=Text1. textEnd SubD.Private Sub Label1_Change()Label1. Caption=Str(Len(Text1. Text)End Sub12.设窗体上有
5、 1个水平滚动条,已经通过属性窗口把它的 Max属性设置为 1,Min 属性设置为 100。下面叙述中正确的是_。(分数:2.50)A.程序运行时,若使滚动块向左移动,滚动条的 Value属性值就增加B.程序运行时,若使滚动块向左移动,滚动条的 Value属性值就减少C.由于滚动条的 Max属性值小于 Min属性值,程序会出错D.由于滚动条的 Max属性值小于 Min属性值,程序运行时滚动条的长度会缩为一点,滚动块无法移动13.在窗体上画一个文本框,其名称为 Text1,为了在程序运行后隐藏该文本框,应使用的语句为_。(分数:2.50)A.Text1. ClearB.Text1. Visibl
6、e=FalseC.Text1. HideD.Text1. Enabled=False14.当文本框中的内容发生改变时所触发的事件是_。(分数:2.50)A.KeyUpB.ChangeC.LostFocusD.GotFocus15.能够将组合框 Combol中最后一个数据项删除的语句为_。(分数:2.50)A.Combol. RemoveItemCombol. ListCountB.Combol. RemoveItemCombol. ListCount-1C.Combol. RemoveItemCombol. ListIndexD.Combol. RemoveItemCombol. ListIn
7、dex-116.为了使一个复选框被禁用(灰色显示),应把它的 Value属性设置为_。(分数:2.50)A.0B.1C.2D.False17.窗体上有一个 Text1文本框,并编写了下面事件过程: Private Sub Text1_KeyPress(KeyAscii As Integer) KeyAscii=KeyAscii+3 End Sub 程序运行时,在文本框中输入字符“A”,则在文本框中实际显示的是_。(分数:2.50)ABCD18.设有窗体的 Form_MouseMove事件过程如下: Private Sub Form_MouseMove(Button As Integer, Sh
8、ift As Integer, X As Single, Y As Single) If(Button And 3)=3 Then Print “检查按键“ End If End Sub 关于上述过程,以下叙述中正确的是_。(分数:2.50)A.按下鼠标左键时,在窗体上显示“检查按键”B.按下鼠标右键时,在窗体上显示“检查按键”C.同时按下鼠标左、右键时,在窗体上显示“检查按键”D.不论做何种操作,窗体上都不会显示19.窗体上有一个名称为 CD1的通用对话框,一个名称为 Command1命令按钮,相应的事件过程如下: Private Sub Command1_Click() CD1. Filt
9、er=“All File | *.* | Text File |*. txtl Word | *. Doc“ CD1. FilterIndex=2 CD1. FileName= “E:/Test. ppt“ CD1. InitDir= “E:“ CD1. ShowOpen End Sub 关于上述程序,以下叙述中正确的是_。(分数:2.50)A.初始过滤器为“*.*”B.指定的初始目录为“E:/”C.以上程序代码实现打开文件的操作D.由于指定文件类型是. ppt,所以导致打开文件的操作失败20.窗体上已有的 3个单选按钮组成了 1个名为 ChkOpt1的控件数组。用于区分控件数组 ChkOpt
10、1中每个元素的属性是_。(分数:2.50)A.CaptionB.ListCountC.ListIndexD.Index21.有如下程序: Private Sub Form_Click() Dim S As Integer, P As Integer P=1 For i=1 To 4 For j=1 To i s=s+j Next j P=P*s Next i Print P End Sub 程序运行后,单击窗体,则输出结果是_。(分数:2.50)A.90B.180C.400D.80022.窗体上有单选钮和列表框控件。单击名称为 Option1、标题为“国家”的单选钮,向列表框中添加国家名称,如
11、下图所示。 (分数:2.50)A.程序有错,没有声明数组的维数及上下界B.只有一维数组才能使用 Array为数组赋初值C.For循环的终值应为 ListCount-1D.For循环的初值应为 123.在窗体上画 1个命令按钮和 1个文本框,其名称分别为 Command1和 Text1,再编写如下程序: Dim ss As String Private Sub Text1_KeyPress(KeyAscii As Integer) If Chr(KeyAscii)“ “Then ss=ss+Chr(KeyAscii) End Sub Private Sub Command1_Click() Di
12、m in As String, i As Integer For i=Len(ss)To 1 Step-1 m=m+Mid(ss, i, 1) Next Text1. Text=UCase(m) End Sub 程序运行后,在文本框中输入“Number 100”,并单击命令按钮,则文本框中显示的是_。(分数:2.50)A.NUMBER 100B.REBMUNC.REBMUN 100D.001 REBMUN24.有如下程序: Private Sub Form_Click() x=50 For i=1 To 4 y=InputBox(“请输入一个整数“) y=Val(y) If y Mod 5=0
13、 Then a=a+y x=y Else a=a+x End If Next i Print a End Sub 程序运行后,单击窗体,在输入对话框中依次输入 15、24、35、46,输出结果为_。(分数:2.50)A.100B.50C.120D.7025.窗体上有一个名称为 Timer1的计时器控件,一个名称为 Shape1形状控件,其 Shape属性值为3(Circle)。编写程序如下: Private Sub Form_Load() Shape1. Top=0 Timer1. Interval=100 End Sub Private Sub Timer1_Timer() Static x
14、 As Integer Shape1. Top=Shape1. Top+100 x=x+1 If x Mod 10=0 Then Shape1. Top=0 End If End Sub 以下关于上述程序的叙述中,错误的是_。(分数:2.50)A.每执行一次 Timer1_Timer事件过程,x 的值都在原有基础上增加 1B.Shape1每移动 10次回到起点,重新开始C.窗体上的 Shape1由下而上移动D.Shape1每次移动 10026.在窗体上画一个名称为 Text1的文本框和一个名称为 Command1的命令按钮,然后编写如下事件过程: Private Sub Command1_Cl
15、ick() Dim array1(10, 10)As Integer Dim i As Integer, j As Integer For i=1 To 3 For j=2 To 4 array1(i,j)=i+j Next j Next i Text1. Text=array1(2,3)+array1(3,4) End Sub 程序运行后,单击命令按钮,在文本框中显示的值是_。(分数:2.50)A.15B.14C.13D.1227.要求在程序运行时,如果按住鼠标左键不放而移动鼠标,鼠标的位置坐标同步显示在窗体右上角的标签(名称为 Label1)中,如下图所示;放开鼠标左键后,停止同步显示。下
16、面可以实现此功能的程序是_。 (分数:2.50)A.Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button=1 ThenLabel1=“X=“ Next End Sub Function Fun(j As Integer) Static b a=0 a=a+1 b=b+1 Fun=a * b+j End Function 程序运行后,单击命令按后的输出结果是_。(分数:2.50)A.2 3 4B.3 4 5C.5 6 7D.3 5 634.在窗体中添加一
17、个命令按钮,编写如下程序: Private Sub Sub 1(p, m, n) p=p+1: m=m+1:n=n+1 Print “sub1:“ ; p; m; n End Sub Private Sub Command1_Cilck() a1=1: b1=2; c1=3 Call Sub 1(a1, b1+3, c1) Print “Main:“ ; a1; b1; c1 End Sub 程序运行后,输出结果为_。 A. B. C. D. (分数:2.50)A.B.C.D.35.有如下事件过程: Private Sub Form_KeyDown(KeyCode As Integer, Sh
18、ift As Integer) If(Button And 3)=3 Then Print “OK“ End If End Sub 程序运行后,为了在窗体上输出“OK”,应当按下的鼠标键是_。(分数:2.50)A.左键B.右键C.同时按下左键和右键D.按什么都不显示36.如果在 c盘当前文件夹下已存在名称为 studata. dat的顺序文件,那么执行语句“Open“c:/studata. dat“ For Append As#1”之后,将_。(分数:2.50)A.删除文件中原有内容B.保留文件中原有内容,并在文件尾填加新内容C.保留文件中原有内容,并在文件头填加新内容D.以上均不对37.下列
19、事件过程运行后输出结果是_。 Private Sub Command1_Click() Private Format $(123.456, “#.#%“) End Sub(分数:2.50)A.123.46%B.123.45%C.123.456%D.12345.6%38.可以用 InputBox函数产生“输入对话框”。执行语句“st $=(InputBox(“请输出字符串“,“字符串对话框“,“字符串“)”时,当用户输出完毕,按 OK按钮后,st $变量的内容是_。(分数:2.50)A.字符串B.请输入字符串C.字符串对话框D.用户输入的内容39.在窗体上画一个通用对话框,其名称为 Common
20、Dialog1,然后画一个命令按钮,并编写如下事件过程:Private Sub Command1_Click() CommonDialog1. Flags=vbOFNHideReadOnly CommonDialog1. Filter=“All Files(*.*)|*.*| Text Files(*.txt)|*.txt“ CommonDialog1. FilterIndex=1 CommonDialog1. ShowOpen MsgBox CommonDialong1. FileName End Sub 程序运行后,单击命令按钮,将显示一个“打开”对话框,此时在“文件类型”框中显示的是_。
21、(分数:2.50)A.All Files(*.*)B.Text Files(*.txt)C.Batch Files(*.bat)D.All Files(*.*)| Text Files(*.txt)40.在 VB中按文件的访问方式不同,可以将文件分为_。(分数:2.50)A.顺序文件、随机文件和二进制文件B.文本文件和数据文件C.数据文件和可执行文件D.ASCII文件和二进制文件二级 VISUAL+BASIC-44答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:100.00)1.下列叙述中正确的是_。(分数:2.50)A.循环队列有队头和队尾两个指针,因此,
22、循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针共同决定 解析:解析 循环队列有对头和队尾两个指针,是线性结构;在循环队列中需要队头与队尾两个指针来共同反映队列中元素的动态变化情况。2.下列叙述中正确的是_。(分数:2.50)A.有一个以上根结点的数据结构不一定是非线性结构B.只有一个根结点的数据结构不一定是线性结构 C.循环链表是非线性结构D.双向链表是非线性结构解析:解析 线性结构应满足:有且只有一个根结点;每个结点最多有一个前件一个后件。有一个
23、以上根结点的数据结构一定是非线性结构,所以循环链表和双向链表都是线性结构。3.设有下列二叉树: (分数:2.50)A.ZBTYCPXAB.ATBZXCYP C.ZBTACYXPD.ATBZXCPY解析:解析 二叉树的前序遍历(DLR),是指首先访问根结点,然后遍历左子树,最后遍历右子树,并且,在遍历左右子树时,上述规则同样适用,即“根左右”,故该二叉树的前序遍历结果为“ATBZXCYP”。4.结构化程序设计的基本原则不包括_。(分数:2.50)A.多态性 B.自顶向下C.模块化D.逐步求精解析:解析 结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用 goto语句。而多态性是面向对
24、象的程序设计的思想。5.软件按功能可以分为:应用软件、系统软件和支撑软件(工具软件)。下面属于应用软件的是_。(分数:2.50)A.编译程序B.操作系统C.教务管理系统 D.汇编程序解析:解析 编译程序、操作系统、汇编程序都属于系统软件,教务管理系统属于应用软件。6.软件详细设计产生的图如下图所示: (分数:2.50)A.N-S图B.PAD图C.程序流程图 D.E-R图解析:解析 N-S 图提出了用方框图来代替传统的程序流程图;PAD 图是问题分析图,它是一种主要用于描述软件详细设计的图形表示工具;E-R 图是数据库中用于表示 E-R模型的图示工具。根据题干图所示表示方法可以得知该图是进行软件
25、详细设计时使用的程序流程图。7.软件测试的目的是_。(分数:2.50)A.评估软件可靠性B.发现并改正程序中的错误C.改正程序中的错误D.发现程序中的错误 解析:解析 软件测试是为了发现错误而执行程序的过程,测试要以查找错误为中心,而不是为了演示软件的正确功能,也不是为了评估软件或改正错误。8.负责数据库中查询操作的数据库语言是_。(分数:2.50)A.数据定义语言B.数据管理语言C.数据操纵语言 D.数据控制语言解析:解析 数据定义语言,负责数据的模式定义与数据的物理存取构建;数据操纵语言,负责数据的操纵,包括查询及增加、删除、修改等操作;数据控制语言,负责数据完整性、安全性的定义与检查以及
26、并发控制、故障恢复等功能。9.在满足实体完整性约束的条件下_。(分数:2.50)A.一个关系中应该有一个或多个候选关键字 B.一个关系中只能有一个候选关键字C.一个关系中必须有多个候选关键字D.一个关系中可以没有候选关键字解析:解析 实体完整性约束要求关系的主键中属性值不能为空值。10.关系表中的每一横行称为一个_。(分数:2.50)A.元组 B.字段C.属性D码解析:解析 关系表中,每一行称为一个元组,对应表中的一条记录;每一列称为一个属性,对应表中的一个字段;码是指在二维表中能惟一标识元组的最小属性集。11.在窗体上画一个文本框(名称为 Text1)和一个标签(名称为 Label1),程序
27、运行后,在文本框中每输入一个字符,都会立即在标签中显示文本框中字符的个数。以下可以实现上述操作的事件过程是_。(分数:2.50)A.Private Sub Text1_Change()Label1. Caption=Str(Len(Text1. Text)End Sub B.Private Sub Text1_Cilck()Label1. Caption=Str(Len(Text1. Text)End SubC.Private Sub Text1_Change()Label1. Caption=Text1. textEnd SubD.Private Sub Label1_Change()Lab
28、el1. Caption=Str(Len(Text1. Text)End Sub解析:解析 B 项错误,文本框中每输入一个字符,标签中立即就会发生变化,故为 change事件;C 项错误,标签中显示的是文本框中字符的个数,不是输入的内容;D 项错误,在文本框中输入字符使标签上显示的内容发生变化,说明是文本框触发了某事件。12.设窗体上有 1个水平滚动条,已经通过属性窗口把它的 Max属性设置为 1,Min 属性设置为 100。下面叙述中正确的是_。(分数:2.50)A.程序运行时,若使滚动块向左移动,滚动条的 Value属性值就增加 B.程序运行时,若使滚动块向左移动,滚动条的 Value属性
29、值就减少C.由于滚动条的 Max属性值小于 Min属性值,程序会出错D.由于滚动条的 Max属性值小于 Min属性值,程序运行时滚动条的长度会缩为一点,滚动块无法移动解析:解析 可以将窗体上的水平滚动条当作有刻度的直线,属性 Min=100为左端点值,属性 Max=1为右端点值,滚动条的 Value属性值随着滚动块的移动在 Max和 Min之间变化。因此,若滚动块向左移动,滚动条的 Value属性值会增加。13.在窗体上画一个文本框,其名称为 Text1,为了在程序运行后隐藏该文本框,应使用的语句为_。(分数:2.50)A.Text1. ClearB.Text1. Visible=False
30、C.Text1. HideD.Text1. Enabled=False解析:解析 文本框没有 Clear和 Hide方法,因此 AC两项错误;Enabled 属性用来设置文本框可用不可用,属性值为 True时可在文本框中输入数据,为 False时文本框为灰色,内容不能修改;Visible 属性用来设置文本框显示或隐藏,当属性值为 True时文本框显示,为 False时文本框隐藏。14.当文本框中的内容发生改变时所触发的事件是_。(分数:2.50)A.KeyUpB.Change C.LostFocusD.GotFocus解析:解析 文本框中内容有变化时,将触发 Change事件。当在文本框中输入
31、数据,松开键盘时触发它的 KeyUp事件;文本框失去焦点触发 LostFocus事件;获得焦点,触发 GotFocus事件。15.能够将组合框 Combol中最后一个数据项删除的语句为_。(分数:2.50)A.Combol. RemoveItemCombol. ListCountB.Combol. RemoveItemCombol. ListCount-1 C.Combol. RemoveItemCombol. ListIndexD.Combol. RemoveItemCombol. ListIndex-1解析:解析 组合框的 RemoveItem方法,格式为:RemoveItem(索引值)。
32、项目索引值从 0开始,因此最后一项的索引值为 ListCount-1。16.为了使一个复选框被禁用(灰色显示),应把它的 Value属性设置为_。(分数:2.50)A.0B.1C.2 D.False解析:解析 复选框的 Value属性可以设置为 0、1、2。设置为 0表示没有选择该复选框;设置为 1表示选中该复选框;设置为 2表示该复选框被禁用(灰色显示)。17.窗体上有一个 Text1文本框,并编写了下面事件过程: Private Sub Text1_KeyPress(KeyAscii As Integer) KeyAscii=KeyAscii+3 End Sub 程序运行时,在文本框中输入
33、字符“A”,则在文本框中实际显示的是_。(分数:2.50)ABCD 解析:解析 KeyPress 事件执行时,其中,KeyAscii 参数是所按键的 ASCII码,按下“A”键,KeyAscii的值为 65,在过程中 65+3=68,68 是 A字符后面的第 3个字符的 ASCII码值,即字符“D”,因此在文本框中实际显示的是“D”。18.设有窗体的 Form_MouseMove事件过程如下: Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If(Button A
34、nd 3)=3 Then Print “检查按键“ End If End Sub 关于上述过程,以下叙述中正确的是_。(分数:2.50)A.按下鼠标左键时,在窗体上显示“检查按键”B.按下鼠标右键时,在窗体上显示“检查按键”C.同时按下鼠标左、右键时,在窗体上显示“检查按键” D.不论做何种操作,窗体上都不会显示解析:解析 MouseMove 事件中的 Button表示鼠标所有按键的状态。用 0、1、2 三个位表示左、右、中键,当按下某个键时,相应位是 1,否则是 0。三位的二进制数也可以转换为十进制数,作为 Button的值。如下表所示: Button参数值 操作 000(十进制 0) 未按
35、任何键 001(十进制 1) 左键被按下(默认) 010(十进制 2) 右键被按下 011(十进制 3) 左、右键同时被按下 100(十进制 4) 中间键被按下 101(十进制 5) 同时按下中间和左键 110(十进制 6) 同时按下中间和右键 111(十进制 7) 3个键同时被按下 本题中当 Button值为 011或 111时(Button And 3=3),条件成立,窗体上显示“检查按键”。说明只要同时按下鼠标的左、右键时,在窗体上就显示“检查按键”。19.窗体上有一个名称为 CD1的通用对话框,一个名称为 Command1命令按钮,相应的事件过程如下: Private Sub Comm
36、and1_Click() CD1. Filter=“All File | *.* | Text File |*. txtl Word | *. Doc“ CD1. FilterIndex=2 CD1. FileName= “E:/Test. ppt“ CD1. InitDir= “E:“ CD1. ShowOpen End Sub 关于上述程序,以下叙述中正确的是_。(分数:2.50)A.初始过滤器为“*.*”B.指定的初始目录为“E:/” C.以上程序代码实现打开文件的操作D.由于指定文件类型是. ppt,所以导致打开文件的操作失败解析:解析 文件对话框的 Filter属性用来指定在对话框中
37、显示的文件类型,每对文本类型用管道符“|”隔开,在“|”后面的部分称为过滤器;FilterIndex 属性用来指定默认的过滤器;FileName 属性用来设置或返回要打开或保存的文件的路径及文件名;InitDir 属性用来指定对话框中显示的起始目录。20.窗体上已有的 3个单选按钮组成了 1个名为 ChkOpt1的控件数组。用于区分控件数组 ChkOpt1中每个元素的属性是_。(分数:2.50)A.CaptionB.ListCountC.ListIndexD.Index 解析:解析 控件数组的每个元素都有一个与之关联的下标,下标值由 Index属性指定,控件数组的各元素以 Index属性的值来
38、区分。21.有如下程序: Private Sub Form_Click() Dim S As Integer, P As Integer P=1 For i=1 To 4 For j=1 To i s=s+j Next j P=P*s Next i Print P End Sub 程序运行后,单击窗体,则输出结果是_。(分数:2.50)A.90B.180C.400D.800 解析:解析 程序是一个双层 For循环,外层循环变量的值决定内层 For循环的次数。 当 i=1时,内层循环 1次,s=1,p=1; 当 i=2时,内层循环 2次,s=1+1+2=4,p=1*4=4: 当 i=3时,内层循
39、环 3次,S=4+1+2+3=10,P=4*10=40; 当 i=4时,内层循环 4次,s=10+1+2+3+4=20,P=40*20=800。22.窗体上有单选钮和列表框控件。单击名称为 Option1、标题为“国家”的单选钮,向列表框中添加国家名称,如下图所示。 (分数:2.50)A.程序有错,没有声明数组的维数及上下界B.只有一维数组才能使用 Array为数组赋初值 C.For循环的终值应为 ListCount-1D.For循环的初值应为 1解析:解析 A 项,程序没有错误,数组变量定义时可以不用声明上下界;B 项,Array()函数只适用于一组数组,只能对一维数组进行初始化,不能对二维
40、数组或多维数组进行初始化;C 项,UBound()函数返回数组的上界值,即为 4;D 项,List 控件列表项的索引从 0开始。23.在窗体上画 1个命令按钮和 1个文本框,其名称分别为 Command1和 Text1,再编写如下程序: Dim ss As String Private Sub Text1_KeyPress(KeyAscii As Integer) If Chr(KeyAscii)“ “Then ss=ss+Chr(KeyAscii) End Sub Private Sub Command1_Click() Dim in As String, i As Integer For
41、i=Len(ss)To 1 Step-1 m=m+Mid(ss, i, 1) Next Text1. Text=UCase(m) End Sub 程序运行后,在文本框中输入“Number 100”,并单击命令按钮,则文本框中显示的是_。(分数:2.50)A.NUMBER 100B.REBMUNC.REBMUN 100D.001 REBMUN 解析:解析 程序将 ss字符串进行反向排列,并放到字符串 m中。其中,Number 空格后的 100被当成字符串来处理,并通过 UCase()函数将所有字母转换成大写,得到 001 REBMUN。24.有如下程序: Private Sub Form_Cli
42、ck() x=50 For i=1 To 4 y=InputBox(“请输入一个整数“) y=Val(y) If y Mod 5=0 Then a=a+y x=y Else a=a+x End If Next i Print a End Sub 程序运行后,单击窗体,在输入对话框中依次输入 15、24、35、46,输出结果为_。(分数:2.50)A.100 B.50C.120D.70解析:解析 程序的作用是输入的数如果是 5的倍数就累加,如果不是就每次加 50或与上次是 5的倍数的那个数相累加。因此最终 a的值是 15+15+35+35=100。25.窗体上有一个名称为 Timer1的计时器控
43、件,一个名称为 Shape1形状控件,其 Shape属性值为3(Circle)。编写程序如下: Private Sub Form_Load() Shape1. Top=0 Timer1. Interval=100 End Sub Private Sub Timer1_Timer() Static x As Integer Shape1. Top=Shape1. Top+100 x=x+1 If x Mod 10=0 Then Shape1. Top=0 End If End Sub 以下关于上述程序的叙述中,错误的是_。(分数:2.50)A.每执行一次 Timer1_Timer事件过程,x 的
44、值都在原有基础上增加 1B.Shape1每移动 10次回到起点,重新开始C.窗体上的 Shape1由下而上移动 D.Shape1每次移动 100解析:解析 变量 x为静态变量,每次进入 Timer事件过程时,x 都会保留上次的值,从而实现每执行一次 Timer1_Timer事件过程 x的值都在原有基础上增加 1。程序中判断调用 Timer事件过程 10次后,重置 Shape1的 top值为 0,即回到起点。控件 Shape1的 Top属性是距离窗体顶的位置,数值越大距离越远,因此 Shape1会由上向下移动。26.在窗体上画一个名称为 Text1的文本框和一个名称为 Command1的命令按钮
45、,然后编写如下事件过程: Private Sub Command1_Click() Dim array1(10, 10)As Integer Dim i As Integer, j As Integer For i=1 To 3 For j=2 To 4 array1(i,j)=i+j Next j Next i Text1. Text=array1(2,3)+array1(3,4) End Sub 程序运行后,单击命令按钮,在文本框中显示的值是_。(分数:2.50)A.15B.14C.13D.12 解析:解析 程序中通过 For循环为数组中的部分元素赋值,没有赋值的元素值默认为 0。For
46、循环中i=2,j=3 时,array1(2,3)=5;i=3;j=4 时,array1(3,4)=7。 因此,程序文本框中显示的值是 12。27.要求在程序运行时,如果按住鼠标左键不放而移动鼠标,鼠标的位置坐标同步显示在窗体右上角的标签(名称为 Label1)中,如下图所示;放开鼠标左键后,停止同步显示。下面可以实现此功能的程序是_。 (分数:2.50)A.Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button=1 ThenLabel1=“X=“ Nex
47、t End Sub Function Fun(j As Integer) Static b a=0 a=a+1 b=b+1 Fun=a * b+j End Function 程序运行后,单击命令按后的输出结果是_。(分数:2.50)A.2 3 4B.3 4 5 C.5 6 7D.3 5 6解析:解析 函数过程 Fun有一个形式参数 i,在被调过程声明中,定义了一个参数 a,初值为 0,一个静态变量 b。语句 a=a+1和 b=b+1分别使 a和 b各增加 1,然后返回 a*b+j的值,因为 b是静态变量,所以每次调用同一个参数 k时,b 会保留前次的数值,使输出结果变化,否则每次输出的结果都将
48、是一样的。根据分析,第一次调用时 a=1,b=1,Fun=3;第二次调用时 a=1,b=2,Fun=4;第三次调用时a=1,b=3,Fun=5。所以最后的输出结果是 345。34.在窗体中添加一个命令按钮,编写如下程序: Private Sub Sub 1(p, m, n) p=p+1: m=m+1:n=n+1 Print “sub1:“ ; p; m; n End Sub Private Sub Command1_Cilck() a1=1: b1=2; c1=3 Call Sub 1(a1, b1+3, c1) Print “Main:“ ; a1; b1; c1 End Sub 程序运行后,输出结果为_。 A. B. C. D. (分数:2.50)A.B.C.D. 解析:解析 a1 和 c1为变量按址传送,b1+3 为表达式按值传送,因此,执行过程 Subl, a1和 c1值改变,b1 的值不变。35.有如下事件过程: Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If(Button And 3)=3 Th