itgle.com

阅读程序: 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运行上面的程序,单击命令按钮,输出结果为。

题目

阅读程序: 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运行上面的程序,单击命令按钮,输出结果为。


相似考题
更多“阅读程序: Sub p( b () As Integer)For i =1To 4 b(i) = 2(iNext i End Sub Private Sub Comm ”相关问题
  • 第1题:

    有以下程序inclube class ClassOne{public: ClassOne(int v=O) { i=v;cout<

    有以下程序 #inclube <iostream.h> class ClassOne { public: ClassOne(int v=O) { i=v;cout<<i;} void print(){ cout<<i<<end1;} }; class ClassTwo { public: ClassTwo(int v=O) { i=v;cout<<i;} void print(){ cout<<i<<end1;} private: ClassOne myObj; int i; }; void main() { ClassTwo obj(1); obj.print(); }

    A.11

    B.111

    C.110

    D.101


    正确答案:A
    解析:类ClassTwo中定义了成员对象myObj,所以在构造类ClassTwo的对象obj时会先调用类ClassOne的构造函数输出0,然后调用ClassTwo的构造函数输出1。主函数最后调用obj的成员函数print()输出1。所以最后结果为011。

  • 第2题:

    以下程序段有()处错误。include using namespaces std;class Sample{private: int n;p

    以下程序段有( )处错误。 #include <iostream> using namespaces std; class Sample { private: int n; public: Sample (int i} { n=i; } void setvalue(int i) { n=i; } void display() { cout<<"n="<<n<<end1; } }; int main ( ) { const Sample a(lO); a. setvalue (5)'; a.display(); return 0; }

    A.1

    B.2

    C.3

    D.4


    正确答案:B
    解析:本题考查常对象的掌握。本程序中有两个错误:①第1处错误是“a.setvalue(5);”语句,由于对象a为常对象,所以对象a的私有数据成员n不能被更新。②第2处错误是语句“a.display();”。由于对象a为常对象,所以通过对象a只能调用它的成员函数,而成员函数display()不是常成员函数。

  • 第3题:

    某项目的现金流量如下图所示,则下列等是正确的有( )。
    【图
    A、P=-30(P/A,i,3)+40(P/F,i,4)+60(P/A,i,5)(P/F,i,5)
    B、P=-30(P/A,i,4)(1+i)+40(P/F,i,4)+60(P/A,i,6)(P/F,i,4)
    C、P=-30-30(P/A,i,3)+40(P/F,i,4)+60(P/A,i,10)
    D、P=-30-30(P/A,i,3)+40(P/F,i,4)+60(P/A,i,5)(P/F,i,5)
    E、P=-30-30(P/A,i,3)+40(P/F,i,4)+60(P/A,i,6)(P/F,i,4)】


    答案:B,E
    解析:
    本题考查的是等值计算。年金折现一定要折到第一笔年金的前一年。比如本题中,0-3年的等额支出折现时只能折到0的前一年,而现值是在0那点的价值,因此可以有两种处理方法:一种是先整体折到-1年,再往0点折算,比如答案B;另一种处理方法是,将这笔等额支出分成两部分,在0点的不需折现,1-3年的再按年金现值折算,比如答案E;另一个问题是关于公式中n的确定,如果年金数量较少,可以数年金个数,即为n;当年金数量较多时,用最后一笔年金发生的时点减去第一笔年金的前一年,即为n。如本题中5-10年的年金60,折现时需先折算到第5年初(4年末),则年金个数为10-4=6,然后再从第4年末一次折现到0点。参见教材P159。

  • 第4题:

    阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。

    【说明】

    有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数。

    【函数】

    main()

    {

    int number[20],n,m,i;

    printf("the total numbers is:");

    scanf("%d",&n);

    printf("back m:");

    scanf("%d",&m);

    for(i=0;i<=n-1;i)

    scanf("%d,",&number[i]);

    (1);

    for(i=0;i<=n-1;i)

    printf("%d,",number[i]);

    }

    move(array,n,m)

    int n,m,array[20];

    {

    int *p,array_end;

    array_end=(2);

    for(p=array[n-1];(3);p--)

    *p=(4);

    *array=array_end;

    m--;

    if(m>0) (5);

    }


    正确答案:(1)move(numbernm) (2)*(array[n-1]) (3)p>array (4)*(p-1) (5)move(arraynm)
    (1)move(number,n,m) (2)*(array[n-1]) (3)p>array (4)*(p-1) (5)move(array,n,m) 解析:本题考查数字顺序移动和数组的相关知识。
    从数据结构的角度出发,数字在数组中顺序移动,就是将数字一个一个往后搬,例如,将n-1位置的数字移到n位置,然后再把n-2位置的数字移到n-1位置,其实这是一个简单的数字移动。我们只需要取出第n个位置的数字并保存在一个临时变量中,然后,其他的就按顺序依次移动即可,直到一次整体移动完成,我们再从临时变量中取回数字并将其放在数组的第一个位置中。重复这个过程m次,整个数组就往后移动了m个位置。
    首先,我们来看一下主函数,在主函数里面声明了一个容量为20的整型数组 number[20]和其余3个整型变量,数组用来存储我们输入的待处理的数,而变量m、n分别用于存放我们要移动位置的个数和输入整数的个数。第一个循环语句用于n个整数的输入,第二个循环语句用于n个整数的输出,在这中间应该还有一个处理来完成将n个整数顺序向后移m个位置,并让最后m个数变成最前面的m个数这个功能,从下面的程序段我们知道,这里是调用函数muve(number,n,m)来完成的。因此,第(1)空填 move(nurnber,n,m),在调用时我们需要注意参数的传递。
    再来看move(array,n,m)函数,在此函数中,同样声明了一个容量为20的整型数组和 2个整型变量,另外还声明了一个指针变量p。由*array=array_end,结合第(2)空来看,这里是把数组中最后位置的数取出存放在array_end变量当中。因此,第(2)空应填 *(array[n-1])。
    第(3)空是常见的在循环语句中表示判断的语句,由于“p=array[n-1]”把数组最末的地址赋给了指针p,只要p的值大于数组的起始地址循环就可以继续,因此,第(3)空应填p>array。
    第(4)空要完成的任务是将数字后移,因此,第(4)空为*p-1。从程序来分析,数组每移动完成一次,m的值就减一,而现在只有移动m次的功能没有实现,因此,只要m值大于0,就调用函数自身来实现再次移动。因此,第(5)空填写move(array,n,m)进行递归调用。

  • 第5题:

    在下列程序中:

    Program test(input, output);

    var i. j:integer;

    procedure calc(p1, p2: integer);

    beginp2: = p2 * p2 p1: = p1 - p2; p2: = p2 - p1; end {caic}

    begin {main} i: =2;j:=3;

    calc(i,j); write(j);

    end {main}

    当参数传递采用引用方式(Call by reference)时,所得结果j=(6);

    当参数传递采用换名方式(Call by name)时,所得结果,j=(7);

    当参数传递采用赋值方式(Call by value)时,所得结果,j=(8)。

    A.3

    B.6

    C.10

    D.16


    正确答案:D
    解析:一个过程的过程体若包含对其自身的调用,则称此过程是直接递归的。若一个过程的过程体调用某过程,而该过程又调用原过程或经一系列调用后又回到对原过程的调用,则称此原过程是间接递归的。通常实现递归时采用的数据结构是栈,这是因为栈有先进后出的特性,可以保存调用时的“现场”,并在调用结束时恢复“现场”,栈是实现递归的简单途径。对于既可用递归方式求解,也可用循环方式求解的问题,就执行效率和资源而言,显然是循环优于递归,因为递归的开销大。当用户在调用点调用一个过程时,会通过参数传送信息,一个过程的形式参数用来向过程传送信息的标识符,实在参数用来在调用点向被调用过程传送信息。形式参数和实在参数之间的关系通常按照位置来标定,不同程序语言所规定的参数信息传送方式不同。当采用引用方式(Callbyreference)或换名方式(Callbyname)时,在过程中对形式参数的调用本质上是对实在参数单元的引用。先是给形式参数赋初值,而后,在过程中对该形式参数的赋值最终引起调用程序中实在参数值的改变。在本题中形式参数为p1和p2。实在参数初值为i=2和j=3,通过引用方式调用这两个参数,将执行以下计算过程:p1=2p2=3p2:=p2*p2=9p1:=p1-p2=2-3=-7p2:=p2-p1=9-(-7)=16所得结果为j=16。参数传送采用赋值方式时,从调用点向被调用过程传送的是实在参数的值。这一值成为过程中相应位置上形式参数的初值,此后该形式参数在过程中实际是局部变量,其结果无需返回给实在参数。本题中实在参数j=3,在过程中仅起向形式参数F2赋初值的作用。过程中关于p2的运算对j不再起作用,因而过程调用结束后j的值仍为3。

  • 第6题:

    某项目的现金流量如下图所示,则下列等是正确的有( )。

    A、P=-30(P/A,i,3)+40(P/F,i,4)+60(P/A,i,5)(P/F,i,5)
    B、P=-30(P/A,i,4)(1+i)+40(P/F,i,4)+60(P/A,i,6)(P/F,i,4)
    C、P=-30-30(P/A,i,3)+40(P/F,i,4)+60(P/A,i,10)
    D、P=-30-30(P/A,i,3)+40(P/F,i,4)+60(P/A,i,5)(P/F,i,5)
    E、P=-30-30(P/A,i,3)+40(P/F,i,4)+60(P/A,i,6)(P/F,i,4)


    答案:B,E
    解析:
    本题考查的是等值计算。年金折现一定要折到第一笔年金的前一年。比如本题中,0-3年的等额支出折现时只能折到0的前一年,而现值是在0那点的价值,因此可以有两种处理方法:一种是先整体折到-1年,再往0点折算,比如答案B;另一种处理方法是,将这笔等额支出分成两部分,在0点的不需折现,1-3年的再按年金现值折算,比如答案E;另一个问题是关于公式中n的确定,如果年金数量较少,可以数年金个数,即为n;当年金数量较多时,用最后一笔年金发生的时点减去第一笔年金的前一年,即为n。如本题中5-10年的年金60,折现时需先折算到第5年初(4年末),则年金个数为10-4=6,然后再从第4年末一次折现到0点。参见教材P159。