已知程序如下,该程序实现的功能为_____。 (10) main() (20) { int counter; (30) ... //输入N值的语句,假设N为偶数,略 (40) long product = 1; (50) for counter = 1 to N step 2 (60) { product = product * counter; } (70) return product; (80) }A.product = 1*3*5*...* (N-1)B.product = 1*2*3*...*(

题目

已知程序如下,该程序实现的功能为_____。 (10) main() (20) { int counter; (30) ... //输入N值的语句,假设N为偶数,略 (40) long product = 1; (50) for counter = 1 to N step 2 (60) { product = product * counter; } (70) return product; (80) }

A.product = 1*3*5*...* (N-1)

B.product = 1*2*3*...*(N-1)

C.product = 1+ 2+3+...+ (N-1)

D.product = 1+3+5+...+(N-1)


相似考题
更多“已知程序如下,该程序实现的功能为_____。 (10) main() (20) { int counter; (30) ... //输入N值的语句,假设N为偶数,略 (40) long product = 1; (50) for counter = 1 to N step 2 (60) { product = product * counter; } (70) return product; (80) }”相关问题
  • 第1题:

    阅读下面程序:include long fib(int n){if (n>2)return (fib(n-1) + fib(n-2));else

    阅读下面程序:

    include <iostream.h>

    long fib(int n)

    {

    if (n>2)

    return (fib(n-1) + fib(n-2));

    else

    return (2);

    }

    void main()

    {

    cout<<fib(3)<<end1;

    }

    则该程序的输出结果应该是【 】。


    正确答案:4
    4

  • 第2题:

    有如下程序:includeusing namespace std;long fun(int n){if(n>2)return(fun(n-1)+fu

    有如下程序: #include<iostream> using namespace std; long fun(int n) { if(n>2) return(fun(n-1)+fun (n-2)); else return 2; } int main() { cout<<fun(3)<<end1; return 0; } 则该程序的输出结果应该是 ( )。

    A.2

    B.3

    C.4

    D.5


    正确答案:C
    解析:主函数中调用fun(3),在fun内部当n>2时,递归调用 fun(n-1)+fun(n-2),否则返回2。所以当n=3时,调用fun(2)+fun(1),即返回2+2,等于4。

  • 第3题:

    有如下程序: Private Sub Form Click() Dim Check,Counter Check=True Counter=0 Do Do While Counter<20 Counter=Counter+1 If Counter=10 Then Check=False Exit Do End If Loop Loop Until Check=False Print Counter,Check End Sub 程序运行后,单击窗体,输出结果为

    A.15 0

    B.20 -1

    C.10 Tree

    D.10 False


    正确答案:D
    解析:本题考查嵌套的Do…Loop循环。Do循环嵌套的规则与For-Next循环相同,按照先进后出、后进先出的原则,不能交叉。考生需判断程序在何时跳出循环,内层循环是在Counter20时,对其加1,但要注意循环内的条件语句,当Counter=10时,跳出内层循环,同时将Check设为False。外层循环的循环条件是Check=False,所以当程序跳出内层循环时,外层循环的条件也满足了,故同时也跳出循环,此时Counter=10,Check为False,选项D正确。

  • 第4题:

    阅读下面利用递归来求n!的程序 class FactorialTest { static long Factorial(int n){ //定义Factorial()方法 if(n==1)return 1; else return n * Factorial(______); } public static void main(String a[]) { //main()方法 int n=8; System.out.println(n+"!="+Factorial(n)); } } 为保证程序正确运行,在下画线处应该填入的参数是

    A.n-1

    B.n-2

    C.n

    D.n+1


    正确答案:A

  • 第5题:

    有以下程序:include int fun(int n){if(n == 1) return 1;else return( n + fun( n -

    有以下程序:#include <stdio.h>int fun(int n){ if(n == 1) return 1; else return( n + fun( n - 1 ) );}main( ){ int x; seanf("% d" ,&X) ;x = fun(x) ;pfinff( "% d \n" ,x);} 执行程序时,给变量x输入10,程序的输出结果是( )。

    A.55

    B.54

    C.65

    D.45


    正确答案:A
    解析:函数调用将实参x=10传给形参n,语句n=1不成立,执行else语句,递归调用fun函数。fun函数共被调用8次,即fun(9),fun(8),…,fun(2),由此可得n=10+9+…+1=55,所以x=55。

  • 第6题:

    有以下程序:includeusing namespace std;int n[][3]={10,20,30,40,50,60};int main()

    有以下程序: #include<iostream> using namespace std; int n[][3]={10,20,30,40,50,60}; int main() { int (*p)[3]; p=n; cout<<p[0] [0]<<","<<*(p[0]+1)<<","<<(*p) [2]<<end1; return 0; } 上述程序执行后的输出结果是( )。

    A.10,20,30

    B.20,30,40

    C.10,30,50

    D.10,40,60


    正确答案:A
    解析:程序中p是指针数组,它等价于二维数组p[][3]。给p赋值二维数组n后。p[0][0]等于n[0][0],*(p[0]+1)等于n[O][1],(*p)[2]等于n[O][2]。即程序最后输出10,20,30。

  • 第7题:

    有如下程序段,该程序段执行完后,执行循环的次数是 total=0 Counter=1 Do Print Counter total=total + Counter Print total Counter=Counter+1 If total>10 Then Exit Do End If Loop While Counter <=10

    A.5

    B.10

    C.15

    D.20


    正确答案:A
    解析:本题考查Do…LoopWhile语句,共执行了5次,total=1+2+3+4+5>10。

  • 第8题:

    有如下程序 long fib(int n) { if(n>2)return(fib(n-1)-fib(n-2)); else return(1); } main() { printf("%d\n",fib(5)); }该程序的输出结果是______。

    A.-3

    B.-2

    C.-1

    D.0


    正确答案:C

  • 第9题:

    有如下程序______。 long fib (int n) { if(n>2) returb(fib(n-1)+fib(n-2)); else return(2); } main() {printf("%d\n",fib(3));} 该程序的输出结果是______。

    A.2

    B.4

    C.6

    D.8


    正确答案:B

  • 第10题:

    有如下程序段,该程序段执行完后,共执行循环的次数是 Private Sub Command1_Click( ) Tota1=0 Counter=1 Do Print Counter Tota1=tota1+Counter Print total Counter=Counter+1 If total>=10 Then Exit Do End lf Loop While Counter<=10 End Sub

    A.5

    B.10

    C.12

    D.20


    正确答案:A
    解析:由于本题在Do循环内嵌套If语句,当If语句满足条件时,Do循环也可以终止,故要比较Total>=10与Counter>10这两个条件谁先达到。通过观察去执行第五次循环时,Total值满足条件,Do循环终止,故选择A。

  • 第11题:

    有以下程序 include using namespace std; long fib(int n) { if(n>2) return(fib(n-1

    有以下程序

    include<iostream>

    using namespace std;

    long fib(int n)

    {

    if(n>2)

    return(fib(n-1)+fib(n-2));

    else

    return 2;

    }

    int main( )

    {

    cout<<fib(3)<<endl;

    return 0;

    }

    则该程序的输出结果应该是______。


    正确答案:4
    4 解析:本题主要考查C++中递归函数,主函数通过调用fib( )函数,fib( )函数的内部再通过一个分支结构判断是否进行递归调用或退出递归调用,调用方式为直接递归调用。主函数通过实参将值3赋给fib( )函数的形参n,由于n=3满足if分支语句条件,因此函数进行递归调用,即计算 fib(2)和fib(1)的值;将2赋给fib( )函数的形参后,由于n=2不满足if语句条件,因此程序退出递归,返回2;将1赋给fib( )函数的形参后,函数同样返回2。因此函数递归调用的最终结果为返回2 +2=4,即fib(3)=4,程序最后输出值为4。

  • 第12题:

    有如下程序 long fib(int n) { if(n>2) return(fib(n-1)+fib(n-2)); else return(2); } main() { printf("%ld/n",fib(3)); } 该程序的输出结果是()

    • A、2
    • B、4
    • C、6
    • D、8

    正确答案:B

  • 第13题:

    如有下程序:includeusing namespace std;long fun(int n){if(n>2)return(fun(n-1)+fu

    如有下程序: #include<iostream> using namespace std; long fun(int n) { if(n>2) return(fun(n-1)+fun(n-2)); else return 2; } int main() { cout<<fun(3)<<endl; return 0; } 则该程序的输出结果应该是( )。

    A.2

    B.3

    C.

    D.5


    正确答案:C
    解析: 主函数中调用fun(3),在fun内部当n>2时,递归调用fun(n-1)+fun(n-2),否则返回2。所以当n=3时,调用fun(2)+fun(1),即返回2+2,等于4,

  • 第14题:

    阅读下面程序: include using namespace std; long fib(int n) {if(n > 2) return(fib

    阅读下面程序:

    include<iostream>

    using namespace std;

    long fib(int n)

    {

    if ( n > 2 )

    return (fib(n-1)+fib(n-2));

    else

    return 2;

    }

    int main()

    {

    cout<<fib(3)<<end1;

    return 0;

    {

    则该程序的输出结果应该是【 】。


    正确答案:4
    4 解析:本题主要考察C++中递归函数的调用。递归函数即自调用函数,在函数体内部直接或间接的自己调用自己,即函数的嵌套调用是函数本身。递归调用分为直接递归调用和间接递归调用两种形式。
    本题程序为求解典型递归数列Fibonacci中任意项值的简化程序(主函数中的调用改成 fib(n),即变成求解任意项值)。主函数通过调用fib()函数,fib()函数内部再通过一个分支结构判断是否进行递归调用或退出递归调用,调用方式为直接递归调用。
    主函数通过实参将值3赋给fib()函数的形参n,由于n‘3满足汀分支语句条件,因此函数进行递归调用,即计算fib(2)和fib(1)的值;将2赋给fib()函数的形参后,
    由于n=2不满足if分支语句条件,因此程序退出递归,返回2:将1赋给fib()函数的形参后,函数同样返回2。因此函数递归调用的最终结果为返回2+2=4,即fib(3) =4,程序最后输出值为4。

  • 第15题:

    请编写一个函数inline long sum(int n),用递归函数完成运算:sum(n)=1*1+2*2+…n*n,递归表达式为 sum(n)=sum(n-1)+n2。

    注意:部分源程序已存在文件test10_2.cpp中。

    请勿修改主函数main和其他函数中的任何内容,仅在函数sum的花括号中填写若干语句。

    文件test10_2.cpp的内容如下:

    include<iostream.h>

    inline long sum(int n)

    {

    }

    void main()

    {

    int n;

    cout<<"输入n:";

    cin>>n;

    cout<<"结果为:"<<sum(n)<<endl;

    }


    正确答案:inline long sum(int n) { if(n==1) return 1; else return n*n+sum(n-1); }
    inline long sum(int n) { if(n==1) return 1; else return n*n+sum(n-1); } 解析:本题考查的是考生对递归函数掌握的熟练程度。递归的终止条件为n=1时,值为1。

  • 第16题:

    有如下程序:includelong fib(int n){if(n>2)return(fib(n-1)+fib(n-2)); else retu

    有如下程序: #include<iostream.h> long fib(int n) { if(n>2)return(fib(n-1)+fib(n-2)); else return(2);} void main( ) {cout<<fib(3);} 该程序的输出结果是

    A.2

    B.4

    C.6

    D.8


    正确答案:B
    解析:fib(3)=fib(2)+fib(1),而fib(2)的返回值为2,fib(1)的返回值也为2,故输出的fib (3)的值为4。

  • 第17题:

    有如下程序:includelong fib(int n){if(n>2)return(fib(n-1)+fib(n-2)); else return(

    有如下程序: #include <stdio.h> long fib(int n) { if(n>2)return(fib(n-1)+fib(n-2)); else return(2); } main() { printf("%d\n",fib(3));} 该程序的输出结果是( )。

    A.2

    B.4

    C.6

    D.8


    正确答案:B
    解析:本题考查函数的递归调用。fib(3)=fib(2)+fib(1),而fib(2)的返回值为2,fib(1)的返回值也为2,故输出的fib(3)的值为4。

  • 第18题:

    有如下的程序段,该程序段执行完后,共执行的循环次数是 total=0 Counter=1 Do Print Counter total=total * Counter + 1 Print total Counter=Counter +1 If total > 10 Then Exit Do End If Loop While Counter<=10

    A.4

    B.10

    C.15

    D.20


    正确答案:A
    解析:Do…LoopWhile语句本题中Counter为计数器,当Counter=4时,total=41>10,跳出循环,共执行4次循环。注意:Do…LoopWhile结构和条件语句或多分支结构的嵌套结构。

  • 第19题:

    有如下的程序段,该程序段的执行完后,共执行循环的次数是 Private Sub Command1_Click() total=0 Counter=l Do Print Counter total=total+Counter Print total Counter=Counter+1 If total>=10 Then Exit Do End If Loop While Counter<=10 End Sub

    A.5

    B.10

    C.12

    D.20


    正确答案:A
    解析:本题考查Do循环内的嵌套语句。由于本题在Do循环内嵌套If语句,当If语句满足条件时,Do循环也可以终止,故要比较Total>=10与Counter>10这两个条件谁先达到。通过观察去执行第五次循环时,Total值满足条件, Do循环终止,故选择A。

  • 第20题:

    有如下程序: Private Sub Form_C1ick() Dim CheCk,Counter CheCk=True Counter=0 Do Do While Counter<20 Counter=Counter+1 If Counter=10 Then Check=False Exit Do End If Loop Loop Until Check=False Ptint Counter,Check End Sub 程序运行后,单击窗体,输出结果为______。

    A. 15 0

    B.20 -1

    C.10 Tree

    D.10 False


    正确答案:D
    解析:Do While…Loop是先判断条件表达式的值是否为True,如果为True,则执行循环体,如果为False,则执行Loop后面的语句。Do…Loop Until是先执行循环体,再判断条件表达式,如果表达式的值为True,则执行Loop后面的语句,如果为False,则继续执行循环体。而Exit Do则是强行退出循环。当Counter =10时,强行退出DoWhile循环,而由于此时Check=False,使得umil的条件为True,结束外层循环。所以最终Coumer=10。

  • 第21题:

    有程序: long fib(int n) { if(n<2)return(fib(n-1)+fib(n-2)); else return(2); } main( ) {printf("%d\n",fib(3));} 该程序的输出结果是( )

    A.2

    B.4

    C.6

    D.8


    正确答案:B

  • 第22题:

    有如下程序:includeusing namespace std;long fib(int n){ if(n>2) return(fib(n-1)+

    有如下程序: #include<iostream> using namespace std; long fib(int n) { if(n>2) return(fib(n-1)+fib(n-2)); else return(n); } void main() { int i; cout<<"请输入一个整数:"; cin>>i;cout<<endl; cout<<fib(i)<<endl; { 当输入4、2时,该程序的输出结果是( )。

    A.5

    B.4

    C.5

    D.6 1 2 2 2


    正确答案:C
    解析:注意递归调用的过程,当输入2作为函数参数时,调用肋()函数直接返回参数值2;当输入参数大于2时有一个递归调用的过程。

  • 第23题:

    阅读下列说明和 C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
    【说明】
    生成器( Builder)模式的意图是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。图 5-1 所示为其类图。



    【C++代码】
    #include
    #include
    using namespace std;
    class Product {
    private:? ??
    string partA, partB;
    public:
    Product() {?? }
    ? ? ?void
    setPartA(const string& s) { PartA = s;}
    ???? void
    setPartB(const string& s) { PartB = s;}
    //? 其余代码省略
    };
    class Builder {
    public:
    ??????? (1)?? ;
    virtual void buildPartB()=0;
    ??????? (2)?? ;
    };
    class ConcreteBuilder1 : public Builder {
    private:
    Product*?? product;
    public:
    ConcreteBuilder1() {product = new Product();???? }
    ??? void
    buildPartA() {????? (3)???? ("Component A"); }
    ??? void
    buildPartB() {????? (4)???? ("Component B"); }
    Product* getResult() { return product; }
    //? 其余代码省略
    };
    class ConcreteBuilder2 : public Builder {? ??
    /*??? 代码省略??? */
    };
    class Director {
    private:?
    Builder* builder;
    public:? ?
    Director(Builder* pBuilder) { builder= pBuilder;}
    ???? void
    construct() {
    ? ? ? ? ? ? ? (5)???? ;? ? ?
    //? 其余代码省略
    ????? }
    //? 其余代码省略
    };
    int main() {
    Director* director1 = new Director(new ConcreteBuilder1());?
    director1->construct();? ?
    delete director1;? ??
    return 0;


    答案:
    解析:
    (1) virtual void buildPartA() = 0
    (2) virtual Product * getResult() = 0
    (3) product->setPartA
    (4) product->setPartB
    (5) builder->buildPartA();
    builder->buildPartB();
    Product* p = builder->getResult();

  • 第24题:

    单选题
    有如下程序 long fib(int n) { if(n>2) return(fib(n-1)+fib(n-2)); else return(2); } main() { printf("%ld/n",fib(3)); } 该程序的输出结果是()
    A

    2

    B

    4

    C

    6

    D

    8


    正确答案: C
    解析: 暂无解析