阅读程序 SUB P(B( ) AS INTEGER)FOR I=1 TO 4 B(I) =2*INEXT IEND SUBPRIVATE SUB COMMAND1_CLI

题目

阅读程序 SUB P(B( ) AS INTEGER) FOR I=1 TO 4 B(I) =2*I NEXT I END SUB PRIVATE SUB COMMAND1_CLICK( ) DIM A( 1 TO 4) AS INTEGER A(1)=5 A(2) =6 A(3) =7 A(4) =8 P A( ) FOR I = 1 TO 4 MSGBOX A(I) NEXT I END SUB 运行上面的程序,单击命令按钮COMMAND1后,消息框4次输出的内容分别是( )。

A.出错

B.10, 12, 14, 16

C.5, 6, 7, 8

D.2, 4, 6, 8

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

( 26 )有以下程序:

Sub subP(b() As Integer)

For i = 1 To 4

b(i) = 2 * i

Next i

End Sub

Private Sub Command1_Click()

Dim a(1 To 4) As Integer

a(1) = 5

a(2) = 6

a(3) = 7

a(4) = 8

subP a()

For i = 1 To 4

Print a(i)

Next i

End Sub

运行上面的程序,单击命令按钮,输出结果为

A ) 2

4

6

8

B ) 5

6

7

8

C ) 10

12

14

16

D ) 出错


正确答案:A

第2题:

有如下程序:

Private Sub Command1_Click()

Dim k As Integer, m As Integer

Dim p As Integer

k=4: m=1

p=PC(k, m) : Print p;

p=PC(k, m) : Print p

End Sub

Private Function PC(a As Integer, b As Integer)

Static m As Integer, i As Integer

m=0: i=2

i=i + m + 1

m=i + a + b

PC=m

End Function

程序运行后,输出的结果为( )。

A.4 6

B.6 6

C.8 8

D.10 12


正确答案:C

第3题:

有以下程序:

Sub subp(b()As Integer)

For i=1To4

b(i)=2-i

Next i

End Sub

Private Sub Command1_Click()

Dim a (1 To 4)As Integer

A) (1)=5

A) (2)=6

A) (3)=7

A) (4)=8

subpa()

For i=1 To4

Print a (i)

Next i

End Sub

运行上面的程序,单击命令按钮,输出结果为( )。 A.2 4 6 8

B.5 6 7 8

C.10 12 14 16

D.出错


正确答案:A
 Sub 过程的调用,注意变量的作用域: 
Dim a(1 To 4) As Integer 
a(1)=5
a(2)=6
a(3)=7
a(4)=8
语句是在过程内部定义的,属于局部变量,只在定义它的过程中使用,所以运行结果不受以上程序段的影响。

第4题:

下面程序段的运行结果是【 】。

Option Base 1

