已知程序如下,该程序实现的功能为_____。 (10) main() (20) { int counter; (30) ... //输入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.p

题目

已知程序如下,该程序实现的功能为_____。 (10) main() (20) { int counter; (30) ... //输入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值的语句,略 (40) long product = 1; (50) for counter = 1 to N step 2 (60) { product = product * counter; } (70) return product; (80) }”相关问题
  • 第1题:

    有如下程序: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。

  • 第2题:

    阅读下面程序: 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。

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

    有如下程序: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。

  • 第5题:

    有以下程序: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。

  • 第6题:

    有如下程序段,该程序段执行完后,执行循环的次数是 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。

  • 第7题:

    有如下程序 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

  • 第8题:

    有如下程序: 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。

  • 第9题:

    有程序: 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

  • 第10题:

    有如下程序: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时有一个递归调用的过程。

  • 第11题:

    阅读下列说明和 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();

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

    有如下程序段,该程序段执行完后,执行循环的次数是

    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

  • 第14题:

    有如下程序:

    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 True

    D.10 False


    正确答案:D

  • 第15题:

    阅读下面的程序:

    PriVate Sub Form_C1ick()

    Dim Check As Booleau,Counter As Integer

    Check=True

    Counter=5

    Do

    Do While Counter<20

    Counter=Counter+1

    If Counter=10 Then

    Check=FalSe

    EXit Do


    正确答案:10
    10

  • 第16题:

    有如下程序: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。

  • 第17题:

    有如下的程序段,该程序段执行完后,共执行的循环次数是 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结构和条件语句或多分支结构的嵌套结构。

  • 第18题:

    有如下的程序段,该程序段的执行完后,共执行循环的次数是 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。

  • 第19题:

    给出下面的程序:Private Sub Command1_ 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 MsgBox CounterEnd Sub 程序最后弹出的消息对话框的内容是______。

    A.True

    B.False

    C.20

    D.10


    正确答案:D
    解析:本题的难点是dowhile…Loop和do…Loopuntil循环控制问题。实际上在该段程序中,有三处判断控制循环,条件先成立处先执行。首先变量“Counter=10”时,“Check=False”,退出内层循环,do…Loopuntil根据条件“Check=False”又退出外层循环,此时“Counter=10”。

  • 第20题:

    有如下程序______。 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

  • 第21题:

    有如下程序段,该程序段执行完后,共执行循环的次数是 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。

  • 第22题:

    有以下程序 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。

  • 第23题:

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



    阅读下列说明和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;
    【Java代码】
    import jav(6)A.util.*;
    class Product {? ? ? ?
    private String partA;? ? ? ?
    private String partB;? ? ? ??
    public Product() {}? ? ??
    public void setPartA(String s) { partA = s; }? ? ? ?
    public void setPartB(String s) { partB = s; }
    }
    interface Builder {? ?
    public?????? (1)???? ;? ??
    public void buildPartB();? ? ??
    public?????? (2)???? ;
    }
    class ConcreteBuilder1 implements Builder {? ? ? ?
    private Product product;? ? ? ?
    public ConcreteBuilder1() { product = new Product();?? }? ? ? ??
    public void buildPartA() {????????
    (3)??
    ("Component A"); }
    public void buildPartB() {???? ????(4)?? ("Component B"); }? ? ??
    public Product getResult() { return product;}
    }
    class ConcreteBuilder2 implements Builder {?? ? ? ? ?
    //? 代码省略
    }
    class Director {? ? ? ?
    private Builder builder;? ? ? ?
    public Director(Builder builder) {this.builder = builder; }
    public void construct() {
    ? ? ? ? ? ? ? ? ? (5)???? ;
    ? ? ? ? ? ? ? //? 代码省略? ? ??
    }
    }
    class Test {? ? ??
    public static void main(String[] args) {
    ???????????????? Director director1 = new
    Director(new ConcreteBuilder1());
    ???????????????? director1.construct();? ? ? ??
    }


    答案:
    解析:
    (1)void buildPart A()
    (2) Product getResult()
    (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
    解析: 暂无解析