1、二级 VISUAL+BASIC 笔试-44 及答案解析(总分:98.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列选项中,不是一个算法的基本特征的是( )。(分数:2.00)A.完整性B.可行性C.有穷性D.拥有足够的情报2.下列每组控件中,都包含有滚动条的一组控件是( )。(分数:2.00)A.ListBox 和 LabelB.TextBox 和 DriveListBoxC.ComboBox 和 CheckBoxD.FileListBox 和 DirListBox3.在用 Open 语句打开文件时,如果省略“For 方式”,则打开的文件的存取方式是( )。(
2、分数:2.00)A.顺序输入方式B.顺序输出方式C.随机存取方式D.二进制方式4.窗体上有两个文本框 Text1、Text2 以及一个命令按钮 Command1,编写下列程序:Dim y As IntegerPrivate Sub Command1_Click()Dim x As Integerx=2Text1.Text=p2(p1(x),y)Text2.Text=p1(x)End SubPrivate Function p1(x As Integer)As Integerx=x+y:y=x+yp1=x+yEnd FunctionPrivate Function p2 (x As Intege
3、r, y As Integer)As Integerp2=2*x+yEnd Function当单击 1 次和单击 2 次命令按钮后,文本框 Text1 和 Text2 内的值分别为( )。(分数:2.00)A.2 4 2 4B.2 44 8C.4 4 8 8D.10 1058 585.某人在窗体上画了一个名称为 Timer1 的计时器和一个名称为 Label1 的标签,计时器的属性设置为Enabled=True,Interval=0,并编程如下。希望在程序运行时,可以每 2 秒在标签上显示一次系统当前时间。Private Sub Timer1_Timer()Label1.Caption=Tim
4、e$End Sub在程序执行时发现未能实现上述目的,那么,应做的修改是( )。(分数:2.00)A.通过属性窗口把计时器的 Interval 属性设置为 2000B.通过属性窗口把计时器的 Enabled 属性设置为 FalseC.把事件过程中的 Label1.Caption=Time$语句改为 Timer1.Interval=Time$D.把事件过程中的 Label1.Caption=Time$语句改为 Label1.Caption=Timer1.Time6.最简单的交换排序方法是( )。(分数:2.00)A.快速排序B.选择排序C.堆排序D.冒泡排序7.在窗体上添加一个命令按钮,名为 Co
5、mmand1,其单击事件中有如下程序段,则事件过程执行后,文本框中输出( )。For i=1 To 4For j=1 To 3x=3For k=1 To 2x=x+3Next kNext jNext iText1.Text=Str(x)(分数:2.00)A.3B.6C.9D.128.下列程序段的输出结果为( )。Dim M(5,5),S(5)For i=1 To 5S(i)=0For j=1 To 5M(i,j)=i+jS(i)=S(i)+M(i,j)Next jNext iFor Each x In sPrint x;Next x(分数:2.00)A.2023 24 3540B.2025 3
6、0 3540C.2023 25 3540D.2025 3540459.语句 Dim Arr(3 To 5,-2 To 2)定义的数组的元素个数是( )。(分数:2.00)A.20B.12C.15D.2410.某二叉树共有 60 个叶子结点与 50 个度为 1 的结点,则该二叉树中的总结点数为( )。(分数:2.00)A.148B.169C.182D.19811.将文本框的 PasswordChar 属性设置为一个星号*,运行时,在文本框中输入的字符仍然显示出来,而不显示星号,原因可能是( )。(分数:2.00)A.文本框的 MultiLine 属性值为 TrueB.文本框的 Looked 属性
7、值为 TrueC.文本框的 MultiLine 属性值为 FalseD.文本框的 Looked 属性值为 False12.按照“先进先出”组织数据的数据结构是( )。(分数:2.00)A.队列B.栈C.双向链表D.二叉树13.对于长度为 n 的线性表,在最坏情况下,下列各种排序法所对应的比较次数中正确的是( )。(分数:2.00)A.冒泡排序为 n/2B.冒泡排序为 nC.快速排序为 nD.快速排序为 n(n-1)/214.当一个工程含有多个窗体时,其中的启动窗体是( )。(分数:2.00)A.启动 Visual Basic 时建立的窗体B.第一个添加的窗体C.最后一个添加的窗体D.在“工程属
8、性”对话框中指定的窗体15.要使某菜单能够通过按住键盘上的Alt键及K键打开,应( )。(分数:2.00)A.在“名称”栏中“K”并字符前加上“&”符号B.在“标题”栏中“K”并字符后加上“&”符号C.在“标题”栏中“K”并字符前加上“&”符号D.在“名称”栏中“K”并字符后加上“&”符号16.在窗体上画一个名为 Command1 的命令按钮,然后编写如下程序:Option Base 1Private Sub Command1_Click()Dim ArrArr=Array(1,2,3,4,5)j = 1For i=5 To 1 Step-1S=S+Arr(i)*jj=j*10NextPrin
9、t SEnd Sub程序运行后,单击命令按钮,输出结果为( )。(分数:2.00)A.54321B.123C.12345D.34517.执行语句 Open “TC.dat“ For Random As #1 Len=50 后,对文件 TC.dat 中的数据能执行的操作是( )。(分数:2.00)A.只读操作B.只写操作C.既可以读,也可以写D.追加操作18.在 E 盘当前目录文件夹下建立一个名为“Student.txt”的随机文件,要求用 InputBox 函数输入 5 个学生的姓名(StuName)、年级(StuGrade)和年龄(StuAge)。在程序中有以下记录类型和窗体的事件过程,请选
10、择正确的语句完成程序( )。Private Type studentStuName As String*10StuGrade As String*10 StuAge As IntegerEnd TypePrivate Sub Form_Click()Dim s As studentOpen “c:/student.txt“ For Random As #1 Len=Len(s)For i=1 To 1s.StuName=InputBox(“请输入姓名“)s.StuGrade=InputBox(“请输入年级号“)s.StuAge=Val(InputBox(“请输入年龄“)Next iClose
11、#1End Sub(分数:2.00)A.Print #1,sB.Print #1,iC.Put #1,sD.Put #1,i19.按文件的内容划分有( )。(分数:2.00)A.顺序文件和随机文件B.ASCII 文件和二进制文件C.程序文件和数据文件D.磁盘文件和打印文件20.下列数据结构中,能用二分法进行查找的是( )。(分数:2.00)A.顺序存储的有序线性表B.结性链表C.二叉链表D.有序线性链表21.下列关于线性链表的描述中正确的是( )。(分数:2.00)A.存储空间不一定连续,且各元素的存储顺序是任意的B.存储空间不一定连续,且前件元素一定存储在后件元素的前面C.存储空间必须连续,
12、且各前件元素一定存储在后件元素的前面D.存储空间必须连续,且各元素的存储顺序是任意的22.单击命令按钮时,下列程度段的执行结果为( )。Pfivate Sub Command1_Click()Dima As Integer,b As Integer, c As Integera=2:b=4:c=6Call S1(a,b)Print “a=“;a;“b=“;b;“c=“;cCall S2(a,b)Print “a=“;a;“b=“;b;“c=“;c;End SubPrivate Sub S1(x As Integer, y As Integer)Dim c As Integerx=2*x:y=y
13、+2:c=x+yEnd SubSub S2(x As Integer, By Val y As Integer)Dim e As Integerx=2*x:y=y+2:e=x+yEnd Sub(分数:2.00)A.a=4 b=6 c=6a=4 b=6 c=6B.a=8 b=6 c=6a=8 b=6 c=6C.a=4 b=6 c=6a=8 b=6 c=6D.a=8 b=6 c=6a=4 b=6 c=623.有下列程序,程序运行后单击命令按钮,则输出的结果为( )。Private Sub Command1_Click()Dim a%(1 To 4),b%(3 To 6),i%,s1#,s2#For
14、 i=1 To 4a(i)=iNext iFor i=3 To 6b(i)=iNext is1=Factorial((分数:2.00)A.s2=Factorial(B.Print “s1=“;s1;“s2=“;s2End SubFunction Factorial(a()24.要使菜单项 MenuOne 在程序运行时失效,使用的语句是( )。(分数:2.00)A.MenuOne.Visible=TrueB.MenuOne.Visible=FalseC.MenuOne.Enabled=TrueD.MenuOne.Enabled=False25.下列数据结构中,属于非线性的是( )。(分数:2.0
15、0)A.线性表B.队列C.树D.栈26.下列描述不正确的是( )。(分数:2.00)A.某个子过程中声明的局部变量,其使用范围仅限定于该子过程内B.某个子过程中声明的局部变量,其生命周期仅限于该子过程被执行过程中C.不同子过程中的局部变量可以具有相同的名称D.不同子过程中具有相同的名称的局部变量是同一变量27.下列关于菜单的说法错误的是( )。(分数:2.00)A.每个菜单项都是一个控件,与其他控件一样也有其属性和事件B.除了 Click 事件之外,菜单项不可以响应其他事件C.菜单项的索引号可以不连续D.菜单项的索引号必须从 1 开始28.下列关于复选框的说法,正确的是( )。(分数:2.00
16、)A.复选框的 Enabled 属性用于决定该复选框是否可见B.复选框的 Value 属性用于决定该复选框是否被选中C.复选框的 TabIndex 属性用于决定该复选框在控件数组中的序号D.复选框的 Visible 属性用于决定该复选框是否可用29.如果要在程序代码中为图片框动态加载或清除图形,可以通过( )函数来实现。(分数:2.00)A.InputBoxB.InputC.LoadPictureD.PaintPicture30.用户在组合框中输入或选择的数据可以通过( )属性来获得。(分数:2.00)A.ListB.ListIndexC.TextD.ListCount31.下列叙述中错误的是
17、( )。(分数:2.00)A.线性表是由 n 个元素组成的一个有限序列B.线性表是一种线性结构C.线性表的所有结点有且仅有一个前件和后件D.线性表可以是空表32.结构化程序设计的 3 种基本结构是( )。(分数:2.00)A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移33.下列说法错误的是( )。(分数:2.00)A.在同一模块不同过程中的变量可以同名B.不同模块中定义的全局变量可以同名C.引用另一模块中的全局变量时,必须在变量名前加模块名D.同一模块中不同级的变量可以同名34.在窗体上面有一个文本框,其名称为 Text1,编写如下事件过程:Private
18、 Sub Text1_KeyPress(KeyAscii As Integer)Dim str As Stringstr=Chr(KeyAscii)KeyAscii=Asc(UCase(str)Text1.Text=String(2,KeyAscii)End Sub程序运行后,如果在键盘上输入字母“a”,则在文本框 Text3 中显示的内容为( )。(分数:2.00)A.aaaB.AAAC.AAD.aa35.下列程序段的运行结果是( )。Subsele()Dim n As Integeri=21:n=3Do While ini=i-nLoopPrint iEnd Sub(分数:2.00)A.2
19、B.4C.5D.3二、填空题(总题数:14,分数:28.00)36.软件生命周期分为软件定义期、软件开发期和软件维护期,详细设计属于 1 中的一个阶段。(分数:2.00)填空项 1:_37.结构化分析方法是面向 1 进行分析的方法。(分数:2.00)填空项 1:_38.常用的软件结构设计工具是结构图(SC) ,也称程序结构图。其中,用矩形表示 1,用带空心圆的箭头表示传递的是数据。(分数:2.00)填空项 1:_39.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块,其中的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。(分数:2.00)填空项 1:
20、_40.诊断和改正程序中错误的工作通常称为 1。(分数:2.00)填空项 1:_41.属性窗口分为 4 个部分,这 4 个部分分别是 1。(分数:2.00)填空项 1:_42.Text 文本框接受的最长字符数由文本框的 1 属性确定。(分数:2.00)填空项 1:_43.设当前日期为 2007 年 12 月 27 日,星期四,则执行下面语句后的输出结果为_。Print Day(Now)Print Month(Now)Print Year(Now)Print Weekday(Now)(分数:2.00)填空项 1:_44.表达式“12345“12345“&“ABC“的值是_。(分数:2.00)填空
21、项 1:_45.若要添加 CommonDialog 控件,则应从“工程”菜单中选定“部件”,在“部件”对话框的“控件”选项卡中选择 1,将控件添加到工具箱中。(分数:2.00)填空项 1:_46.下列程序的功能是:弹出一个对话框询问用户是否输出,如果是,则输出;否则结束。请填空。Sub PrintOut()Dim a As Integera=MsgBox(“输出结果?“,vblnformation+vbYesNo,“提示:“)If a=_ThenPrint “Myresult“End IfEnd Sub(分数:2.00)填空项 1:_47.如果要通过程序代码来一次性删除列表框中所有项目,则应使
22、用的方法是 1。(分数:2.00)填空项 1:_48.窗体中有图片框(Picturel)和计时器(Timerl)两个控件。程序运行时,将图片加载到图片框中,然后图片框以每秒一次的速度向窗体的右下角移动,每次向左、向右移动 300twip。请填空。(分数:2.00)填空项 1:_49.下列程序的功能是:找出给定的 12 个数中最大的一个数,然后输出这个数以及它在原来 12 个数中的位置。请填空。Option Base 1Private Sub Form_Click()Dim xx=Array(57,-9,17,42,-31,46,11,8,6,-4,3,90)Max=1For k=2 To 10
23、 Step 1If x(k)x(Max)Then_ End IfNext ky=_Print Max,yEnd Sub(分数:2.00)填空项 1:_二级 VISUAL+BASIC 笔试-44 答案解析(总分:98.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列选项中,不是一个算法的基本特征的是( )。(分数:2.00)A.完整性 B.可行性C.有穷性D.拥有足够的情报解析:解析 作为一个算法,一般应该具有以下 4 个特征:可行性,即考虑到实际的条件能够达到一个满意的结果;确定性,算法中的每一个步骤都必须是有明确定义的;有穷性,一个算法必须在有限的时间内做完;
24、拥有足够的情报。2.下列每组控件中,都包含有滚动条的一组控件是( )。(分数:2.00)A.ListBox 和 LabelB.TextBox 和 DriveListBoxC.ComboBox 和 CheckBoxD.FileListBox 和 DirListBox 解析:解析 在选中的几个控件中,没有滚动条属性的控件有:Label、 DriveListBox 和 CheckBox 控件;有滚动条属性设置的控件有: TextBox、FileLisBox 和 DirListBox 控件。3.在用 Open 语句打开文件时,如果省略“For 方式”,则打开的文件的存取方式是( )。(分数:2.00)
25、A.顺序输入方式B.顺序输出方式C.随机存取方式 D.二进制方式解析:解析 打开文件的 Open 语句在省略“For 方式”的情况下默认为随机存取方式(Random)输入输出文件。4.窗体上有两个文本框 Text1、Text2 以及一个命令按钮 Command1,编写下列程序:Dim y As IntegerPrivate Sub Command1_Click()Dim x As Integerx=2Text1.Text=p2(p1(x),y)Text2.Text=p1(x)End SubPrivate Function p1(x As Integer)As Integerx=x+y:y=x+
26、yp1=x+yEnd FunctionPrivate Function p2 (x As Integer, y As Integer)As Integerp2=2*x+yEnd Function当单击 1 次和单击 2 次命令按钮后,文本框 Text1 和 Text2 内的值分别为( )。(分数:2.00)A.2 4 2 4B.2 44 8C.4 4 8 8D.10 1058 58 解析:解析 程序中 y 为窗体变量,其作用范围为整个窗体中的所有子过程,要注意区分与作为 p1、p2形式参数的 y 变量。窗体变量 y 能够记录程序运行中对其的改变,第 1 次调用 p1,y 值为 2;第 2 次调
27、用 p1,y 为 6:第 3 次调用 p1,y 为 14:第 4 次调用 p1,y 为 36:所以计算出的函数 p1、p2 的返回值也会不同。5.某人在窗体上画了一个名称为 Timer1 的计时器和一个名称为 Label1 的标签,计时器的属性设置为Enabled=True,Interval=0,并编程如下。希望在程序运行时,可以每 2 秒在标签上显示一次系统当前时间。Private Sub Timer1_Timer()Label1.Caption=Time$End Sub在程序执行时发现未能实现上述目的,那么,应做的修改是( )。(分数:2.00)A.通过属性窗口把计时器的 Interval
28、 属性设置为 2000 B.通过属性窗口把计时器的 Enabled 属性设置为 FalseC.把事件过程中的 Label1.Caption=Time$语句改为 Timer1.Interval=Time$D.把事件过程中的 Label1.Caption=Time$语句改为 Label1.Caption=Timer1.Time解析:解析 Timer 控件有两个重要的属性和一个事件。其中,Interval 设置响应 Timer 事件的时间间隔,单位是毫秒。要每隔 2 秒显示一次当前时间,就是每隔 2 秒触发一次 Timer()事件,所以应设置Interval 属性为 2000 毫秒。6.最简单的交换
29、排序方法是( )。(分数:2.00)A.快速排序B.选择排序C.堆排序D.冒泡排序 解析:解析 所谓的交换类排序方法是指借助数据元素之间的互相交换进行排序的一种方法,包括冒泡排序和快速排序,冒泡排序是一种最简单的交换排序方法,它通过相邻元素的交换,逐步将线性表变成有序。7.在窗体上添加一个命令按钮,名为 Command1,其单击事件中有如下程序段,则事件过程执行后,文本框中输出( )。For i=1 To 4For j=1 To 3x=3For k=1 To 2x=x+3Next kNext jNext iText1.Text=Str(x)(分数:2.00)A.3B.6C.9 D.12解析:解
30、析 这也是一个 3 重循环,我们依次分析循环过程,程序执行如下:x=3:先执行第 3 层 k 控制的循环:k 从 1 到 2 循环 2 次,x=x+3x=9;然后执行 j 控制的第 2 层 j控制的循环,共 3 次,x=3:第 3 层循环使得 x=9:最后是 i 控制的第 1 层 i 控制的循环,共 4 次,x=9。8.下列程序段的输出结果为( )。Dim M(5,5),S(5)For i=1 To 5S(i)=0For j=1 To 5M(i,j)=i+jS(i)=S(i)+M(i,j)Next jNext iFor Each x In sPrint x;Next x(分数:2.00)A.2
31、023 24 3540B.2025 30 3540 C.2023 25 3540D.2025 354045解析:解析 程序的执行过程如下:当 i=1 时,j=1,M(1,1)=i+j=2; S(1)=S(1)+M(1,1)=2。当 j=2时,M(1,2)=i+j=3;S(1)=S(1)+M(1, 2)=5。当 j=3 时,M(1,3)=i+j=4;S(1)=S(1)+M(1,3)=9。当j=4 时, M(1,4)=i+j=5;S(1)=S(1)+M(1,4)=14。当 j=5 时,M(1,5)=i+j=6; S(1)=S(1)+M(1,5)=20。依次类推,最后 S 数组元素的值为:S(1)=
32、20: S(2)=25;S(3)=30:S(4)=35;S(5)=40。9.语句 Dim Arr(3 To 5,-2 To 2)定义的数组的元素个数是( )。(分数:2.00)A.20B.12C.15 D.24解析:解析 该数组定义语句定义了一个二维数组,它的第一维下标下界为 3,上界为 5,第二维下标下界为-2,上界为 2。因此该数组的数组元素为 Arr(3,-2)、Art(3,-1)、Arr(3,0)、Arr(3,1)、Arr(3, 2)、Arr(4,2)、Art(4,-1)、Arr(4,0)、Arr(4,1)、Arr(4,2)、Arr(5, -2)、Arr(5,-1)、Arr(5,0)、
33、Arr(5,1)、Art(5,2),共 15 个元素。10.某二叉树共有 60 个叶子结点与 50 个度为 1 的结点,则该二叉树中的总结点数为( )。(分数:2.00)A.148B.169 C.182D.198解析:解析 叶子结点总是比度为 2 的结点多一个。所以,具有 60 个叶子结点的二叉树有 59 个度为 2的结点。总结点数=60 个叶子结点+59 个度为 2 的结点+50 个度为 1 的结点=169 个结点。11.将文本框的 PasswordChar 属性设置为一个星号*,运行时,在文本框中输入的字符仍然显示出来,而不显示星号,原因可能是( )。(分数:2.00)A.文本框的 Mul
34、tiLine 属性值为 True B.文本框的 Looked 属性值为 TrueC.文本框的 MultiLine 属性值为 FalseD.文本框的 Looked 属性值为 False解析:解析 PasswordChar 属性将影响 TextBox 控件中显示的文本,文本框中将显示 PasswordChar 属性设置的字符的内容,但是如果 MultiLine 属性被设为 True,那么设置 PasswordChar 属性将不起效果。12.按照“先进先出”组织数据的数据结构是( )。(分数:2.00)A.队列 B.栈C.双向链表D.二叉树解析:解析 队列是一种特殊的线性表,只允许在表的一端插入元素
35、,在表的另一端删除元素,插入元素的一端叫“队尾”,删除元素的一端叫“队头”,先插入的元素先被删除,是按“先进先出”的原则组织数据的。13.对于长度为 n 的线性表,在最坏情况下,下列各种排序法所对应的比较次数中正确的是( )。(分数:2.00)A.冒泡排序为 n/2B.冒泡排序为 nC.快速排序为 nD.快速排序为 n(n-1)/2 解析:解析 在最坏情况下,冒泡排序和快速排序的比较次数都是 n (n-1)/2。所谓冒泡排序,就是将相邻的两个数据比较,如前面的数据大于后面的,则位置互换。这样不停地比较、互换,其实就是把大的数往后排,小的数往前排(就像冒泡一样冒出来了)。14.当一个工程含有多个
36、窗体时,其中的启动窗体是( )。(分数:2.00)A.启动 Visual Basic 时建立的窗体B.第一个添加的窗体C.最后一个添加的窗体D.在“工程属性”对话框中指定的窗体 解析:解析 在 Visual Basic 程序中,如果有多个窗体,且没有指定启动窗体,则默认设计时的第一个窗体为启动窗体;如果要指定启动窗体,可以通过“工程”菜单中的“工程属性”命令来指定启动窗体。注意:如果没有指定启动窗体,则第一个创建的窗体自动显示在“工程属性”对话框中的“启动对象”中。15.要使某菜单能够通过按住键盘上的Alt键及K键打开,应( )。(分数:2.00)A.在“名称”栏中“K”并字符前加上“&”符号
37、B.在“标题”栏中“K”并字符后加上“&”符号C.在“标题”栏中“K”并字符前加上“&”符号 D.在“名称”栏中“K”并字符后加上“&”符号解析:解析 本题是考查菜单项访问键的设置方法。在菜单控件的标题中,一个指定的访问键表现为一个带下划线的字符,访问键允许按下Alt键的同时输入该菜单项后面带下划线的字符来打开菜单。设置这个带下划线字符的方式就是在标题中,在字母前加上一个“&”符号。16.在窗体上画一个名为 Command1 的命令按钮,然后编写如下程序:Option Base 1Private Sub Command1_Click()Dim ArrArr=Array(1,2,3,4,5)j
38、= 1For i=5 To 1 Step-1S=S+Arr(i)*jj=j*10NextPrint SEnd Sub程序运行后,单击命令按钮,输出结果为( )。(分数:2.00)A.54321B.123C.12345 D.345解析:解析 本题考查使用 Array 函数给数组元素赋值的应用。分析程序可知,是通过 For 循环将数组中的各个元素通过一定的公式进行运算。运算过程为:当 i=5 时,Arr(5)=5,S=5:当 i=4 时,Arr(4)=4, S=45:当 i=3 时,Arr(3)=3,S=345:当 i=2 时,Arr(2)=2,S=2345;当 i=1 时,Arr(1)=1,S=
39、12345:当 i=0 时,条件不满足退出循环,执行循环后面的语句 Print S。因此,最后输出的值为“12345”。17.执行语句 Open “TC.dat“ For Random As #1 Len=50 后,对文件 TC.dat 中的数据能执行的操作是( )。(分数:2.00)A.只读操作B.只写操作C.既可以读,也可以写 D.追加操作解析:解析 题中的语句是以 Random 方式打开了一个随机文件 TC.dat,随机文件打开后,可以同时进行读、写操作。18.在 E 盘当前目录文件夹下建立一个名为“Student.txt”的随机文件,要求用 InputBox 函数输入 5 个学生的姓名
40、(StuName)、年级(StuGrade)和年龄(StuAge)。在程序中有以下记录类型和窗体的事件过程,请选择正确的语句完成程序( )。Private Type studentStuName As String*10StuGrade As String*10 StuAge As IntegerEnd TypePrivate Sub Form_Click()Dim s As studentOpen “c:/student.txt“ For Random As #1 Len=Len(s)For i=1 To 1s.StuName=InputBox(“请输入姓名“)s.StuGrade=Inpu
41、tBox(“请输入年级号“)s.StuAge=Val(InputBox(“请输入年龄“)Next iClose #1End Sub(分数:2.00)A.Print #1,sB.Print #1,iC.Put #1,s D.Put #1,i解析:解析 本题考查随机文件的读写,在 For 循环中,向随机文件中写入 5 个学生的信息,所以应该使用写操作语句,在随机文件中,写操作用 Put 语句,其格式为:Put#文件号,记录号,变量。19.按文件的内容划分有( )。(分数:2.00)A.顺序文件和随机文件B.ASCII 文件和二进制文件C.程序文件和数据文件 D.磁盘文件和打印文件解析:解析 根据不
42、同的分类标准,文件可分为不同的类型。根据数据性质,文件可分为程序文件和数据文件;根据数据的存取方式和结构,文件可分为顺序文件和随机文件;根据数据的编码方式,文件可分为 ASCII 文件和二进制文件。20.下列数据结构中,能用二分法进行查找的是( )。(分数:2.00)A.顺序存储的有序线性表 B.结性链表C.二叉链表D.有序线性链表解析:解析 二分法查找只适用于顺序存储的有序线性表,对于顺序存储的非有序线性表和线性链表,都只能采用顺序查找。21.下列关于线性链表的描述中正确的是( )。(分数:2.00)A.存储空间不一定连续,且各元素的存储顺序是任意的 B.存储空间不一定连续,且前件元素一定存
43、储在后件元素的前面C.存储空间必须连续,且各前件元素一定存储在后件元素的前面D.存储空间必须连续,且各元素的存储顺序是任意的解析:解析 线性表的链式存储结构中的结点空间是动态生成的,它们在内存中的地址可能是连续的,也可能是不连续的。22.单击命令按钮时,下列程度段的执行结果为( )。Pfivate Sub Command1_Click()Dima As Integer,b As Integer, c As Integera=2:b=4:c=6Call S1(a,b)Print “a=“;a;“b=“;b;“c=“;cCall S2(a,b)Print “a=“;a;“b=“;b;“c=“;c;
44、End SubPrivate Sub S1(x As Integer, y As Integer)Dim c As Integerx=2*x:y=y+2:c=x+yEnd SubSub S2(x As Integer, By Val y As Integer)Dim e As Integerx=2*x:y=y+2:e=x+yEnd Sub(分数:2.00)A.a=4 b=6 c=6a=4 b=6 c=6B.a=8 b=6 c=6a=8 b=6 c=6C.a=4 b=6 c=6a=8 b=6 c=6 D.a=8 b=6 c=6a=4 b=6 c=6解析:解析 在定义子过程的参数时,如果在参数前加
45、上 ByVal,表示是“传值”参数,主调函数中参数的值不被改变,否则表示是“传地址”参数,参数值会被调用的子过程改变。题中 S1 过程的参数是“传地址”,因此调用后 a、b、c 的值都改变了,分别为 4、6、6;S2 过程的参数中 a 是“传地址”参数,b 是“传值”参数,因此调用后 a 值改变,b 值不变,因为 c 是过程变量,所以也没有变化,因此输出的值为 8、6、6。23.有下列程序,程序运行后单击命令按钮,则输出的结果为( )。Private Sub Command1_Click()Dim a%(1 To 4),b%(3 To 6),i%,s1#,s2#For i=1 To 4a(i)
46、=iNext iFor i=3 To 6b(i)=iNext is1=Factorial((分数:2.00)A.s2=Factorial(B.Print “s1=“;s1;“s2=“;s2End SubFunction Factorial(a() 解析:解析 Factorial 函数的作用是计算参数数组 a 元素的累计乘积,即将数组 a 的元素从下界到上界循环相乘。在主调过程中,Factorial (a)、Factorial(b)分别传递数组 a 和 b,计算结果分别赋给 s1和 s2。在定义子过程的参数时,如果在参数前加上 ByVal,表示是“传值”参数,主调函数中参数的值不被改变,否则表示
47、是“传地址”参数,参数值会被调用的子过程改变。24.要使菜单项 MenuOne 在程序运行时失效,使用的语句是( )。(分数:2.00)A.MenuOne.Visible=TrueB.MenuOne.Visible=FalseC.MenuOne.Enabled=TrueD.MenuOne.Enabled=False 解析:解析 Enabled 属性用来设置一个窗体或控件是否能够对用户产生的事件作出反应,设为 False时,菜单项在程序运行时失效,不响应用户的操作:设为 True 时,菜单项在程序运行时有效,能响应用户的操作。Visible 属性用来设置窗体或控件是否可见,设为 False 时,
48、控件不可见;设为 True 时,控件可见。25.下列数据结构中,属于非线性的是( )。(分数:2.00)A.线性表B.队列C.树 D.栈解析:解析 线性结构是指数据元素只有一个直接前件元素和直接后件元素。线性表是线性结构,栈和队列是指对插入和删除操作有特殊要求的线性表,树是非线性结构。26.下列描述不正确的是( )。(分数:2.00)A.某个子过程中声明的局部变量,其使用范围仅限定于该子过程内B.某个子过程中声明的局部变量,其生命周期仅限于该子过程被执行过程中C.不同子过程中的局部变量可以具有相同的名称D.不同子过程中具有相同的名称的局部变量是同一变量 解析:解析 在子过程中声明的变量,叫局部变量,其作用范围仅限于该过程内,其生命周期是子过程执行过程:不同子过程中的局部变量可以同名,不会相互影响,如果子过程中没有声明就使用的变量,除非在子过程外部有声明,否则也认为是局部变量。27.下列关于菜单的说法错误的是( )。(分数:2.00)A.每个菜单项都是一个控件,与其他控件一样也有其属性和事件B.除了 Click 事件之外,菜单项不可以响应其他事件C.菜单项的索引号可以不连续D.菜单项的索引号必须从 1 开始 解析:解析 每个菜单项都