Private Sub Swap (a() As Integ

For I=1 to 10\2

t=a(I)

a(I)=a(10-I+1)

a(10-I+1)=t

Next I

End Sub

Private Sub Form_Click()

Dim x(10) As Integer

For I=1 to 10

x(I)=I*2

Next I

Swap x()

For I=1 to 10

Print x(I)

Next I

End Sub


正确答案:20 18 16 14 12 10 8 6 4 2
20 18 16 14 12 10 8 6 4 2 解析:本题考查考生数组虚实结合的问题,在该事件过程中,定义并生成了x数组,该数组共10个元素,分别是 2 4 6 8 10 12 14 16 18 20,接着使用了不带Call的调用语句,实际参数和虚拟参数都是数组,是地址传送,在过程中访问的数组就是事件过程中的x数组。在该过程中,将数组的第一个元素和最后一个元素交换位置,依此类推,返回事件过程后输出交换后的数组全部元素。

第5题:

阅读程序: Sub p( b () As Integer)For i =1To 4 b(i) = 2(iNext i End Sub Private Sub Command1_Click()Dim a (1 To 4) As Integer a(1)=5 a(2)=6 a(3)=7 a(4)=8 call p (a) For i=1 To 4 Print a(i) Next iEnd Sub运行上面的程序,单击命令按钮,输出结果为。


正确答案:2 4 6 8
【解析】本题综合考查Sub过程的建立与调用以及数组的赋值。P过程为参数b()赋值,赋值方法为b()中的元素值等于其下标的2倍。在事件过程中,数组a(1 to 4)先被逐一赋值,然后以传地址的方式被p过程调用。在调用中,a(i)被重新按照p过程的赋值方式(即元素值等于对应下标值的2倍)赋值。由于是以传地址的方式传送a(1 to 4),故在调用完p过程后,a(1 to 4),故在调用完p过程后,a(1 to 4)中的元素值将保留,故空白处填:2 4 6 8。

第6题:

在窗体上画一个命令按钮,然后编写如下事件过程:

Sub BTC(oldCopy() As Integer, newCopy() As Integer)

Dim i As Integer

For i=LBound(oldCopy() ) To UBound(oldCopy() )

newCopy(i) =oldCopy(i)

Next i

End Sub

Private Sub Command1_Click()

Dim m(10) As Integer, n(10) As Integer

For i=1 To 10

m(i) =i  i

Next i

Call BTC(m, n)

Print n(5)

End Sub

程序运行后,单击命令按钮输出结果为( )。

A.0

B.2

C.10

D.25


正确答案:D

第7题:

请阅读程序:

Sub subP(b()As Integer)

For i=1 To 4

b(i)=2*i

Next i

End Sub

Private Sub Command 1_Click()

Dim a(1 To 4)As Integer

a(1)=5:a(2)=6:a(3)=7:a(4)=8

subP a()

For i=1 To 4

Print a(i)

Next i

End Sub

运行上面的程序,单击命令按钮,则输出结果是( )。

A.2 4 6 8

B.5 6 7 8

C.10 12 14 16

D.出错


正确答案:A
解析:本题考查数组为参数在函数间的传递。本题中,当用户点击控件Command1时,控件的Command1 Click()事件过程被触发,在此过程中首先定义了一个包含4个元素的数组a,并赋值。然后将数组a为参数传递给过程subP,在过程subP中执行for循环分别给a中的4个元素赋值为2、4、6、8。函数执行结束返回过程Command1 Click(),利用for循环打印输出a数组中的值,所以选A。

第8题:

在窗体上添加一个名称为Command1的命令按钮,然后编写如下程序:

Private Sub f(ByVa1 x As Integer)

x=x+4

End Sub

Private Sub Command1_Click()

i=3

Call f(1)

If i>4 Then i=i*2

MsgBox i

End Sub

打开窗体运行后,单击命令按钮,则消息框的输出结果为______。


正确答案:3
3 解析:本题考查VBA中参数传递的知识。在VBA的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用ByVa1声明,说明此参数为传值调用;若用ByRef声明,说明此参数为传址调用:没有说明传递类型,则默认为传址传递。本题中在定义子过程f的时候用ByVa1声明了形参x,说明为传值调用,此时对x的任何更改不会影响调用它的实参i,所以执行完Call f(i)这条语句后i的值不变仍为3,当然也不满足If语句的条件,故此最后输出结果为3。

第9题:

有如下的程序:

Private Sub Command1_Click()

Dim k As Integer,m AB Integer

Dim P As Integer

k=4:m=1

P=Fun(k,m) =Print P;

P=Fun(k,m) :Print P

End Sub

Private Function Fun(a As Integer,b As Integer)

Static m As Integer,i As Integer

m=5:i=2

i=i+m+1

m=i+a+b

Fun=m\2

End Function

单击命令按钮后,输出结果为

A. 2 2

B.4 4

C.5 5

D.6 6


正确答案:D
解析:在Sub过程中,程序段先定义了3个Integer型变量k,m,F,并赋给k初值为4,m的初值为1,然后调用事件过程Fun,并将它的值赋给p;在事件过程Fun中定义了两个形参,参数的传送是通过引用实参,即将k,m的地址作为a,b的地址;在Fun中,将m,i定义为静态变量,所以第一次调用后的值仍然保留,但是m,i分别都有赋值语句,将它们的值变为 5,2,所以返回值不变,都是6,6。

第10题:

在窗体中添加一个名称为Com1的命令按钮,然后编写如下程序:

Private Sub s(ByVal p As Integer)

p=p*2

End Sub

Private Sub Com1_Click()

Dim i As Integer

i=3

Call s(i)

If i>4 Then i=i^2

End sub

窗体打开运行后,单击命令按钮,则消息框的输出结果为( )。


正确答案:3
3 解析: 本题考查VBA程序的知识。在VBA的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用ByVal声明,说明此参数为传值调用,此时形参的变化不会返回到实参;若用ByRef声明,说明此参数为传址调用,此时形参的变化将会返回到实参:没有说明传递类型,则默认为传址传递。此题中形参p被说明为ByVal传值形式的整型量,当运行Com1_Click()过程时调用s()函数,实参i传送其值给形参p,p发生变化p=p*2=3*2=6。但因为使用的是ByVal传值传递,所以实参i的值不发生变化,if语句中的判断条件为假,所以会直接执行MsgBox i语句后输出3。

更多相关问题