1、二级公共基础知识-73 及答案解析(总分:100.00,做题时间:90 分钟)一、B单项选择题/B(总题数:54,分数:100.00)1.请阅读程序:Sub subp(b() As Integer)For i=1 To 4b(i)=2*iNextEnd SubPrivate Sub Command1_Click()Dim a(1 To 4)As Integera(1)=5:a(2)=6:a(3)=7:a(4)=8subp a()For i=1 To 4Print a(i)NextEnd Sub运行上面的程序,单击命令按钮,则输出结果是_。 A.2 4 6 8 B.5 6 7 8 C.10 12
2、 14 16 D.出错(分数:2.00)A.B.C.D.2.Fibonacci 数列的规律是:前 2 个数为 1,从第 3 个数开始,每个数是它前 2 个数之和,即:1,1,2,3,5,8,13,21,34,55,89,。某人编写了下面的函数,判断大于 1 的整数 x 是否是Fibonacci 数列中的某个数,若是,则返回 True,否则返回 False。Function Isfab(x As Integer)As BooleanDim a As Integer, b As Integer, c As Integer, flag As Booleanflag=Falsea=1:b=1Do Wh
3、ile xbc=a+b:a=b:b=cIf x=b Then flag=TrueLoopIsfab=flagEnd Function测试时发现对于所有正整数 x,函数都返回 False,程序需要修改。下面的修改方案中正确的是_。 A.把 a=b 与 b=c 的位置互换 B.把 c=a+b 移到 b=c 之后 C.把 Do While xb 改为 Do While xb D.把 If x=b Then flag=True 改为 If x=a Then flag=True(分数:2.00)A.B.C.D.3.请阅读程序:Option Base 1Private Sub Form_Click()Di
4、m art(4,4)As IntegerFor i=1 To 4For j=1 To 4arr(i,j)=(i-1)*2+jNextNextFor i=3 To 4For j=3 To 4Print arr(j,i);Next jPrintNextEnd Sub程序运行后,单击窗体,则输出结果是_。 A.5 7 6 8 B.6 8 7 9 C.7 9 8 10 D.8 10 8 11(分数:2.00)A.B.C.D.4.下面正确使用动态数组的是_。 A.Dim arr() As Integer . ReDim arr(3,5) B.Dim arr() As Integer . ReDim ar
5、t(50) As String C.Dim arr() . ReDim arr(50) As Integer D.Dim arr(50) As Integer . ReDim arr(20)(分数:2.00)A.B.C.D.5.若在窗体模块的声明部分声明了如下自定义类型和数组:Private Type recCode As IntegerCaption As StringEnd TypeDim arr(5) As rec则下面的输出语句中正确的是_。 A.Print arr.Code(2),air.Caption(2) B.Print arr.Code,arr.Caption C.Print
6、arr(2).Code,arr(2).Caption D.Print Code(2),Caption(2)(分数:2.00)A.B.C.D.6.窗体上有一个名称为 Option1 的单选按钮数组,程序运行时,当单击某个单选按钮时,会调用下面的事件过程:Private Sub Option1_Click(Index As Integer).End Sub下面关于此过程的参数 Index 的叙述中正确的是_。 A.Index 为 1 表示单选按钮被选中,为 0 表示未选中 B.Index 的值可正可负 C.Index 的值用来区分哪个单选按钮被选中 D.Index 表示数组中单选按钮的数量(分数:
7、2.00)A.B.C.D.7.下面程序运行时,若输入“Visual Basic Programming”,则在窗体上输出的是_。Privae Sub Command1_Click()Dim count(25) As Integer,ch As Stringch=UCase(InputBox(“请输入字母字符串“)For k=1 To Len(ch)n=Asc(Mid(ch,k,1)-Asc(“A“)If n=0 Thencount(n)=count(n)+1End IfNext km=count(0)For k=1 To 25If mcount(k)Thenm=count(k)End IfNe
8、xt kPrint mEnd Sub A.0 B.1 C.2 D.3(分数:2.00)A.B.C.D.8.有下面的程序段,其功能是按图 1 所示的规律输出数据_。Dim a(3,5) As IntegerFor i=1 To 3For j=1 To 5a(i,j)=i+jPrint a(i,j);NextPrintNext若要按图 2 所示的规律继续输出数据,则接在上述程序段后面的程序段应该是_。(分数:2.00)A.B.C.D.9.窗体上有一个名为 Command1 的命令按钮,并有下面的程序:Private Sub Command1_Click() Sub prog(a()As Integ
9、er)Dim arr(5) As Integer n=UBound(a)For k=1 To 5 For i=n To 2 step-1arr(k)=k For i=1 To n-1Next k if a(j)a(j+1) ThenProg arr() t=a(j):a(j)=a(j+1):a(j+1)=tFork=1 To 5 End IfPrint arr(k); Next jNext k Next iEnd Sub End Sub程序运行时,单击命令按钮后显示的是_。 A.1 2 3 4 B.5 4 3 2 1 C.0 1 2 3 4 D.4 3 2 1 0(分数:2.00)A.B.C.
10、D.10.在窗体上画 1 个命令按钮,并编写如下事件过程:Private Sub Command_Click()Dim a(3,3)For m=1 To 3For n=1 To 3If n=m Or n=4-m Thena(m,n)=m+nElsea(m,n)=0End IfPrint a(m,n);Next nPrintNext mEnd Sub运行程序,单击命令按钮,窗体上显示的内容为_。 A.2 0 0 0 4 0 0 0 6 B.2 0 4 0 4 0 4 0 6 C.2 3 0 3 4 0 0 0 6 D.2 0 0 0 4 5 0 5 6(分数:2.00)A.B.C.D.11.语句
11、 Dim a(-3 To 4,3 To 6)As Integer 定义的数组的元素个数是_。 A.18 B.28 C.21 D.32(分数:2.00)A.B.C.D.12.假定通过复制、粘贴操作建立了一个命令按钮数组 Command1,以下说法中错误的是_。 A.数组中每个命令按钮的名称(Name 属性)均为 Command1 B.若未做修改,数组中每个命令按钮的大小都一样 C.数组中各个命令按钮使用同一个 Click 事件过程 D.数组中每个命令按钮的 Index 属性值都相同(分数:2.00)A.B.C.D.13.在窗体上画一个命令按钮,名称为 Command1,然后编写如下代码:Opti
12、on Base 0Private Sub Command1_Click()Dim A1 (4) As Integer, A2 (4) As IntegerFor k=0 To 2A1 (k+1)=InputBox(“请输入一个整数“)A2 (3-k)=A1(k+1)Next kPrint A2(k)End Sub程序运行后,单击命令按钮,在输入对话框中依次输入 2、4、6,则输出结果为_。 A.0 B.1 C.2 D.3(分数:2.00)A.B.C.D.14.窗体上有 Command1、Command2 两个命令按钮。现编写以下程序:Option Base 0Dim a() As Intege
13、r, m As IntegerPrivate Sub Command1_Click()m=InputBox(“请输入一个正整数“)ReDim a(m)End SubPrivate Sub Command2_Click()m=InputBox(“请输入一个正整数“)ReDim a(m)End Sub运行程序时,单击 Command1 后输入整数 10,再单击 Command2 后输入整数 5,则数组 a 中元素的个数是_。 A.5 B.6 C.10 D.11(分数:2.00)A.B.C.D.15.在窗体画一个名为 Command1 的命令按钮,然后编写以下程序:Private Sub Comma
14、nd1_Click()Dim M(10)As IntegerFor k=1 To 10M(k)=12-kNext kx=8Print M(2+M(x)End Sub运行程序,单击命令按钮,在窗体上显示的是_。 A.6 B.5 C.7 D.8(分数:2.00)A.B.C.D.16.在窗体画一个名为 Command1 的命令按钮,然后编写如下代码:Option Base 1Private Sub Command1_Click()Dim aa=Array(1,2,3,4):j=1For i=4 To 1 Step-1s=s+a(i)*j:j=j*10Next iPrint sEnd Sub运行上面的
15、程序,其输出结果是_。 A.1234 B.12 C.34 D.4321(分数:2.00)A.B.C.D.17.若窗体中已经有若干个不同的单选按钮,要把它们改为一个单选按钮数组,在属性窗口中需要且只需要进行的操作是_。 A.把所有单选按钮的 Index 属性改为相同值 B.把所有单选按钮的 Index 属性改为连续的不同值 C.把所有单选按钮的 Caption 属性值改为相同 D.把所有单选按钮的名称改为相同,且把它们的 Index 属性改为连续的不同值(分数:2.00)A.B.C.D.18.若在某窗体模块中有下列事件过程:Private Sub Command1_Click(Index As
16、Integer).End Sub则下列叙述中正确的是_。 A.此事件过程与不带参数的事件过程没有区别 B.有 1 个名称为 Command1 的窗体,单击此窗体则执行此事件过程 C.有 1 个名称为 Command1 的控件数组,数组中有多个不同类型控件 D.有 1 个名称为 Command1 的控件数组,数组中有多个相同类型控件(分数:2.00)A.B.C.D.19.在窗体上面 1 个名称为 Command1 的命令按钮,然后编写下列事件过程:Option Base 1Private Sub Command1_Click()Dim a(5,5)As IntegerFor i=1 To 5Fo
17、r j=1 To 5a(i,j)=(i+j)*5/10Next j,is=0For i=1 To 5s=s+a(i,i)Next iPrint sEnd Sub程序运行后,单击命令按钮,输出结果是_。 A.15 B.13 C.11 D.9(分数:2.00)A.B.C.D.20.在窗体画 2 个命令按钮,名称分别为 Command1、Command2,然后编写下列事件过程:Const n=5, m=4Dim a(m, n)Private Sub Command1_Click()k=1For i=1 To mFor j=1 To na(i,j)=k:k=k+1Next j,iEnd SubPriv
18、ate Sub Command2_Click()summ=0For i=1 To mFor j=1 To nIf i=1 Or i=m Thensumm=summ+a(i,j)ElseIf j=1 Or j=n Thensumm=summ+a(i,j)End IfEnd IfNext j,iPrint sumEnd Sub过程 Command1_Click()的作用是在二维数组 a 中存放 1 个 m 行 n 列的矩阵;过程 Command2_Click()的作用是_。 A.计算矩阵外围一圈元素的累加和 B.计算矩阵除外围一圈以外的所有元素的累加和 C.计算矩阵第 1 列和最后一列元素的累加和
19、 D.计算矩阵第 1 行和最后一行元素的累加和(分数:2.00)A.B.C.D.21.命令按钮 Command1 的单击事件过程的代码下列:Private Sub Command1_Click()Dim a(3,3)As IntegerFor i=1 To 3For j=1 To 3a(i,j)=i*j+iNext j,iSum=0For i=1 To 3Sum=Sum+a(i,4-i)Next iPrint SumEnd Sub运行程序,单击命令按钮,输出结果是_。 A.20 B.7 C.16 D.17(分数:2.00)A.B.C.D.22.下面声明数组的语句中正确的是_。 A.Dim A3
20、,4As Integer B.Dim A(3,4)As Integer C.Dim A3;4As Integer D.Dim A(3;4)As Integer(分数:2.00)A.B.C.D.23.在 Dim b(-2 to 4)as string 语句中定义了一个数组,则数组 b 的元素个数是_个。 A.2 B.4 C.6 D.7(分数:2.00)A.B.C.D.24.语句 Dim M(0 To 5,0 To 6)As Integer 定义的数组个数是_。 A.11 B.42 C.30 D.36(分数:2.00)A.B.C.D.25.窗体上有一个命令按钮,命令按钮的单击事件过程如下。运行程序
21、后,单击命令按钮,输出结果是_。Private Sub Command1_Click()Dim aa=Array(1,2,3,4,5)For k=1 To 4s=s+a(k)Next kPrint sEnd Sub A.10 B.14 C.15 D.120(分数:2.00)A.B.C.D.26.在窗体上有一个名称为 Command1 的命令按钮,并编写有如下事件过程:Option Base 1Private Sub Command1_Click()Dim city As Variantcity=Array(“北京“,“天津“,“上海“,“重庆“)Print city(1)End Sub程序运行
22、后,如果单击命令按钮,则在窗体上显示的内容是_。 A.空白 B.错误提示 C.北京 D.天津(分数:2.00)A.B.C.D.27.下列程序段的执行结果为_。Dim A(5)For I=1 To 5A=I*INext IPrint A(I-1) A.5 B.25 C.0 D.16(分数:2.00)A.B.C.D.28.要定义一个数组 a,并给它赋值,然后将该数组的最后一个元素的值赋予变量 b,则下列程序正确的是_。 A.Dim a(5) as integer For i=0 to 5 a(i)=i+1 Next i b=a5 B.Dim a(5) as integer For i=0 to 5
23、 a(i)=i+1 Next i b=a5 C.Dim a(5) as integer For i=0 to 5 a(i)=i+1 Next i D.Dim a(5) as integer For i=0 to 5 a(i)=i+1 Next i b=a b=a(5)(分数:2.00)A.B.C.D.29.在窗体上有一个由三个单选按钮组成的控件数组,名为 chkOption。则用于标识各个控件数组元素的参数是_。 A.Tag B.Index C.ListIndex D.Name(分数:2.00)A.B.C.D.30.在窗体上有一个容器控件(如框架),要在容器控件中创建一个命令按钮数组,以下操作
24、正确的是_。 A.依次单击工具箱中的命令按钮,再在容器中画出按钮即可 B.在容器上画出按钮,选中该按钮,复制、粘贴,并回答创建控件数组,再重复粘贴 C.在容器上画出按钮,选中该按钮,复制,再选择容器,粘贴,并回答创建控件数再重复粘贴 D.在容器上画出一个按钮,按下 Ctrl 键,同时拖动按钮到容器中的另一个位置(分数:2.00)A.B.C.D.31.在窗体上有一个名称为 Command1 的命令按钮,并编写有如下程序:Private Sub Command1_Click()Dim I As Integer,J As IntegerDim a(10,10)As IntegerFor I=1 To
25、 3For J=1 To 3a(I,J)=(I-1)*3+JPrint a(I,J);Next JPrintNext IEnd Sub程序运行后,单击命令按钮,窗体上显示的是_。 A.1 2 3 2 4 6 3 6 9 B.2 3 4 3 4 5 4 5 6 C.1 4 7 2 5 8 3 6 9 D.1 2 3 4 5 6 7 8 9(分数:2.00)A.B.C.D.32.执行以下程序,在窗体上输出_。Private Sub Command1_Click()Dim a(20)For j=1 To 20 Step 2a(j)=jNext jPrint a(1)+a(2)+a(3)End Sub
26、 A.4 B.5 C.6 D.7(分数:2.00)A.B.C.D.33.下面的程序运行时,单击窗体后,窗体上显示的结果是_。Private Sub Form_Click()Dim a(1 To 6) As IntegerDim min1%,i%,j%,n%,t%,k%a(1)=8:a(2)=6:a(3)=9a(4)=3:a(5)=2:a(6)=7n=6For i=1 To n-1min1=iFor j=i+1 To nIf a(j)a(min1)Then min1=jNext jt=a(i):a(i)=a(min1):a(min1)=tNext iFor i=1 To nPrint a(i)N
27、ext iEnd Sub A.9 8 7 6 3 2 B.2 3 6 7 8 9 C.9 8 7 6 3 D.2 3 6 7 8(分数:2.00)A.B.C.D.34.在窗体上建立一个命令控件数组 Command1,并双击第一个命令按钮,编写如下事件过程:Private Sub Command1_Click(Index As Integer)Command1(Index).Caption=Format$(Now,“hh:mm:ss“)End Sub以下描述正确的是_。 A.当单击某个命令按钮时,数组中所有命令按钮的 Caption 属性将被设置为当前时间 B.当单击某个命令按钮时,该按钮的 C
28、aption 属性将被设置为当前时间 C.程序有错误 D.窗体的 Caption 属性将被设置为当前时间(分数:2.00)A.B.C.D.35.在窗体上画 4 个文本框,并用这 4 个文本框建立一个控件数组,名称为 Text1(下标从 0 开始,自左至右顺序增大),然后编写如下事件过程:Private Sub Command1_Click()For Each TextBox In Text1Text1(i)=Text1(i).Indexi=i+1NextEnd Sub程序运行后,单击命令按钮,4 个文本框中显示的内容分别为_。 A.0 1 2 3 B.1 2 3 4 C.0 1 3 2 D.出
29、错信息(分数:2.00)A.B.C.D.36.在窗体上画一个名称为 Text1 的文本框,然后画 3 个单选按钮,并用这 3 个单选按钮建立一个名为Option1 的控件数组,程序运行后,如果单击某个单选按钮,则文本框中的字体根据所选择的单选按钮切换,如图所示。请选择适合空白处的语句_。(分数:2.00)A.B.C.D.37.若有下列程序:Private Sub Form_Click()Dim aa=Array(“李军“,“刘梅“,“李鹏“,“李白“)For i=LBound(a,1)To UBound(a,1)If Left(a(i),1)=“李“Then Print a(i);Next i
30、End Sub运行时输出的结果是_。 A.李军 B.李军李鹏李白 C.出错信息 D.李军刘梅李鹏李白(分数:2.00)A.B.C.D.38.在窗体上画一个命令按钮,其名称为 Command1,然后编写如下事件过程:Private Sub Command1_Click()Dim a$,b$,c$,k%a=“ABCD“:b=“123456“:c=“k=1Do While k=Len(a) Or k=Len(b)If k=Len(a) Thenc=c m=m+1For j=1 To iPrint “*“;Next jPrintNext iEnd Sub程序运行后,单击窗体,则输出结果是_。 A.1*
31、 2* 3* 4* B.4* 3* 2* 1* C.* * * * D.* * * *(分数:1.50)A.B.C.D.40.在窗体上画一个命令按钮(其名称为 Command1),然后编写如下代码:Private Sub Command1_Click()Dim aa=Array(1,2,3,4)1=3:j=1Do While i=0s=s+a(i)*ji=i-1:j=j*10LoopPrint sEnd Sub运行上面的程序,单击命令按钮,则输出结果是_。 A.4321 B.123 C.234 D.1234(分数:1.50)A.B.C.D.41.在窗体上画一个命令按钮和两个文本框,其名称分别为
32、 Command1、Text1 和 Text2,在属性窗口中把窗体的 KeyPreview 属性设置为 True,然后编写如下程序:Dim S1 As String, S2 As StringPrivate Sub Form_Load()Text1.Text=“:Text2.Text=“:Text1.Enabled=False:Text2.Enabled=FalseEnd SubPrivate Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)S2=S2 mumbEnd Sub连续 3 次调用 vat dim 过程,第 3 次调用时的输
33、出是_。 A.2 1 B.2 3 C.6 1 D.6 3(分数:1.50)A.B.C.D.44.设有以下函数过程:Function fun(a As Integer,_b As Integer)Dim c AS IntegerIf ab Thenc=a:a=b:b=cEnd Ifc=0DOc=c+aLoop Until C Mod b=0fun=cEnd Function若调用函数 fun 时的实际参数都是自然数,则函数返回的是_。 A.a、b 的最大公约数 B.a、b 的最小公倍数 C.a 除以 b 的余数 D.a 除以 b 的商的整数部分(分数:1.50)A.B.C.D.45.下列关于函数
34、过程的叙述中,正确的是_。 A.函数过程形参的类型与函数返回值的类型没有关系 B.在函数过程中,过程的返回值可以有多个 C.当数组作为函数过程的参数时,既能以传值方式传递,又能以传址方式传递 D.如果不指明函数过程参数的类型,则该参数没有数据类型(分数:1.50)A.B.C.D.46.下列关于过程及过程参数的描述中,错误的是_。 A.过程的参数可以是控件名称 B.调用过程时使用的实参的个数应与过程形参的个数相同 C.只有函数过程能够将过程中处理的信息返回到调用程序中 D.窗体可以作为过程的参数(分数:1.50)A.B.C.D.47.在窗体上画两个标签和一个命令按钮,其名称分别为 Label1、
35、Label2 和 Command1,然后编写如下程序:Private Sub func(L As Label)L.Caption=“1234“End SubPrivate Sub Form_Load()Label1.Caption=“ABCDE“:Label2.Caption=10End SubPrivate Sub Command1_Click()a=Val(Label2.Caption):Call func(Label1):Label2.Caption=aEnd Sub程序运行后,单击命令按钮,则在两个标签中显示的内容分别为_。 A.ABCD 和 10 B.1234 和 100 C.ABC
36、D 和 100 D.1234 和 10(分数:1.50)A.B.C.D.48.在窗体上画一个命令按钮(名称为 Command1),并编写如下代码:Function Fun1(ByVal a As Integer, b As Integer)As IntegerDim t As Integert=a-b:b=t+a:Fun1=t+bEnd FunctionPrivate Sub Command1_Click()Dim x As Integerx=10Print Fun1(Fun1(x,(Fun1(x,x-1),x-1)End Sub程序运行后,单击命令按钮,输出结果是_。 A.10 B.0 C.
37、11 D.21(分数:1.50)A.B.C.D.49.下列叙述中错误的是_。 A.在通用过程中,多个形式参数之间可以用逗号作为分隔符 B.在 Print 方法中,多个输出项之间可以用逗号作为分隔符 C.在 Dim 语句中,所定义的多个变量可以用逗号作为分隔符 D.当一行中有多个语句时,可以用逗号作为分隔符(分数:1.50)A.B.C.D.50.下列关于过程及过程参数的描述中,错误的是_。 A.调用过程时可以用控件名称作为实际参数 B.用数组作为过程的参数时,使用的是“传地址”方式 C.只有函数过程能够将过程中处理的信息传回到调用的程序中 D.窗体(Form)可以作为过程的参数(分数:1.50)
38、A.B.C.D.51.假定有以下函数过程: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在窗体上画一个命令按钮,然后编写如下事件过程:Private Sub Command1_Click()Dim Str1 As String,Str2 As StringStr1=InputBox(“请输入一个字符串“):Str2=Fun(Str1)Print Srt2End Sub程序运行后,单击命令按钮,如果在输入对话框中输入字
39、符串“abcdefg”,则单击“确定”按钮后在窗体上的输出结果为_。 A.ABCDEFG B.abcdefg C.GFEDCBA D.gfedcba(分数:1.50)A.B.C.D.52.在窗体上画一个名称为 Command1 的命令按钮,再画两个名称分别为 Label1、Label2 的标签,然后编写如下程序代码:Private X As IntegerPrivate Sub Command1_Click()X=5:Y=3Call proc(X,Y)Label1.Caption=X;Label2.Caption=YEnd SubPrivate Sub proc(a As Integer,By
40、Val b As Integer)X=a*a;Y=b+bEnd Sub程序运行后,单击命令按钮,则两个标签中显示的内容分别是_。 A.25 和 3 B.5 和 3 C.25 和 6 D.5 和 6(分数:1.50)A.B.C.D.53.窗体上有一个名称为 Picture1 的图片框控件,一个名称为 Label1 的标签控件,如图所示。(分数:1.50)A.B.C.D.54.为达到把 a、b 中的值交换后输出的目的,某人编程如下:Private Sub Command1_Click()a%=10:b%=20Call swap(a,b):Print a,bEnd SubPrivate Sub sw
41、ap(ByVal a As Integer,ByVal b As Integer)c=a:a=b:b=cEnd Sub在运行时发现输出结果错了,需要修改。下面列出的错误原因和修改方案中正确的是_。 A.调用 swap 过程的语句错误,应改为 Call swap a,b B.输出语句错误,应改为 Print“a“,“b“ C.过程的形式参数有错,应改为 swap(ByRef a As Integer,ByRef b As Integer) D.swap 中 3 条赋值语句的顺序是错误的,应改为 a=b:b=c:c=a(分数:2.00)A.B.C.D.二级公共基础知识-73 答案解析(总分:100
42、.00,做题时间:90 分钟)一、B单项选择题/B(总题数:54,分数:100.00)1.请阅读程序:Sub subp(b() As Integer)For i=1 To 4b(i)=2*iNextEnd SubPrivate Sub Command1_Click()Dim a(1 To 4)As Integera(1)=5:a(2)=6:a(3)=7:a(4)=8subp a()For i=1 To 4Print a(i)NextEnd Sub运行上面的程序,单击命令按钮,则输出结果是_。 A.2 4 6 8 B.5 6 7 8 C.10 12 14 16 D.出错(分数:2.00)A. B
43、.C.D.解析:考点 数组 解析 数组作为过程参数时只能通过传地址的方式来调用,即实参的变化会影响到形参。本题中在命令按钮的 Click 事件中首先为数组 a 依次赋值,然后以数组 a 为参数调用过程 Subp,在 Subp 过程中将形参数组 b 重新赋值,这个操作也同时影响了形参 a,因此,逐行输出 2、4、6、8。2.Fibonacci 数列的规律是:前 2 个数为 1,从第 3 个数开始,每个数是它前 2 个数之和,即:1,1,2,3,5,8,13,21,34,55,89,。某人编写了下面的函数,判断大于 1 的整数 x 是否是Fibonacci 数列中的某个数,若是,则返回 True,
44、否则返回 False。Function Isfab(x As Integer)As BooleanDim a As Integer, b As Integer, c As Integer, flag As Booleanflag=Falsea=1:b=1Do While xbc=a+b:a=b:b=cIf x=b Then flag=TrueLoopIsfab=flagEnd Function测试时发现对于所有正整数 x,函数都返回 False,程序需要修改。下面的修改方案中正确的是_。 A.把 a=b 与 b=c 的位置互换 B.把 c=a+b 移到 b=c 之后 C.把 Do While
45、xb 改为 Do While xb D.把 If x=b Then flag=True 改为 If x=a Then flag=True(分数:2.00)A.B.C. D.解析:考点 函数的返回值 解析 在本题中通过分析题干中的程序可以看出,函数的返回值就是变量flag 的值。错误现象是无论输入哪个正整数均会返回 False,这就代表着没有执行循环,直接输出的就是变量 flag 的初值 False。进一步分析可以看出,由于 b 的初值为 1,而任何正整数均不会小于 1,所以永远无法满足循环条件从而进入循环,因此需要将条件 xb 改为 xb。3.请阅读程序:Option Base 1Privat
46、e Sub Form_Click()Dim art(4,4)As IntegerFor i=1 To 4For j=1 To 4arr(i,j)=(i-1)*2+jNextNextFor i=3 To 4For j=3 To 4Print arr(j,i);Next jPrintNextEnd Sub程序运行后,单击窗体,则输出结果是_。 A.5 7 6 8 B.6 8 7 9 C.7 9 8 10 D.8 10 8 11(分数:2.00)A.B.C. D.解析:考点 二维数组 解析 本题是有关二维数组的处理,在第一个二重循环中为二维数组 arr 赋初值,复制后的 arr 数组中的数据为: 1
47、 2 3 4 3 4 5 6 5 6 7 8 7 8 9 10 在第二个循环中输出数组的部分值,注意到在输出的值为 arr(j,i),因此为 C 选项。4.下面正确使用动态数组的是_。 A.Dim arr() As Integer . ReDim arr(3,5) B.Dim arr() As Integer . ReDim art(50) As String C.Dim arr() . ReDim arr(50) As Integer D.Dim arr(50) As Integer . ReDim arr(20)(分数:2.00)A. B.C.D.解析:考点 动态数组 解析 通常把需要在编译时分配内存区的数组叫做静态数组,而把需要在运行时分配内存区的数组叫做动态数纽。定义动态数组通常分两步:首先在窗体层或标准模块中用Dim、Private 或 Public 声明一个没有下标的数组(括号不能省略),然后在过程中用