1、全国计算机等级考试二级 VISUAL+BASIC 真题 2011 年 3 月及答案解析(总分:88.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列关于栈叙正确的是( )。(分数:2.00)A.栈顶元素最先能被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.以上三种说法都不对2.下列叙述中正确的是( )。(分数:2.00)A.有一个以上根结点的数据结构不一定是非线性结构B.只有一个根结点的数据结构不一定是线性结构C.循环链表是非线性结构D.双向链表是非线性结构3.某二叉树共有 7 个结点,其中叶子结点只有 1 个,则该二叉树的深度为(假设根结点在第
2、1 层)( )。(分数:2.00)A.3B.4C.6D.74.存软件开发中,需求分析阶段产生的主要文档是( )。(分数:2.00)A.软件集成测试计划B.软件详细设计说明书C.用户手册D.软件需求规格说明书5.结构化程序所要求的基本结构不包括( )。(分数:2.00)A.顺序结构B.GOTO 跳转C.选择(分支)结构D.重复(循环)结构6.下面描述中错误的是( )。(分数:2.00)A.系统总体结构图支持软件系统的详细设计B.软件设计是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD 图是软件详细设计的表示工具7.负责数据库中查询操作的数据库语言是( )。(
3、分数:2.00)A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言8.一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是( )。(分数:2.00)A.1:1 联系B.1:m 联系C.m:1 联系D.m:n 联系9.有三个关系 R、S 和 T 如下( )。(分数:2.00)A.B.C.D.10.定义无符号整数类为 UInt,下面可以作为类 UInt 实例化值的是( )。(分数:2.00)A.-369B.369C.0.369D.整数集合 1,2,3,4,5)11.在 Visual Basic 集成环境中,可以列出工程中所有模块名称的窗口是( )。(分数:2.
4、00)A.工程资源管理器窗口B.窗体设计窗口C.属性窗口D.代码窗口12.假定编写了如下 4 个窗体事件的事件过程,则运行应用程序并显示窗体后,已经执行的事件过程是( )。(分数:2.00)A.LoadB.ClickC.LostFocusD.KeyPress13.为了使标签具有“透明”的显示效果,需要设置的属性是( )。(分数:2.00)A.CaptionB.AlignmentC.BackStyleD.AutoSize14.下面可以产生 2030(含 20 和 30)的随机整数的表达式是( )。(分数:2.00)A.Int(Rnd*10+20)B.Int(Rnd*11+20)C.Int(Rnd
5、*20+30)D.Int(Rnd*30+20)15.设窗体上有一个名称为 HS1 的水平滚动条,如果执行了语句:HS1.Value=(HS1.Max-HS1.Min)/2+HS1.Min 则( )。(分数:2.00)A.滚动块处于最左端B.滚动块处于最右端C.滚动块处于中间位置D.滚动块可能处于任何位置,具体位置取决于 Max、Min 属性的值16.窗体上有一个名称为 Cb1 的组合框,程序运行后,为了输出选中的列表项,应使用的语句是( )。(分数:2.00)A.Print Cb1. SelectedB.Print Cb1. List(Cb1. ListIndex)C.Print Cb1. S
6、elected. TextD.Print Cb1. List(Listlndex)17.为了在窗体上建立 2 组单选按钮,并且当程序运行时,每组都可以有一个单选按钮被选中,则以下做法中正确的是( )。(分数:2.00)A.把这 2 组单选按钮设置为名称不同的 2 个控件数组B.使 2 组单选按钮的 Index 属性分别相同C.使 2 组单选按钮的名称分别相同D.把 2 组单选按钮分别画到 2 个不同的框架中18.如果一个直线控件在窗体上呈现为一条垂直线,则可以确定的是( )。(分数:2.00)A.它的 Y1、Y2 属性的值相等B.它的 X1、X2 属性的值相等C.它的 X1、Y1 属性的值分别
7、与 X2、Y2 属性的值相等D.它的 X1、X2 属性的值分别与 Y1、Y2 属性的值相等19.设 a=2,b=3,c=4,d=5则下面语句的输出是( )。Print 32 * b Or a=c And bc Or cd(分数:2.00)A.FalseB.1C.TrueD.-120.窗体 Form1 上有一个名称为 Command1 的命令按钮,以下对应窗体单击事件的事件过程是( )。(分数:2.00)A.Private Sub Form 1_Click().End SubB.Private Sub Form_Click().End SubC.Private Sub Command1_Clic
8、k().End SubD.Private Sub Command1_Click().End Sub21.默认情况下,下面声明的数组的元素个数是( )。Dim a(5,-2 To 2)(分数:2.00)A.20B.24C.25D.3022.设有如下程序段:Dim a(10).For Each x ln aPrint x;Next x在上面的程序段中,变量 x 必须是( )。(分数:2.00)A.整型变量B.变体型变量C.动态数组D.静态数组23.设有以下函数过程Private Function Fun(a()As Integer, b As String)As IntegerEnd Functi
9、on若已有变量声明:Dim x(5)as Integer, n As Integer, ch As String则下面正确的过程调用语句是( )。(分数:2.00)A.x(0)=Fun(x, “ch“)B.n=Fun(n, ch)C.Call Fun x, “ch“D.n=Fun(x(5), c24.假定用下面的语句打开文件:Open “File1.Txt“ For Input As #1则不能正确读文件的语句是( )。(分数:2.00)A.Input#1, ch$B.Line Input#1, ch$C.ch$=Input$(5, #1)D.read#1, ch$25.下面程序的执行结果是(
10、 )。Private Sub Command1_Click()a=10For k=1 To 5 Step-1a=a-kNext kPrint a; kEnd Sub(分数:2.00)A.-5 6B.-5 -5C.10 0D.10 126.设窗体上有一个名为 Text1 的文本框和一个名为 Command1 的命令按钮,并有以下事件过程:Private Sub Command1_Click()x!=Val(Text1. Text)Select Case xCase Is-10, Is=20Print “输入错误“Case Is0Print 20-xCase Is10Print 20Case Is
11、=20Print x+10End SelectEnd Sub程序运行时,如果在文本框中输入-5,则单击命令按钮后的输出结果是( )。(分数:2.00)A.5B.20C.25D.输入错误27.设有如下程序Private Sub Command1_Click()x=10: y=0For i=1 To 5Dox=x-2y=y+2Loop Until y5 Or x-1NextEnd Sub运行程序,其中 Do 循环执行的次数是( )。(分数:2.00)A.15B.10C.7D.328.阅读程序:Private Sub Command1_Click()Dim arrDim i As Integerar
12、t=Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)For i=0 To 2Print arr(7-i);NextEnd Sub程序运行后,窗体上显示的是( )。(分数:2.00)A.8 7 6B.7 6 5C.6 5 4D.5 4 329.在窗体上画一个名为 Command1 的命令按钮,然后编写以下程序:Private Sub Command1_Click()Dim a(10)As IntegerFor k=10 To 1 Step-1a(k)=20-2*kNext kk=k+7Print a(k-a(k)End Sub运行程序,单击命令按钮,输出结果是( )
13、。(分数:2.00)A.18B.12C.8D.630.窗体上有一个名为 Command1 的命令按钮,并有如下程序:Private Sub Command1_Click()Dim a(10), x%For k=1 To 10a(k)=Int(Rnd*90+10)x=x+a(k)Mod 2Next kPrint xEnd Sub程序运行后,单击命令按钮,输出结果是( )。(分数:2.00)A.10 个数中奇数的个数B.10 个数中偶数的个数C.10 个数中奇数的累加和D.10 个数中偶数的累加和31.窗体上有一个名为 Command1 的命令按钮和一个名为 Timed 的计时器,并有下面的事件过
14、程:Private Sub Command1_Click()Timer1. Enabled=TrueEndSubPrivate Sub Form_Load()Timer1. Interval=10Timed. Enabled=FalseEnd SubPrivate Sub Timer1_Timer()Command1. Left=Command1. Left+10End Sub程序运行时,单击命令按钮,则产生的结果是( )。(分数:2.00)A.命令按钮每 10 秒向左移动一次B.命令按钮每 10 秒向右移动一次C.命令按钮每 10 毫秒向左移动一次D.命令按钮每 10 毫秒向右移动一次32.
15、设窗体上有一个名为 List1 的列表框,并编写下面的事件过程:Private Sub List1_Click()Dim ch As Stringch=List1. List(List1. ListIndex)List1. RemoveItem List 1. ListIndexList1. AddItem chEnd Sub程序运行时,单击一个列表项,则产生的结果是( )。(分数:2.00)A.该列表项被移到列表的最前面B.该列表项被删除C.该列表项被移到列表的最后面D.该列表项被删除后又在原位置插入33.窗体上有一个名为 Command1 的命令按钮,并有如下程序:Private Sub
16、Command1_Click()Dim a As Integer, b As Integera=8b=12Print fun(a, b); a; bEnd SubPrivate Function Fun(ByVal a As Integer, b As Integer)As Integera=a Mod 5b=b/5Fun=aEnd Function程序运行时,单击命令按钮,则输出结果是( )。(分数:2.00)A.3 3 2B.3 8 2C.8 8 12D.3 8 1234.为了从当前文件夹中读入文件 File1.txt,某人编写了下面的程序:Private Sub Command1_C1i
17、ck()Open “File1.txt“ For Output As #20Do While Not EOF(20)Line Input#20, ch$Print chLoopClose #20End Sub程序调试时,发现存错误,下面的修改方案中正确的是( )。(分数:2.00)A.在 Open 语句中的文件名前添加路径B.把程序中各处的“20”改为“1”C.把 Prim ch 语句改为 Print #20, chD.把 Open 语句中的 Output 改为 Input35.以下程序运行后的窗体如图所示。其中组合框的名称是 Combo1,已有列表框如图所示;命令按钮的名称是 Command
18、1。Private Sub Command 1_Click()If Not Check(Combo1. Text) ThenMsgBox(“输入错误“)Exit SubEnd IfFor k=0 To Combo1. ListCount-1If Combo1. Text=Combo1.List(k)ThenMsgBox(“添加项目失败“)Exit SubEnd IfNext kCombo1. AddItem Combo1. TextMsgBox(“添加项目成功“)End SubPrivate Function Check(ch As String)As Booleann=Len(ch)For
19、k=1 To nc$=UCase(Mid(ch, k, 1)If c“A“ Or c“Z“ ThenCheck=FalseExit FunctionEnd IfNext kCheck=TrueEnd Function(分数:2.00)A.B.C.D.二、填空题(总题数:9,分数:18.00)36.有序线性表能进行二分查找的前提是该线性表必须是 1 存储的。(分数:2.00)填空项 1:_37.一颗二叉树的中序遍历结果为 DBEAFC,前序遍历结果为 ABDECF,则后序遍历结果为 1。(分数:2.00)填空项 1:_38.对软件设计的最小单位(模块或程序单元)进行的测试通常称为 1 测试。(分
20、数:2.00)填空项 1:_39.实体完整性约束要求关系数据库中元组的 1 属性值不能为空。(分数:2.00)填空项 1:_40.在关系 A(S, SN, D) 和关系 B(D, CN, NM)中,A 的主关键字是 S,B 的主关键字是 D,则称 1 是关系A 的外码。(分数:2.00)填空项 1:_41.在窗体上有 1 个名称为 Command1 的命令按钮,并有如下事件过程和函数过程:Private Sub Command1_Click()Dim p As Integerp=m(1)+m(2)+m(3)Print pEnd SubPrivate Function m(n As Intege
21、r)As IntegerStatic s As IntegerFork=1 To ns=s+1Nextm=sEnd Function运行程序,单击命令按钮 Command1 后的输出结果为_。(分数:2.00)填空项 1:_42.在窗体上画 1 个名称为 Command1 的命令按钮,然后编写如下程序:Private Sub Command1_Click()Dim m As Integer, x As IntegerDim flag As Booleanflag=Falsen=Val(InputBox(“请输入任意 1 个正整数“)Do While Not flaga=2flag= (7) D
22、o While flag And a=Int(Sqr(n)If n/a=n/a Thenflag=FalseElse(8) End IfLoopIf Not flag Then n=n+1LoopPrint (9) End Sub(分数:2.00)填空项 1:_43.以下程序的功能是:先将随机产生的 10 个不同的整数放入数组 a 中,再将这 10 个数按升序方式输出。请填空。Private Sub Form_Click()Dim a(10)As Integer, i AS IntegerRandomizei=0Donum=Int(Rnd*90)+10For j=1 To i 检查新产生的随机
23、数是否与以前的相同,相同的无效If num=a(j) ThenExit ForEnd IfNext jIf ji Theni=i+1a(i)= (10) End IfLoop While i10For i=1 To 9For j= (11) To 10If a(i)a(j)Then temp=a(i): a(i)=a(j): (12) Next jNext iFor i=1 To 10Print a(i)Next iEnd Sub(分数:2.00)填空项 1:_44.窗体上已有名称分别为 Dri、,e1、Dir1、Fite1 的驱动器列表框、目录列表框和文件列表框,且有 1个名称为 Text1
24、 的文本框。以下程序的功能是:将指定位置中扩展名为“*.txt”的文件显示在 File1 中,如果双击 File1 中的某个文件,则在 Text1 中显示该文件的内容。请填空。Private Sub Form_Load()File1. Pattern= (13) End SubPrivate Sub Dirt1_Change()File1.Path=Dir1. PathEnd SubPrivate Sub Drive1_Change()Dir1. Path=Drive1. DriveEnd SubPrivate Sub File1_DblClick()Dim s As String *1If
25、Right(File1. Path, 1)=“/“Thenf_name=File1. Path+File1. FileNameElsef_name=File1. Path+“/“+File1. FileNameEnd IfOpen f_name (14) As #1Text1. Text=“Do While (15) s=Input(1, #1)Text1. Text=Tex 1. Text+sLoopClose #1End Sub(分数:2.00)填空项 1:_全国计算机等级考试二级 VISUAL+BASIC 真题 2011 年 3 月答案解析(总分:88.00,做题时间:90 分钟)一、选
26、择题(总题数:35,分数:70.00)1.下列关于栈叙正确的是( )。(分数:2.00)A.栈顶元素最先能被删除 B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.以上三种说法都不对解析:解析 栈是先进后出的线性表,栈顶的元素最先被删除,栈底的元素最后被删除。2.下列叙述中正确的是( )。(分数:2.00)A.有一个以上根结点的数据结构不一定是非线性结构B.只有一个根结点的数据结构不一定是线性结构 C.循环链表是非线性结构D.双向链表是非线性结构解析:解析 在数据结构中,树这类的的数据结构只有一个根结点,但它不是线性结构。3.某二叉树共有 7 个结点,其中叶子结点只有 1 个,则该二叉树
27、的深度为(假设根结点在第 1 层)( )。(分数:2.00)A.3B.4C.6D.7 解析:解析 根据二叉树的性质,度为 0 的结点(即叶子结点)总是比度为 2 的结点多一个。题目中的二叉树的叶子结点为 1,因此度为 2 的结点的数目为 0,因而这个二叉树的深度为 7。4.存软件开发中,需求分析阶段产生的主要文档是( )。(分数:2.00)A.软件集成测试计划B.软件详细设计说明书C.用户手册D.软件需求规格说明书 解析:解析 在软件开发过程中,需求分析阶段产生的主要文档是软件需求规格说明书。5.结构化程序所要求的基本结构不包括( )。(分数:2.00)A.顺序结构B.GOTO 跳转 C.选择
28、(分支)结构D.重复(循环)结构解析:解析 结构化程序的基本结构有:顺序结构、选择结构和循环结构,没有 GOTO 跳转结构。6.下面描述中错误的是( )。(分数:2.00)A.系统总体结构图支持软件系统的详细设计 B.软件设计是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD 图是软件详细设计的表示工具解析:解析 软件设计是将软件需求转换为软件表示的过程;数据结构与数据库设计是软件设计的任务之一;PAD 图,即问题分析图,是一种主要用于描述软件详细设计的图形工具。7.负责数据库中查询操作的数据库语言是( )。(分数:2.00)A.数据定义语言B.数据管理语言
29、C.数据操纵语言 D.数据控制语言解析:解析 负责数据库中查询操作的数据库语言是数据操纵语言。8.一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是( )。(分数:2.00)A.1:1 联系B.1:m 联系C.m:1 联系D.m:n 联系 解析:解析 一个教师可讲授多门课程,一门课程可由多个教师讲授,则实体教师和课程的联系是多对多的联系。9.有三个关系 R、S 和 T 如下( )。(分数:2.00)A.B.C. D.解析:解析 从关系 R、S 和 T 的结构可以得出关系 T 是由关系 R、S 经过除运算后得到的。10.定义无符号整数类为 UInt,下面可以作为类 UI
30、nt 实例化值的是( )。(分数:2.00)A.-369B.369 C.0.369D.整数集合 1,2,3,4,5)解析:解析 UInt 表示的是无符号整数类,所以它的每个实例都是一个无符号整数,所以排除选项 A) 和选项 C) ,选项 D) 是整数集合,所以也排除。11.在 Visual Basic 集成环境中,可以列出工程中所有模块名称的窗口是( )。(分数:2.00)A.工程资源管理器窗口 B.窗体设计窗口C.属性窗口D.代码窗口解析:解析 在 VB 集成环境中,窗体设计窗口简称为窗体(Form),是应用程序最终面向用户的窗口,它对应于应用程序的运行结果。各种图形、图像、数据等都是通过窗
31、体或窗体中的控件显示出来的;在工程资源管理器窗口中,含有建立一个应用程序所需要的文件清单,列出工程中所有模块的名称;属性窗口是用来设置对象(窗体或控件)的属性值;代码窗口用于编辑代码。12.假定编写了如下 4 个窗体事件的事件过程,则运行应用程序并显示窗体后,已经执行的事件过程是( )。(分数:2.00)A.Load B.ClickC.LostFocusD.KeyPress解析:解析 Load 事件在一个窗体被装载时发生,常用于在程序启动时对属性和变量进行初始化,该事件在显示出窗体时已经执行完成,其余的事件均要在窗体显示出来后经过某种动作触发。13.为了使标签具有“透明”的显示效果,需要设置的
32、属性是( )。(分数:2.00)A.CaptionB.AlignmentC.BackStyle D.AutoSize解析:解析 BackStyle 属性用于指出 Shape 或 Labe1 控件的背景样式是透明的还是不透明的。Caption属性用于返回或设置标签的标题;Aligmnent 属性用于设置标签内文本的对齐方式:AutoSize 属性用于设置标签是否随内容改变大小。14.下面可以产生 2030(含 20 和 30)的随机整数的表达式是( )。(分数:2.00)A.Int(Rnd*10+20)B.Int(Rnd*11+20) C.Int(Rnd*20+30)D.Int(Rnd*30+2
33、0)解析:解析 随机数函数 Rnd 的功能是用于产生一个小于 1 但大于或等于 0 的随机数。为了生成某个指定范围内的随机整数,可使用以下公式:Int(upperbound-lowerbound+1)*Rnd+lowerbound),其中 upperbound 是随机整数范围的上限,lowerbound 是随机整数范围的下限。本题中 upperbound 为 30,lowerbound 为 20。15.设窗体上有一个名称为 HS1 的水平滚动条,如果执行了语句:HS1.Value=(HS1.Max-HS1.Min)/2+HS1.Min 则( )。(分数:2.00)A.滚动块处于最左端B.滚动块
34、处于最右端C.滚动块处于中间位置 D.滚动块可能处于任何位置,具体位置取决于 Max、Min 属性的值解析:解析 滚动条通常用来帮助观察数据或确定位置,也可用来作为数据输入的工具。其 Max 属性用于设置或返回滚动条所能表示的最大值,Min 属性用于设置或返回滚动条所能表示的最小值。默认情况下,Max 的值大于 Min 的值,即当滚动块向右移动时,其 Value 属性值增加。如果希望滚动条显示的信息从较大数值向较小数值变化,可将:Min 设置成大于 Max 的值,此时当滚动块向左移动时,其 Value 属性值增加。Max-Min 刚好就是滚动条能表示范围的一半,加上 Min 将会使滚动块位于滚
35、动条中央。16.窗体上有一个名称为 Cb1 的组合框,程序运行后,为了输出选中的列表项,应使用的语句是( )。(分数:2.00)A.Print Cb1. SelectedB.Print Cb1. List(Cb1. ListIndex) C.Print Cb1. Selected. TextD.Print Cb1. List(Listlndex)解析:解析 组合框的属性 ListIndex 返回当前所选项目的索引号,List(Index)属性返回指定索引号的列表项内容,因此返回当前选定的列表项应该刚 Cb1.List(Cb1, ListIndex)。17.为了在窗体上建立 2 组单选按钮,并且
36、当程序运行时,每组都可以有一个单选按钮被选中,则以下做法中正确的是( )。(分数:2.00)A.把这 2 组单选按钮设置为名称不同的 2 个控件数组B.使 2 组单选按钮的 Index 属性分别相同C.使 2 组单选按钮的名称分别相同D.把 2 组单选按钮分别画到 2 个不同的框架中 解析:解析 框架(Frame)是一个容器控件,用于将屏幕上的对象分组,单选按钮(OptionButton)组用于提供多个选项间的唯一选择,因此若要使得每组中都有一个按钮被选中,需要将其使用框架分组。18.如果一个直线控件在窗体上呈现为一条垂直线,则可以确定的是( )。(分数:2.00)A.它的 Y1、Y2 属性的
37、值相等B.它的 X1、X2 属性的值相等 C.它的 X1、Y1 属性的值分别与 X2、Y2 属性的值相等D.它的 X1、X2 属性的值分别与 Y1、Y2 属性的值相等解析:解析 Line 控件有四个属性分别为 X1、Y1,X2、Y2,分别代表两个端点的横坐标和纵坐标,如果显示为一条纵线,则意味着两个端点的横坐标一致,即 X1=X2。19.设 a=2,b=3,c=4,d=5则下面语句的输出是( )。Print 32 * b Or a=c And bc Or cd(分数:2.00)A.False B.1C.TrueD.-1解析:解析 本题考查表达式的优先级。题目中表达式的优先级最高的足函数调用,先
38、进行函数运算,接下来由高到低依次为算术运算符、字符运算符、关系运算符、逻辑运算符。解本题的关键是要记住在逻辑运算中,And 运算的优先级高于 Or。20.窗体 Form1 上有一个名称为 Command1 的命令按钮,以下对应窗体单击事件的事件过程是( )。(分数:2.00)A.Private Sub Form 1_Click().End SubB.Private Sub Form_Click().End Sub C.Private Sub Command1_Click().End SubD.Private Sub Command1_Click().End Sub解析:解析 窗体的单击事件不同
39、于其他控件的单击事件,在事件过程头中不出现窗体名字,而是统一使用 Form_Click()。21.默认情况下,下面声明的数组的元素个数是( )。Dim a(5,-2 To 2)(分数:2.00)A.20B.24C.25D.30 解析:解析 数组中所含有的元素个数为:上界-下界+1,对于二维数组来讲,元素个数为每一维长度的乘积,共含有 6 行、5 列共 30 个元素。22.设有如下程序段:Dim a(10).For Each x ln aPrint x;Next x在上面的程序段中,变量 x 必须是( )。(分数:2.00)A.整型变量B.变体型变量 C.动态数组D.静态数组解析:解析 本题考查
40、 For Each in 的用法。For Each in 是针对一个数组或集合中的每个元素,重复执行一组语句。语法格式:For Each element In groupStatementsNext element注意:element 为必选参数,用于遍历集合或数组中所有元素的变量。对于集合来说,element 可能是一个 Variant 变量、一个通用对象变量或任何特殊对象变量,在本题中应该为变体型变量。group 为必选参数,表示对象集合或数组的名称。statements 为可选参数,针对 group 中的每一项执行的一条或多条语句。23.设有以下函数过程Private Function
41、Fun(a()As Integer, b As String)As IntegerEnd Function若已有变量声明:Dim x(5)as Integer, n As Integer, ch As String则下面正确的过程调用语句是( )。(分数:2.00)A.x(0)=Fun(x, “ch“) B.n=Fun(n, ch)C.Call Fun x, “ch“D.n=Fun(x(5), c解析:解析 在过程定义时如果将其形参定义为数组,则在调用该过程时所赋予的对应实参必须为数组名,而不能是普通变量、数组元素等。Sub 子过程可以使用 Call 关键字来调用,但是 Function 函数
42、过程不可以使用 Call 关键字调用,同时函数过程有一个返回值,可以将其赋值给其他变量或者数组元素。24.假定用下面的语句打开文件:Open “File1.Txt“ For Input As #1则不能正确读文件的语句是( )。(分数:2.00)A.Input#1, ch$B.Line Input#1, ch$C.ch$=Input$(5, #1)D.read#1, ch$ 解析:解析 顺序文件的读操作可以有如下三种形式:Input#语句可从一个顺序文件中读出数据项,并把这些数据项赋给程序变量,其格式为 Input#文件号、变量表。Line Input#语句从顺序文件中读取一个完整的行,并把它
43、赋给一个字符串变量,其格式为 Line Input#文件号,字符串变量。Input$函数可返回从指定文件中读出的包含 n 个字符的字符串,其格式为 Input$(n,#文件号)。25.下面程序的执行结果是( )。Private Sub Command1_Click()a=10For k=1 To 5 Step-1a=a-kNext kPrint a; kEnd Sub(分数:2.00)A.-5 6B.-5 -5C.10 0D.10 1 解析:解析 For 循环也称为 ForNext 循环或计数循环。通常用于循环次数已知的情况,其格式为:For循环变量=初值To终值Step步长循环体Exit F
44、orNext循环变量,循环变量格式中的初值、终值和步长均为数值表达式,但其值不一定是整数,可以是实数,Visual Basic 会自动取整。执行过程中,循环次数=Int(终值-初值)/步长+1,但是若循环次数计算为负数,则意味着循环不合法,循环将一次也不会执行,但循环变量 k 会被赋予初值 1。26.设窗体上有一个名为 Text1 的文本框和一个名为 Command1 的命令按钮,并有以下事件过程:Private Sub Command1_Click()x!=Val(Text1. Text)Select Case xCase Is-10, Is=20Print “输入错误“Case Is0Pr
45、int 20-xCase Is10Print 20Case Is=20Print x+10End SelectEnd Sub程序运行时,如果在文本框中输入-5,则单击命令按钮后的输出结果是( )。(分数:2.00)A.5B.20C.25 D.输入错误解析:解析 多分支控制结构又称为 Select Case 语句或 Case 语句,可以同时对条件的多个取值来判断。其格式为:Select Case测试表达式Case 表达式列表 1语句块 1Case Else语句块 nEnd SelectCase 语句以 Select Case 开头,以 End Select 结束。其中,表达式列表 1,表达式列表
46、 2,称为域值。可采用 3 种形式:表达式 1,表达式 2.;表达式 1 To 表达式 2:Is 关系运算表达式。其中,可使用的运算符有等于(=)、不等于(、小于()、大于()、小于或等于(=)、大于或等于(=)。27.设有如下程序Private Sub Command1_Click()x=10: y=0For i=1 To 5Dox=x-2y=y+2Loop Until y5 Or x-1NextEnd Sub运行程序,其中 Do 循环执行的次数是( )。(分数:2.00)A.15B.10C.7 D.3解析:解析 本题是一个二重循环问题,需要认真分析每一次循环。当外循环执行第一次时,x 的初
47、值为 10,y 的初值为 0,内部的 Do 循环执行 3 次后由于不满足循环条件而退出;在外循环执行第二次时,由于 Do 循环的判断条件在 Loop 之后,所以会执行一次 Do 循环而后退出;以此类推,外循环的后 4 次循环过程中,内部的 Do 循环都仅仅执行一次,所以 Do 循环总的循环次数为 7 次。28.阅读程序:Private Sub Command1_Click()Dim arrDim i As Integerart=Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)For i=0 To 2Print arr(7-i);NextEnd Sub程序运行后,窗
48、体上显示的是( )。(分数:2.00)A.8 7 6B.7 6 5 C.6 5 4D.5 4 3解析:解析 由于在声明数组时没有声明下界,因此默认下界为 0,其后的 Array 函数为数组元素赋予了初值,接下来就是找出输出的元素,应该为 arr(7)、arr(6)和 arr(5)。29.在窗体上画一个名为 Command1 的命令按钮,然后编写以下程序:Private Sub Command1_Click()Dim a(10)As IntegerFor k=10 To 1 Step-1a(k)=20-2*kNext kk=k+7Print a(k-a(k)End Sub运行程序,单击命令按钮,输出结果是( )。(分数:2.00)A.18 B.12C.8D.6解析:解析 本题需要清楚两点:数组中每一项的值以及最后输出语句中 k 的值。根据循环的特点,可知数组中 a(1)的值为 18,a(2)的值为 16,后面的依次比前一个元素减 2。在退出循环时必然是循环变量不满足循环条件,即 k=0,故此实际最后输出的是 a(1)的值。30.窗体上有一个名为 Command1 的命令按钮,并有如下程序:Private Sub Command1_Click()Dim a(10), x%For k=1 To 10a(k)=Int(