1、二级 VISUAL+BASIC 笔试-178 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.设 a=4,b=5,c=6,执行语句 Print ab And bc 后,窗体上显示的是(分数:2.00)A.TrueB.FalseC.出错信息D.02.下列选项中不属于结构化程序设计方法的是(分数:2.00)A.自顶向下B.逐步求精C.模块化D.可复用3.按照“后进先出”原则组织数据的数据结构是(分数:2.00)A.队列B.栈C.双向链表D.二叉树4.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是(分数:2.00)A.D
2、B 包含 DBS 和 DBMSB.DBMS 包含 DB 和 DBSC.DBS 包含 DB 和 DBMSD.没有任何关系5.执行下列语句 strInput=InputBox(“请输入字符串“, “字符串对话框“, “字符串“)将显示输入对话框。此时如果直接单击“确定”按钮,则变量 strInput 的内容是(分数:2.00)A.“请输入字符串“B.“字符串对话框“C.“字符串“D.空字符串6.两个或两个以上模块之间关联的紧密程度称为(分数:2.00)A.耦合度B.内聚度C.复杂度D.数据传输特性7.下列关于过程的叙述中,错误的是(分数:2.00)A.事件过程是由某个事件触发而执行的过程B.函数过
3、程的返回值可以有多个C.可以在事件过程中调用通用过程D.不能在事件过程中定义函数过程8.在 E-R 图中,用来表示实体的图形是(分数:2.00)A.矩形B.椭圆形C.菱形D.三角形9.在窗体上画一个命令按钮和一个标签,其名称分别为 Command1 和 Label1,然后编写如下事件过程:Private Sub Command1_Click()Counter=0For i=1 To 4For j=6 To 1 Step -2Counter=Counter+1Next jNext iLabel1.Caption=Str(Counter)End Sub程序运行后,单击命令按钮,标签中显示的内容是(
4、分数:2.00)A.11B.12C.16D.2010.若窗体上的图片框中有一个命令按钮,则此按钮的 Left 属性是指(分数:2.00)A.按钮左端到窗体左端的距离B.按钮左端到图片框左端的距离C.按钮中心点到窗体左端的距离D.按钮中心点到图片框左端的距离11.在深度为 7 的满二叉树中,叶子结点的个数为(分数:2.00)A.32B.31C.64D.6312.在窗体上画一个命令按钮和两个标签,其名称分别为 Command1、Label1 和 Label2,然后编写如下事件过程:Private Sub Command1_Click()a=0For i=1 To 10a=a+1:b=0For j=
5、1 To 10a=a+1:b=b+2Next jNext iLabel1.Caption=Str((分数:2.00)A.Label2.Caption=Str(B.End Sub13.设在名为 Myform 的窗体上只有一个名为 C1 的命令按钮,下列叙述中正确的是(分数:2.00)A.窗体的 Click 事件过程的过程名是 Myform_ClickB.命令按钮的 Click 事件过程名是 C1_ClickC.命令按钮的 Click 事件过程的过程名是 Command1_ClickD.上述三种过程名称都是错误的14.下列叙述中正确的是(分数:2.00)A.软件测试应该由程序开发者来完成B.程序经
6、调试后一般不需要再测试C.软件维护只包括对程序代码的维护D.以上 3 种说法都不对15.设窗体上有一个文本框 Text1 和一个命令按钮 Command1,并有以下事件过程:Private Sub Command1_Click()Dim s As String, ch As Strings=“For k=1 To Len(Text1)ch=Mid(Text1,k,1)s=ch+sNext kText1.Text=sEnd Sub程序执行时,在文本框中输入 Basic,然后单击命令按钮,则 Text1 中显示的是(分数:2.00)A.BasicB.cisaBC.BASICD.CISAB16.设
7、a=5,b=6,c=7,d=8,执行下列语句后,x 的值为X=IIF(ab) And (cd),10,20)(分数:2.00)A.10B.20C.TrueD.False17.在窗体上有一个名称为 Check1 的复选框数组(含 4 个复选框),还有一个名称为 Text1 的文本框,初始内容为空。程序运行时,单击任何复选框,则把所有选中的复选框后面的文字罗列在文本框中(见图 2)。下面能实现此功能的事件过程是(分数:2.00)A.B.C.D.18.在窗体上画一个命令按钮(名称为 Command1)和 1 个文本框(名称为 Text1),然后编写如下事件过程:Private Sub Command
8、1_Click()x=Val(Text1.Text)Select Case xCase 1,3y=x*xCase Is=10, Is=-10y=xCase -10 To 10y=-xEnd SelectEnd Sub程序运行后,在文本框中输入 3,然后单击命令按钮,则下列叙述中正确的是(分数:2.00)A.执行 y=x*xB.执行 y=-xC.先执行 y=x*x,再执行 y=-xD.程序出错19.下列选项中,不合法的 Visual Basic 的变量名是(分数:2.00)A.a56B._xyzC.a-bD.andif20.在窗体上画一个名称为 Command1 的命令按钮,并编写以下程序:Pr
9、ivate Sub Command1_Click()Dim n%,b,tt=1:b=1:n=2Dob=b*n:t=t+b:n=n+1Loop Until n9Print tEnd Sub此程序计算并输出一个表达式的值,该表达式是(分数:2.00)A.9!B.10!C.1!+2!+9!D.1!+2!+10!21.假定有以下函数过程:Function Fun(S As String) As StringDim s1 As StringFor i=1 To Len(s)s1=LCase(Mid(S,i,1)+s1Next iFun=s1End Function在窗体上画一个命令按钮,然后编写如下事件
10、过程:Private Sub Command1_Click()Dim Str1 As String, Str2 As StringStr1=InputBox(“请输入一个字符串“)Str2=Fun(Str1)Print Str2End Sub程序运行后,单击命令按钮,如果在输入对话框中输入字符串 abcdefg,则单击“确定”按钮后在窗体上的输出结果为(分数:2.00)A.ABCDEFGB.abcdefgC.GFEDCBAD.gfedcba22.下列叙述中正确的是(分数:2.00)A.线性链表是线性表的链式存储结构B.栈与队列是非线性结构C.双向链表是非线性结构D.只有根结点的二叉树是线性结构
11、23.对如图 1 所示的二叉树进行后序遍历的结果为(分数:2.00)A.B.C.D.24.在窗体上有一个名为 Text1 的文本框。当光标在文本框中时,如果按下字母键“A”,则被调用的事件过程是(分数:2.00)A.Form_KeyPress()B.Text1_LostFocus()C.Text1_Click()D.Text1_Change()25.如果要在命令按钮上显示图形文件,应设置命令按钮的(分数:2.00)A.Style 属性和 Graphics 属性B.Style 属性和 Picture 属性C.Picture 属性D.Graphics 属性26.窗体上有一个名称为 Command1
12、 的命令按钮,其事件过程如下:Private Sub Command1_Click()x=“VisualBasicProgramming“a=Right(x,11)b=Mid(x,7,5)c=MsgBox(a,b)End Sub运行程序后单击命令按钮,下列叙述中错误的是(分数:2.00)A.信息框的标题是 BasicB.信息框中的提示信息是 ProgrammingC.C 的值是函数的返回值D.MsgBox 的使用格式有错27.下列叙述中错误的是(分数:2.00)A.一个 Visual Basic 应用程序可以含有多个标准模块文件B.一个 Visual Basic 工程可以含有多个窗体文件C.标
13、准模块文件可以属于某个指定的窗体文件D.标准模块文件的扩展名是.bas28.在窗体上画一个命令按钮和两个文本框,其名称分别为 Command1、Text1 和 Text2,然后编写如下程序:Dim S1 As String,S2 As StringPrivate Sub Form_Load()Text1.Text=“Text2.Text=“End SubPrivate Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)S2=S2 & Chr(KeyCode)End SubPrivate Sub Text1_KeyPress(KeyAs
14、cii As Integer)S1=S1 & Chr(KeyAscii)End SubPrivate Sub Command1_Click()Text1.Text=S2Text2.Text=S1S1=“S2=“End Sub程序运行时,在 Text1 中输入 abc 后单击命令按钮,在文本框 Text1 和 Text2 中显示的内容分别为(分数:2.00)A.abc 和 ABCB.abc 和 abcC.ABC 和 abcD.ABC 和 ABC29.窗体上有一个名称为 CD1 的通用对话框,一个名称为 Command1 的命令按钮。命令按钮的单击事件过程如下:Private Sub Comman
15、d1_Click()CD1.FileName=“CD1.Filter=“All Files|*.*|(*.Doc)|*.Doc|(*.Txt)|*.txt“CD1.FilterIndex=2CD1.Action=1End Sub关于以上代码,错误的叙述是(分数:2.00)A.执行以上事件过程,通用对话框被设置为“打开”文件对话框B.通用对话框的初始路径为当前路径C.通用对话框的默认文件类型为*.TxtD.以上代码不对文件执行读写操作30.在菜单编辑器中建立一个名称为 Menu0 的菜单项,将其“可见”属性设置为 False,并建立其若干子菜单,然后编写如下过程:Private Sub Form
16、_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button=1 ThenPopupMenu Menu0End IfEnd Sub则以下叙述中错误的是(分数:2.00)A.该过程的作用是弹出一个菜单B.单击鼠标右键时弹出菜单C.Menu0 是在菜单编辑器中定义的弹出菜单的名称D.参数 X、Y 指明鼠标当前位置的坐标31.下面可以正确定义两个整型变量和一个字符串变量的语句的是(分数:2.00)A.Dim n,m AS Interger,s AS StringB.Dim a%, b$,c AS
17、StringC.Dim a AS Integer,b,c AS StringD.Dim x%, y AS Integer,z AS String32.已知 4 行 3 列的全局数组 score(4,3)中存放了 4 个学生 3 门课程的考试成绩(均为整数),现需要计算每个学生的总分,某人编写程序如下:Option Base 1Private Sub Command1_Click()Dim sum As Integersum=0For i=1 To 4For j=1 To 3sum=sum+sore(i,j)Next jNext iEnd Sub运行程序时发现,除第一个人的总分计算正确外,其他人
18、的总分都是错误的。程序需要修改。以下修改方案中正确的是(分数:2.00)A.把外层循环语句 For i=1 To 4 改为 For j=1 To 3内层循环语句 For j=1 To 3 改为 For i=1 To 4B.把 sum=0 移到 For i=1 To 4 和 For j=1 To 3 之间C.把 sum=sum+sore(i,j)改为 sum=sum+sore(j,i)D.把 sum=sum+sore(i,j)改为 sum=sore(j,33.在窗体上画一个命令按钮,其名称为 Command1,然后编写如下程序:Private Sub Command1_Click()Dim a(
19、10) As IntegerDim x As IntegerFor i=1 To 10a(i)=8+iNextx=2Print a(f(x)+x)End SubFunction r(x As Integer)x=x+3:f=xEnd Function程序运行后,单击命令按钮,输出结果为(分数:2.00)A.12B.15C.17D.1834.下列关于文件的叙述中,错误的是(分数:2.00)A.使用 Append 方式打开文件时,文件指针被定位于文件尾B.当以输入方式(Input)打开文件时,如果文件不存在,则建立一个新文件C.顺序文件各记录的长度可以不同D.随机文件打开后,既可以进行读操作,也可
20、以进行写操作35.“商品”与“顾客”两个实体集之间的联系一般是(分数:2.00)A.一对一B.一对多C.多对一D.多对多二、填空题(总题数:11,分数:30.00)36.对长度为 10 的线性表进行冒泡排序,最坏情况下需要比较的次数为 1。(分数:2.00)填空项 1:_37.在面向对象方法中, 1 描述的是具有相似属性与操作的一组对象。(分数:2.00)填空项 1:_38.在关系模型中,把数据看成是二维表,每一个二维表称为一个_。(分数:2.00)填空项 1:_39.程序测试分为静态分析和动态测试。其中 1 是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。(
21、分数:2.00)填空项 1:_40.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为 1。(分数:2.00)填空项 1:_41.某人编写了如下函数来判断 a 是否为素数,若是,则函数返回 True;否则返回 False。Function Prime(a As Integer) AS BooleanDim k As Interger, isprime AS BooleanIf a2 Thenisprime=FalseEIseisprime=Truek=2Do While kIf a Mod k=0 Theniprime=
22、FalseELSEk=k+1End IFLOOPEnd Ifprime=isprimeEnd Function在测试时发现有一个非素数也被判断为素数,这个错判的数是_。(分数:2.00)填空项 1:_42.在窗体上画一个名称为 Combo1 的组合框,然后画两个名称分别为 Label1、Label2,标题分别为“城市名称”和空白的标签。程序运行后,在组合框中输入一个新项目并按回车键,如果输入的项目在组合框的列表中不存在,则自动将其添加到组合框的列表中,并在 Label2 中给出提示“已成功添加新输入项。”,如图 3 所示。如果输入的项目已存在,则在 Label2 中给出提示“输入项已在组合框中
23、。”。请填空。(分数:4.00)填空项 1:_43.设窗体上有一个名称为 CD1 的通用对话框、一个名称为 Text1 的文本框和一个名称为 Command1 的命令按钮。程序执行时,单击 Command1 按钮,则显示打开文件对话框,操作者从中选择一个文本文件,并单击对话框上的“打开”按钮后,则可打开该文本文件,并读入一行文本,显示在 Text1 中。下面是实现此功能的事件过程,请填空。Private Sub Command1_Click()CD1.Filter=“文本文件|*.txt|Word 文档|*.doc“CD1.FilterIndex=1CD1.ShowOpenIf CD1.Fil
24、eName“ ThenOpen (9) For Input As #1Line Input #1, Ch$Close #1Text1.Text= (10) End IfEnd Sub(分数:4.00)填空项 1:_44.在窗体上画一个命令按钮,其名称为 Command1,然后编写如下代码:Option Base 1Private Sub Command1_Click()Dim ArrArr=Array(43,68,-25,65,-78,12,-79,43,-94,72)pos=0neg=0For k=1 To 10If Arr(k)0 Then(11) Else(12) End IfNext
25、kPrint pos,negEnd Sub以上程序的功能是:计算并输出数组 Arr 中 10 个数的正数之和 pos 与负数之和 neg,请填空。(分数:4.00)填空项 1:_45.在窗体上画一个名为 Command1 的命令按钮,然后编写如下程序:Private Sub Command1_Click()Dim i As IntegerSum=0n=InputBox(“Enter a number“)n=Val(n)For i=1 To nSum= (13) Next iPrint SumEnd SubFunction fun(t As Integer) As Longp=1For i=1
26、To tp=p*iNext i(14) End Function以上程序的功能是,计算 1!+2!+3!+n!,其中 n 从键盘输入,请填空。(分数:4.00)填空项 1:_46.设有以下循环:x=1Dox=x+2Print xLoop Until _要求程序运行时执行 3 次循环体,请填空。(分数:2.00)填空项 1:_二级 VISUAL+BASIC 笔试-178 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.设 a=4,b=5,c=6,执行语句 Print ab And bc 后,窗体上显示的是(分数:2.00)A.True B.Fa
27、lseC.出错信息D.0解析:解析 先进行关系运算:ab=True、bc=True,再进行逻辑运算:True And True,结果为True。2.下列选项中不属于结构化程序设计方法的是(分数:2.00)A.自顶向下B.逐步求精C.模块化D.可复用 解析:解析 结构化程序设计方法的主要原则有 4 点:自顶向下(先从最上层总目标开始设计,逐步使问题具体化)、逐步求精(对于复杂问题,设计一些子目标作为过渡逐步细化)、模块化(将程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,每个小目标作为一个模块)、限制使用 GOTO 语句。没有可复用原则,所以选项 D 为答案。3.按照“后进先出”原则
28、组织数据的数据结构是(分数:2.00)A.队列B.栈 C.双向链表D.二叉树解析:解析 “后进先出”表示最后被插入的元素最先能被删除。在选项 A 中,队列是指允许在一端进行插入、而在另一端进行删除的线性表,在队列这种数据结构中,最先插入的元素将最先能够被删除;反之,最后插入的元素将最后才能被删除,队列又称为“先进先出”的线性表,它体现了“先来先服务”的原则:在选项 B 中,栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素,栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。队列和栈都属于线性表,它们具有顺序存储的特点,所以才有“先进先出”和“后进先出”的数据组织方式。双向链表使
29、用链式存储方式,二叉树也通常采用链式存储方式,它们的存储数据的空间可以是不连续的,各个数据结点的存储顺序与数据元素之间的逻辑关系可以不一致。所以选项 C 和选项 D 错误。4.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是(分数:2.00)A.DB 包含 DBS 和 DBMSB.DBMS 包含 DB 和 DBSC.DBS 包含 DB 和 DBMS D.没有任何关系解析:解析 数据库管理系统(DBMS)是数据库系统中实现各种数据管理功能的核心软件,它负责数据库中所有数据的存储、检索、修改以及安全保护等,数据库内的所有活动都是在其控制下进行的。所以,DBMS 包含数据库
30、DB。操作系统、数据库管理系统与应用程序在一定的硬件支持下就构成 17 数据库系统。所以,DBS 包含 DBMS,也就包含 DB。选项 C 正确。5.执行下列语句 strInput=InputBox(“请输入字符串“, “字符串对话框“, “字符串“)将显示输入对话框。此时如果直接单击“确定”按钮,则变量 strInput 的内容是(分数:2.00)A.“请输入字符串“B.“字符串对话框“C.“字符串“ D.空字符串解析:解析 InputBox()函数的第一个参数用于提示文字,第二个参数作为对话框的标题,第三个参数用于默认值,所以直接单击“确定”按钮得到的值为“字符串”。6.两个或两个以上模块
31、之间关联的紧密程度称为(分数:2.00)A.耦合度 B.内聚度C.复杂度D.数据传输特性解析:7.下列关于过程的叙述中,错误的是(分数:2.00)A.事件过程是由某个事件触发而执行的过程B.函数过程的返回值可以有多个 C.可以在事件过程中调用通用过程D.不能在事件过程中定义函数过程解析:解析 函数只能有一个返回值。8.在 E-R 图中,用来表示实体的图形是(分数:2.00)A.矩形 B.椭圆形C.菱形D.三角形解析:解析 在 E-R 图中,用 3 种图框分别表示实体、属性和实体之间的联系,其规定如下:用矩形框表示实体,框内标明实体名;用椭圆状框表示实体的属性,框内标明属性名:用菱形框表示实体间
32、的联系,框内标明联系名。所以,选项 A 正确。9.在窗体上画一个命令按钮和一个标签,其名称分别为 Command1 和 Label1,然后编写如下事件过程:Private Sub Command1_Click()Counter=0For i=1 To 4For j=6 To 1 Step -2Counter=Counter+1Next jNext iLabel1.Caption=Str(Counter)End Sub程序运行后,单击命令按钮,标签中显示的内容是(分数:2.00)A.11B.12 C.16D.20解析:解析 本题是一个循环嵌套题,循环嵌套时“外循环循环一次,内循环循环一遍”。当
33、i=1 时,内层循环 j 循环一遍,即 j=6,j=4,j=2 时各执行一次 Counter=Counter+1,Counter=3。同理,i=2,i=3,i=4 时 j 也都将各执行一遍,所以 Counter=12,最后将 Counter 转换为字符串后显示在标签控件中,选项 B 为正确答案。10.若窗体上的图片框中有一个命令按钮,则此按钮的 Left 属性是指(分数:2.00)A.按钮左端到窗体左端的距离B.按钮左端到图片框左端的距离 C.按钮中心点到窗体左端的距离D.按钮中心点到图片框左端的距离解析:解析 当图片框中含有其他控件时,如果移动图片框,则图片框中的控件也随着一起移动,并且与图
34、片框的相对位置保持不变。图片框中的控件不能移到图片框外。因此,题中命令按钮的 Left 属性是以图片框为基准的。11.在深度为 7 的满二叉树中,叶子结点的个数为(分数:2.00)A.32B.31C.64 D.63解析:解析 在二叉树的第五层上,最多有 2k-1(k1)个结点。对于满二叉树来说,每一层上的结点数都达到最大值,即在满二叉树的第 k 层上有 2k-1个结点。因此,在深度为 7 的满二叉树中,所有叶子结点在第七层上,即其结点数为 2k-1=27-1=64。因此,本题的正确答案为 C。12.在窗体上画一个命令按钮和两个标签,其名称分别为 Command1、Label1 和 Label2
35、,然后编写如下事件过程:Private Sub Command1_Click()a=0For i=1 To 10a=a+1:b=0For j=1 To 10a=a+1:b=b+2Next jNext iLabel1.Caption=Str((分数:2.00)A.Label2.Caption=Str(B.End Sub解析:解析 此题中 a 和 b 两个变量的不同之处在于:a 只赋一次初值为 0,循环中不停地增加 a 的值,而变量 b 是每执行一次外层循环时,b 被清空为 0。当 i=10 时,先将 b 赋为 0,再在内层循环中执行 10次 b=b+2,最终 b=20;每执行一次外层循环,a=a
36、+1 被执行一次,每执行一次外循环,内循环执行一遍,共 10 次 a=a+1,这样,a=a+1 总共被执行了 10+100 次,所以 a=110。13.设在名为 Myform 的窗体上只有一个名为 C1 的命令按钮,下列叙述中正确的是(分数:2.00)A.窗体的 Click 事件过程的过程名是 Myform_ClickB.命令按钮的 Click 事件过程名是 C1_Click C.命令按钮的 Click 事件过程的过程名是 Command1_ClickD.上述三种过程名称都是错误的解析:解析 命令按钮的 Click 事件过程名是:命令按钮名称_Click,由于命令按钮的名称为 C1,因此其 C
37、lick 事件过程名应该是 C1_Click。14.下列叙述中正确的是(分数:2.00)A.软件测试应该由程序开发者来完成B.程序经调试后一般不需要再测试C.软件维护只包括对程序代码的维护D.以上 3 种说法都不对 解析:解析 本题考核软件测试、软件调试和软件维护的概念。软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。软件测试具有挑剔性,测试不是为了证明程序是正确的,而是在设想程序有错误的前提下进行的,其目的是设法暴露程序中的错误和缺陷,就是说,测试是程序执行的过程,目的在于发现错误;一个好的测试在于能发现至今未发现的错误:一个成功的测试是发现了至今未发现
38、的错误。由于测试的这一特征,一般应当避免由开发者测试自己的程序。所以,选项A 的说法错误。调试也称排错,目的是发现错误的位置,并改正错误,经测试发现错误后,可以立即进行调试并改正错误;经过调试后的程序还需进行回归测试,以检查调试的、效果,同时也可防止在调试过程中引进新的错误。所以,选项 B 的说法错误。软件维护通常有 4 类:为纠正使用中出现的错误而进行的改正性维护:为适应环境变化而进行的适应性维护;为改进原有软件而进行的完善性维护;为将来的可维护和可靠而进行的预防性维护。软件维护不仅包括程序代码的维护,还包括文档的维护。文档可以分为用户文档和系统文档两类。但无论是哪类文档,都必须与程序代码同
39、时维护。只有与程序代码完全一致的文档才有意义和价值。所以,选项 C 的说法错误。选项 D 为正确答案。15.设窗体上有一个文本框 Text1 和一个命令按钮 Command1,并有以下事件过程:Private Sub Command1_Click()Dim s As String, ch As Strings=“For k=1 To Len(Text1)ch=Mid(Text1,k,1)s=ch+sNext kText1.Text=sEnd Sub程序执行时,在文本框中输入 Basic,然后单击命令按钮,则 Text1 中显示的是(分数:2.00)A.BasicB.cisaB C.BASICD
40、.CISAB解析:解析 在循环中对变量 s 进行了赋值,最后将 s 的值放入文本框,由题中循环特点及 Mid 函数可以得出本题的答案为 B。16.设 a=5,b=6,c=7,d=8,执行下列语句后,x 的值为X=IIF(ab) And (cd),10,20)(分数:2.00)A.10B.20 C.TrueD.False解析:解析 当 IIF 函数的条件为真时,返回 IIF 函数第二个参数表达式的值,当 IIF 函数的条件为假时,返回 IIF 函数第三个参数表达式的值,显然此题的条件为假,返回值为 20,所以本题的答案为 B。17.在窗体上有一个名称为 Check1 的复选框数组(含 4 个复选
41、框),还有一个名称为 Text1 的文本框,初始内容为空。程序运行时,单击任何复选框,则把所有选中的复选框后面的文字罗列在文本框中(见图 2)。下面能实现此功能的事件过程是(分数:2.00)A. B.C.D.解析:解析 选项 B 中没有“Text1.Text=“”语句,文本框未清空;选项 C 中“Text1.Text=Text1.Text & Check1(Index).Caption & “”语句的 Index 赋值为最后选中复选框的下标值,因此文本框显示的是最后一次选中的复选框后面的文字;选项 D 中“Exit For”语句表示循环语句检测到一个选中的复选框时就停止循环,因此不能显示多个选
42、中的复选框文字。18.在窗体上画一个命令按钮(名称为 Command1)和 1 个文本框(名称为 Text1),然后编写如下事件过程:Private Sub Command1_Click()x=Val(Text1.Text)Select Case xCase 1,3y=x*xCase Is=10, Is=-10y=xCase -10 To 10y=-xEnd SelectEnd Sub程序运行后,在文本框中输入 3,然后单击命令按钮,则下列叙述中正确的是(分数:2.00)A.执行 y=x*x B.执行 y=-xC.先执行 y=x*x,再执行 y=-xD.程序出错解析:解析 如果同一个值域的范围
43、在多个 Case 子句中出现,则只执行符合要求的第一个 Case 子句的语句块。在文本框中输入 3,x=3,第一条分支 Case 1,3 符合条件,进入 Select Case 语句中第一条分支 Case 1,3,只执行 y=x*x。19.下列选项中,不合法的 Visual Basic 的变量名是(分数:2.00)A.a56B._xyz C.a-bD.andif解析:解析 变量的命名必须以字母开头,由字母、汉字、数字或下划线组成,不能在变量中出现句点“.”、空格、“!”、“”、“#”、“$”、“%”和“&”。本题中选项 B 的变量开头字符未满足变量命名规则。20.在窗体上画一个名称为 Comm
44、and1 的命令按钮,并编写以下程序:Private Sub Command1_Click()Dim n%,b,tt=1:b=1:n=2Dob=b*n:t=t+b:n=n+1Loop Until n9Print tEnd Sub此程序计算并输出一个表达式的值,该表达式是(分数:2.00)A.9!B.10!C.1!+2!+9! D.1!+2!+10!解析:解析 一次循环后 t=1!+2!,二次循环后 t=1!+2!+3!,当第九次循环后,t=1!+2!+9!,n=109,停止循环。21.假定有以下函数过程:Function Fun(S As String) As StringDim s1 As
45、StringFor i=1 To Len(s)s1=LCase(Mid(S,i,1)+s1Next iFun=s1End Function在窗体上画一个命令按钮,然后编写如下事件过程:Private Sub Command1_Click()Dim Str1 As String, Str2 As StringStr1=InputBox(“请输入一个字符串“)Str2=Fun(Str1)Print Str2End Sub程序运行后,单击命令按钮,如果在输入对话框中输入字符串 abcdefg,则单击“确定”按钮后在窗体上的输出结果为(分数:2.00)A.ABCDEFGB.abcdefgC.GFEDC
46、BAD.gfedcba 解析:解析 题中函数 fun 的作用是将取来的字符串以小写字母的形式逆序排列组合成新的字符串,按钮的 Click 事件负责调用 fun 函数,所以本题的答案为 D。22.下列叙述中正确的是(分数:2.00)A.线性链表是线性表的链式存储结构 B.栈与队列是非线性结构C.双向链表是非线性结构D.只有根结点的二叉树是线性结构解析:解析 一个非空的数据结构如果满足下列两个条件:有且只有一个根结点;每一个结点最多有一个前件,也最多有一个后件;则称为线性结构。线性链表是线性表的链式存储结构,选项 A 的说法是正确的。栈与队列是特殊的线性表,它们也是线性结构,选项 B 的说法是错误
47、的;双向链表是线性表的链式存储结构,其对应的逻辑结构也是线性结构而不是非线性结构,选项 C 的说法是错误的;二叉树是非线性结构,而不是线性结构,选项 D 的说法是错误的。因此,本题的正确答案为 A。23.对如图 1 所示的二叉树进行后序遍历的结果为(分数:2.00)A.B.C.D. 解析:解析 二叉树后序遍历的简单描述如下:若二叉树为空,则结束返回。否则后序遍历左子树;后序遍历右子树;访问根结点。也就是说,后序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后遍历右子树,最后访问根结点,并且,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。根据后序
48、遍历的算法,后序遍历的结果为 DEBFCA。24.在窗体上有一个名为 Text1 的文本框。当光标在文本框中时,如果按下字母键“A”,则被调用的事件过程是(分数:2.00)A.Form_KeyPress()B.Text1_LostFocus()C.Text1_Click()D.Text1_Change() 解析:解析 按下字母键 A 将触发 Change 事件,调用的过程为 Text1_Change()。当按下并松开 A 键时触发 KeyPress 事件。Click 是鼠标单击事件,LostFocus 是失去焦点事件,按下 A 键后光标还在文本框中,未失去焦点。25.如果要在命令按钮上显示图形文件,应设置命令按钮的(分数:2.00)A.Style 属性和 Graphics 属性B.Style 属性和 Picture 属性 C.Picture 属性D.Graphics 属性解析:解析 命令按钮的 Style 属性可以设置为“0-Standard”或“1-Graphical”,设置为“0-Standard”时,命令按钮显示为标准样式,不能显示图形或设置颜色;设置为“1-Graphical”时,命令按钮上可以显示图形或设置颜色。在 Style 属性值为“1-Graphical”时,用 Picture 属性指定命令按钮上显示的图形