下列程序段的执行结果为______。 Dim m(3,3)As Integer Dim i As Integer Dim j As Integer Dim x As Integer For i=1 To 3 m(i,i)=i Next For i=0 T0 3 For j=0 To 3 x=x+m(i, j) Next Next Print xA.3B.4C.5D.6

题目

下列程序段的执行结果为______。 Dim m(3,3)As Integer Dim i As Integer Dim j As Integer Dim x As Integer For i=1 To 3 m(i,i)=i Next For i=0 T0 3 For j=0 To 3 x=x+m(i, j) Next Next Print x

A.3

B.4

C.5

D.6


相似考题
参考答案和解析
正确答案:D
解析:通过第一个以i为循环变量的循环,令a(1,1)=1,a(2,2)=2,a(3,3)=3。然后通过双重循环,求数组a中所有元素的和并将结果赋值给x,由于在数组a中除了a(1,1)、a(2,2)和a(3,3)外其他元素都为0,所以x=1+2+3=6。
更多“下列程序段的执行结果为______。Dim m(3,3)As IntegerDim i As IntegerDim j As IntegerDim x As ”相关问题
  • 第1题:

    下面程序段运行后,变量x的值为上 【 】 。

    Dim x As Integer

    Dim i As Integer

    x=O

    for i=0 to 50 step 10

    X=X+i

    next i


    正确答案:150
    150 解析:这是一个简单的单重循环程序,它的功能是:计算10+20……+50的值,程序运行过程为:为变量x赋初值;循环执行For…Next间的语句,每执行一次,记数变量i的值加上 10。直到i的值超过循环终止值50,退出循环。执行完该程序,循环内的语句非要执行6次(6次循环对应的记数变量的位为0;10,20,30,40,50)。

  • 第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题:

    设有如下程序:

    Private Sub Form_Click()

    Dim ary(1 To 5)As Integer

    Dim i As Integer

    Dim sum As Integer

    For i=1 To 5

    ary(j)=i+1

    sum=sum+ary(i)

    Next 1

    Print sum

    Eud Sub

    程序运行后,单击窗体,则在窗体上显示的是

    A.15

    B.16

    C.20

    D.25


    正确答案:C
    解析:i=1时,ary(1)=1+1=2,sum=O+2=2,i=2时,ary(2)=2+1=3,sum=2+3=5,i=3时,ary(3)=3+1=4,sum=5+4=9,i=4时,ary(4)=4+1=5,sum=9+5=14,i=5时,ary(5)=5+1=6,sum=14+6=20。因此本题答案为C)。

  • 第4题:

    有如下的程序:

    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。

  • 第5题:

    下面程序段运行后,变量X的值为【 】。

    Dim x AS Integer

    Dim I AS Integer

    x=0

    for I=0 to 50 step 10

    X=X+I。

    next I

    Print X


    正确答案:150
    150 解析:这是一个简单的单重循环程序,它的功能是:计算10-4-20……“+50的值。程序运行过程为:为变量x赋初值;循环执行For… Next间的语句,每执行一次,记数变量i的值加上10;直到i的值超过循环终止值50,退出循环。执行完该程序,循环内的语句要执行6次(6次循环对应的记数变量的位为0,10,20, 30,40,50)。

  • 第6题:

    设有如下程序:

    Private Sub Form. Click( )

    Dim ary(1 To 5)As Integer

    Dim i As Integer

    Dim sum As Integer

    For i=1 To 5

    ary(i)=i+l

    sum=sum+ary(i)

    Next i

    Print sum

    End Sub

    程序运行后,单击窗体,则在窗体上显示的是( )。

    A.15

    B.16

    C.20

    D.25


    正确答案:C
    C。【解析】本题中因为i是从l~5递增,当i=1时,ary(1)=1+i=2,sum=sum+2----2,当i=2时,ary(2)=1+i=2+1=3,sum=sum+3=2+3=5,同理当i=3时,ary(3)=4,sum=9,当i=4时,ary(4)=5,sum=14,当i=5时,ary(5)=6,sum=20,所以答案选择C。

  • 第7题:

    阅读以下说明及Visual Basic程序代码,将应填入(n)处的字句写在对应栏内。

    【说明】

    以下程序为求行列式X(5,5)的值S。

    【Visual Basic代码】

    Private Function col ( byval x ( 5,5 ) as integer ) as long

    dim fesult as long

    dim temp as long

    dim I as integer

    dim j as integer

    dim k as imeger

    result = 0

    for I = to 5

    (1)

    for j = 1 to 5

    if I+j>6 then

    k= ( 1+j ) mod 5

    else

    k=1

    endif

    temp=temp*x ( k,j )

    (2)

    result=(3)

    (4)

    (5)

    End function


    正确答案:(1)temp=1 (2) next I (3) result+temp (4) next I (5) col=result
    (1)temp=1 (2) next I (3) result+temp (4) next I (5) col=result

  • 第8题:

    以下程序用于求s=1+(1+2)+(1+2+3)+……(1+2+……100)的和,请补充完该程序。

    Dim n As Integer

    Dim i As Integer

    Dim j As Long

    Dim s As Long

    n=100

    j=0

    s=0

    For i=1 To【 】

    J=【 】

    s=【 】

    Next i

    Print s


    正确答案:n j+ I s+ j
    n, j+ I, s+ j

  • 第9题:

    下列程序段执行后,执行的结果是______ 。 Dim M(10) Dim N(10) i=3 For j = 1 To 5 M(j) = j N(i) = 2 * i + j Next j Print N(i); M(i)

    A.12 4

    B.11 3

    C.3 11

    D.10 2


    正确答案:B

  • 第10题:

    有如下的程序。

    Private Sub Command1_Click()

    Dim k As Integer, m As 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,p,并赋给k初值为4,m的初值为1,然后调用事件过程Fun,并将它的值赋给p;在事件过程Fun中定义了两个形参,参数的传送是通过引用实参,即将k,m的地址作为a,b的地址;在Fun中,将m,i定义为静态变量,所以第一次调用后的值仍然保留,但是m,i分别都有赋值语句,将它们的值变为5,2,所以返回值不变,都是6,6。

  • 第11题:

    设执行以下程序段时依次输入2,4,6,执行结果为

    Dim a(4)As Integer

    Dim b(4)AS Integer

    For k=0 To 2

    a(k+1)=Val(InputBox("Enter data:"))

    b(3 - k) =a(k + 1)

    Next k

    Print b(k)

    A.2

    B.4

    C.6

    D.0


    正确答案:A
    解析:此程序段开始声明了两个整型数组a和b,其长度均为4。

  • 第12题:

    以下是一个竞赛评分程序。8位评委,去掉一个最高分和一个最低分,计算平均分(设满分为10分)。请填空补充完整。

    Private Sub Form_Click()

    Dim Max As Integer,Min As Integer

    Dim i As Integer,x As Integer,s As Integer

    Dim p As Single

    Max=0

    Min=10

    For i=1 To 8

    x=Val(InputBox("请输入分数:"))

    If【 】Then Max=x

    If【 】 Then Min=x

    s=s+x

    Next i

    s=【 】

    p=s/6

    MsgBox"最后得分:"&p

    End Sub


    正确答案:x>Max xMin s-Min-Max
    x>Max xMin s-Min-Max 解析:本题中先给最大值变量赋值为0,最小值变量赋值为10。然后把输入的分数x与最大值和最小值比较,如果x比最大值大,则把x赋值给Max,故第一空填x>Max:如果x比最小值小,则把x赋值给Min,故第二空填 xMin。因为算平均分之前要把最高分和最低分去掉,故第三空应该填s-M9x-Min。

  • 第13题:

    设有一个10个元素的数组,下列程序将该数组的第一个元素与第十个元素交换,第二个元素与第九个元素交换……,第五个元素与第六个元素交换,请补充完该程序。

    Private Sub Commnd1_Click()

    Dim a(1 To 10)As Integer

    Dim i As Integer

    Dim p As Integer

    Dim t As Integer

    Dim j As Integer

    For i=1 To 10

    a(i)=i

    Next i

    For j=1 To 5

    【 】

    【 】

    【 】

    Next j

    For i=1 To 10

    Print a(i)

    Next i

    End Sub


    正确答案:t=a(j) a(j)=a(10-j+1) a(10-j+1)=t
    t=a(j) , a(j)=a(10-j+1) ,a(10-j+1)=t

  • 第14题:

    下列程序段的执行结果为 ______。 Dim m(3,3)As Integer Dim i As Integer Dim j As Integer Dim x As Integer For i=1 To 3 m(i,i)=i Next For i=0 To 3 For j=0 To 3 x=x+m(i,j) Next Next Print x

    A.3

    B.4

    C.5

    D.6


    正确答案:D
    解析:通过第一个以i为循环变量的循环,令a(1,1)=1,a(2,2)=2,a(3,3)=3。然后通过双重循环,求数组a中所有元素的和并将结果赋值给x,由于在数组a中除了a(1,1)、a(2,2)和a(3,3)外其他元素都为0,所以 x=1+2+3=6。

  • 第15题:

    阅读程序:

    Function fac(ByVal n As Integer)As Integer

    Dim temp As Integer

    temp=1

    For i%=1 To n

    temp=temp*i%

    Next i%

    fac=temp

    End Function

    Private Sub Form_Click()

    Dim nsum As Integer

    nsum=1

    For i%=2 To 4

    nsum=nsum+fac(i%)

    Next i%

    print nsum

    End Sub

    程序运行后,单击窗体,输出结果是

    A.35

    B.31

    C.33

    D.37


    正确答案:C
    解析:本题中fac函数的功能为求n的阶乘,单击事件中i的值分别取2,3,4,并对它们的阶乘求和为2+6+24=32,再加上nsum的值1,得33。因此本题答案为C)。

  • 第16题:

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

    Private Sub Command1_Click()

    Dim a(10)As Integer

    Dim x As Integer

    For i=1 To 10

    a(i)=i

    Next i

    x=1

    MsgBoxa(f(x)+x)

    End Sub

    Function f(y As Integer)

    y=y+2

    f=y

    End Function

    程序运行后,单击命令按钮,消息框的输出结果为______。


    正确答案:6
    6 解析:本题考查VBA中参数传递的知识。在VBA的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用ByVal声明,说明此参数为传值调用,此时形参的变化不会返回到实参;若用ByRef声明,说明此参数为传址调用,此时形参的变化将会返回到实参;没有说明传递类型,则默认为传址传递。本题中函数f的形参y没有使用ByVal声明,则默认为传址传递。当求a(f(x)+x)值的时候,先要求出f(x)+x的值。由于x的值为1,那么调用函数f以后得到f(x)的返回值为3,同时由于函数f中改变了形参y的值,在传址传递的前提下这一改变会影响到对应的实参x,故此函数调用结束后x的值变为3,也就是最后输出的应该是a(6)的值也就是6。举一反三,如果最后输出的不是a(f(x)+x)而是 a(x+f(x)),则会先取得x的值1,然后再计算f(x)的值为3,那么最后输出的就不是a(6)的值而是a(4)的值了。

  • 第17题:

    在窗体上画一个命令按钮,其名称为Command1,然后编写如卞程序:

    Private Sub Command1-Click()

    Dim a(10) As Integer

    Dim x As Integer

    For i=1 To 10

    a(i)=i

    Next i

    x=1

    MsgBox a(f(x)+x)

    End Sub

    Function f(y As Integer)

    y=y+2

    f=y

    End Function

    程序运行后,单击命令按钮,消息框的输出结果为______。


    正确答案:6
    6 解析:本题考查VBA中参数传递的知识。在VBA的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用ByVal声明,说明此参数为传值调用,此时形参的变化不会返回到实参:若用ByRcf声明,说明此参数为传址调用,此时形参的变化将会返回到实参:没有说明传递类型,则默认为传址传递。本题中函数f的形参y没有使用ByVal声明,则默认为传址传递。当求a(f(x)+x)值的时候,先要求出f(x)+x的值。由于x的值为1,那么调用函数f以后得到f(x)的返回值为3,同时由于函数f中改变了形参y的值,在传址传递的前提下这一改变会影响到对应的实参x,故此函数调用结束后x的值变为3,也就是最后输出的应该是a(6)的值也就是 6。举一反三,如果最后输出的不是a(f(x)+x)而是 a(x+fx)),则会先取得x的值1,然后再计算f(x)的值为3,那么最后输出的就不是a(6)的值而是a(4)的值了。

  • 第18题:

    阅读以下说明及Visual Basic程序代码,将应填入(n)上处的字句写在对应栏内。

    [说明]

    字符组合:程序界面如图示,在文本框Text1中输入若干个任意字符,单击“颠倒”按钮,将这些字符按相反的顺序显示在标签Lable1 中,并在标签Labs1 2处显示字符的个数。例如:输入abcabc2,显示为 2cbabca,组成字符数为4。

    [Visual Basic 代码]

    Private Sub cmdshow_ Click (

    Dim n As Integer

    Dim I As Integer

    Dim str1 As String

    N=Len ( Text1.Text )

    For I=n To Step- 1

    Str1=(1)

    Next I

    Labe11. Caption=Str1

    End Sub

    Private Sub cmdcount_ Click ( )

    Dim n As Integer

    Dim in As Integer

    Dim i As Integer

    Dim j As Integer

    Dim flag As Integer

    Dim str1 As Integer

    Dim str2 As Integer

    N=(2)

    Str1 =Mid$ ( Text1.Text, i. 1

    For I =2 To n

    Str2=mid$ ( Text1,Text,I,1

    M=Len (str1)

    (3)

    For j=1 To m

    If (4) Then flag= 1; Exit For

    Next j

    If flag<>1 then str1=str1& str2

    Next I

    Lable2.Caption=(5)

    End Sub


    正确答案:(1) Str1& Mid $ (Text1.TextI1) (2) Len (Text1.Text) (3) Flag=0 (4) str 2=Mid $(str1j1) (5) Str $(Len (str1))
    (1) Str1& Mid $ (Text1.Text,I,1) (2) Len (Text1.Text) (3) Flag=0 (4) str 2=Mid $(str1,j,1) (5) Str $(Len (str1))

  • 第19题:

    有如下事件过程:

    Private Sub Form. Active ( )

    Dim Score (1 to 3) As Integer

    Dim i As Integer

    Dim t As Variant

    Fori=3 To 1 step-1

    Score (i) = 2 * i

    Next

    For Each t In Score

    Print t

    Next

    End Sub

    程序运行后窗体上显示的值为【 】。


    正确答案:24 6
    24 6 解析:本题考查了数组的定义和For Each…Next语句。题中定义了下标下界为1下标上界为3的Score数组,通过For循环语句赋值后,再通过For Each… Next语句在窗体上输出数组中的每个成员。

  • 第20题:

    以下程序的功能是:将一维数组A中的100个元素分别赋给二维数组B的每个元素并打印出来,要求把A(i)到A(10)依次赋给B(1,1)到B(1,10),把A(11)到A(20)依次赋给

    B(2,1)到B(2,10),……,把A(91)到A(100)依次赋给B(10,1)到B(10,10)。请填空。

    Option Base 1

    Private Sub Form_Click()

    Dim i As Integer,j As Integer

    Dim A(1 To 100)As Integer

    Dim B(1 To 10,1 To 10)As Integer

    For i=1 To 100

    A(i)=Int(Rnd*100)

    Next i

    For i=1 To【 】

    For j=1 To【 】

    B(i,j)=【 】

    Print B(i,j);

    Next j

    Print

    Next i

    End Sub


    正确答案:10 10 A(10*(i-1)+j)
    10 , 10 , A(10*(i-1)+j) 解析:最外层的循环负责控制二维数组B()的行数,内层循环负责控制二维数组B()的列数,将数组A()的A(1)到A(10)依次赋给数组B()的第一行,把A(11)到A(20)依次赋给B()的第二行,……。

  • 第21题:

    Private Sub Commandl Click()

    Dim i As Integer, j As Integer

    Dim a (10,10)As Integer

    For i=1 To 3

    For j= i To 3

    a(i,j)=(i-1)*3+j

    Print a (i,j);

    Next j

    Print

    Next i

    End Sub

    程序运行后,单击命令按钮,窗体上显示的是( )。


    正确答案:D

  • 第22题:

    以下程序段运行的结果是______。Dim a(-1 To 5) As BooleanDim flag As Booleanflag = FalseDim i As IntegerDim j As IntegerDo Until flag = True For i=-1 To 5 j=j+1 If a(i)= False Then a(i)= True Exit For End If If i = 5 Then flag = True End If NextLoopPrint j

    A.20

    B.7

    C.35

    D.8


    正确答案:C
    解析:该程序段的作用是给数组a的每个数组元素赋值True,具体实现的方式为:每次从数组a的第一个元素开始判断,该元素是否为False,如果是,则令此元素为True,然后跳出循环,重新从数组a的第一个元素开始判断;如果当前元素不为False,则判断下一个元素。因此语句j=j+1将执行1+2+3+4+5+6+7=28次,即j=28。然后再遍历一遍数组a的所有元素,最后结束程序段。所以j最终的值是:j=28+7=35。

  • 第23题:

    下列程序段的执行结果为 ______。 Dim m(3,3)As Integer Dim i As Integer Dim j As Integer Dim K As Integer For i=1 To 3 m(i,i)=i Next For i=0 To 3 For j=0 To 3 x=x+m(i,j) Next Next Print x

    A.3

    B.4

    C.5

    D.6


    正确答案:D
    解析:通过第一个以i为循环变量的循环,令a(1,1)=1,a(2,2)=2,a(3,3)=3。然后通过双重循环,求数组a中所有元素的和并将结果赋值给x,由于在数组a中除了a(1,1)、a(2,2)和a(3,3)外其他元素都为0,所以 x=1+2+3=6。