更多“单选题已知递归函数fun的定义如下:则函数调用语句fun(5)的返回值是(  )。A 5B 12C 15D 30”相关问题
  • 第1题:

    程序中对fun函数有如下说明 void*fun(); 此说明的含义是

    A.fun函数无返回值

    B.fun函数的返回值可以是任意的数据类型

    C.fun函数的返回值是无值型的指针类型

    D.指针fun指向一个函数、该函数无返回值


    正确答案:C
    解析:指针函数是指其返回值的类型为地址即指针类型。本题中定义了一个指针类型的函数。

  • 第2题:

    已知“int*p;fun(p);”,其中,函数fun没有返回值,且其形参定义为引用调用方式,则下列给出的fun函数原型中正确的是()。

    A.voidfun(inta[]);

    B.voidfun(int*&a);

    C.voidfun(int&a[]);

    D.voidfun(int&*a);


    正确答案:B

  • 第3题:

    若有以下变量定义和函数调用语句: int a=5; fun(&a); 则执行下面函数后正确的输出结果是( )。 void fun(int*x) { cout<<++*x<<end1; }

    A.3

    B.4

    C.5

    D.6


    正确答案:D
    解析:fun函数中的x参数为整型指针变量。调用fun函数, &a是取a的地址,即将实际参数a的地址传递。函数fun中的*x是变量x所指的存储单元即值5。*运算符的等级高于++,所以先取值5,然后加1输出,即为6。

  • 第4题:

    设有如下函数定义

    若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是( )。

    A.3

    B.2

    C.4

    D.5


    正确答案:A
    首先n=fun(3),3被当作参数传递进去,进行了第一次调用,3被当作参数传进去后,程序会执行语句elseretllnlfun(k—1)+1;进行第二次调用,而参数是3"1也就是2。2被当作参数传进去后,程序会执行语句elsereturnfun(1[一l)+1;进行第三次调用,而参数是2一l也就是1。l被当作参数传进去后。程序会执行语句elseif(k==1)returnl;不再递归调用,因此最终结果为3次,选项A)正确。

  • 第5题:

    设fun()函数的定义形式为voidfun(charch,floatx){…}则下列对函数fun的调用语句中,正确的是( )。A.

    B.

    C.

    D.

    A.A

    B.B

    C.C

    D.D


    正确答案:C
    由题目的已知条件函数fun的定义形式voidfun(chareh,floatx){…}可知第一个形参为字符型,所以A不符合,第二个形参为精度型,所以D不符合,函数fun定义为void型(无返回值型),故其没有返回值,所以选项B错误。选项C的第一个实参的类型为字符型,第二个实参的类型为单精度型,与函数fun的形式参数的类型相符合,所以选项C为正确答案。

  • 第6题:

    在函数调用过程中,如果函数fun A调用了函数fun B,函数fun B又调用了函数fun A,则

    A.称为函数的直接递归调用

    B.称为函数的间接递归调用

    C.称为函数的循环调用

    D.C语言中不允许这样的递归调用


    正确答案:B

  • 第7题:

    已知递归函数fun的定义如下: int fun(int n) { if(n<=1)return1;//递归结束情况 else return n*fun(n-2);//递归 } 则函数调用语句fun(5)的返回值是( )。

    A.5

    B.12

    C.15

    D.30


    正确答案:C
    解析:递归函数fun被定义为含有参数int n,返同整型。其中fun函数递归调用本身,当n=1时,fun返回1,如果大于1那么执行n*fun(n-2)。所以,当n等于5时,执行5*fun(3);当3时继续调用fun,3*fun(1),即fun(5)=5*(3*fun(1)),答案为15。

  • 第8题:

    已知一个类A,其中Fun()函数是类A的一个成员函数,A*p,a;p=&a;,则下面语句正确的是( )。

    A.语句p=&a;是把对象a赋值给指针变量p

    B.语句A*p,a;p=&a;调用两次类A的构造函数

    C.对语句*p.fun();的调用是正确的

    D.语句 p->fun();和语句 a.fun();等价


    正确答案:D
    解析:A是把对象的地址值赋给指针;B只会调用一次类的构造函数;C正确的调用应是(*p).fun()。

  • 第9题:

    (32)设有如下函数定义

    int fun(int k)

    { if (k<1) return 0;

    else if(k==1) return 1;

    else return fun(k-1)+1;

    }

    若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是

    A)2

    B)3

    C)4

    D)5


    正确答案:B

  • 第10题:

    已知一个函数的定义如下:double fun(int x,double y){⋯⋯}则该函数正确的函数原型声明为()

    • A、double fun(intx,doubley)
    • B、fun(int x,doubley)
    • C、double fun(int,double);
    • D、fun(x,y);

    正确答案:C

  • 第11题:

    有以下函数定义voidfun(intn){…};若以下选项中的变量都已经正确定义且赋值则对函数fun的正确调用语句是()

    • A、fun(inty);
    • B、k=fun(10);
    • C、fun(x);
    • D、voidfun(n);

    正确答案:C

  • 第12题:

    单选题
    设有如下函数定义:int fun(int k){ if(k<1) return 0; else if(k==1) return 1; else return fun(k-1)+1;}若执行调用语句:n=fun(3);,则函数fun()总共被调用的次数是(  )。
    A

    2

    B

    3

    C

    4

    D

    5


    正确答案: C
    解析:
    函数fun为递归函数,递归结束条件是k为小于等于1的数。执行fun(3)语句时会返回fun(3-1)+1,即fun(2)+1;执行fun(2)时会返回fun(2-1)+1,即fun(1)+1;执行fun(1)时会返回1,所以函数fun总共被调用3次。答案选择B选项。

  • 第13题:

    已知递归函数fun的定义如下: int fun(int n) { if(n<=1)return 1;//递归结束情况 else return n*fun(n-2);//递归 } 则函数调用语句fun(5)的返回值是( )。

    A.5

    B.12

    C.15

    D.30


    正确答案:C
    解析:递归函数fun被定义为含有参数int n返回整型.其中 fun函数递归调用本身,当n=1时,fun返回1,如果大于1那么执行n*fun(n-2)。所以,当n等于5时,执行5*fun(3);当n等于3时继续调用fun,3*fun(1),即fun(5)=5*(3*fun(1)),答案为15。

  • 第14题:

    设有如下函数定义: int fun(int k) {if(k<1)return 0; else if(k= =l)return l; else return fun(k-1)+1: } 若执行调用语句:“n=fun(3);”,则函数fun总共被诃用的次数是( )。

    A.2

    B.3

    C.4

    D.5


    正确答案:B
    此题考查简单的循环,当执行n=fun(3),则函数fun执行3次。

  • 第15题:

    设fun函数的定义形式为 void fun(char ch,float x){…} 则下列对函数fun的调用语句中,正确的是( )。

    A. fun("abc",3.0);

    B.t=fun(D.16.5);

    C.fun(65,2.8);

    D.fun(32,32);


    正确答案:C
    由题目的已知条件函数fun的定义形式voidfun(charch,floatx){…)可知第一个形参为字符型,所以A不符合,第二个形参为精度型,所以D不符合,函数fun定义为void型(无论返回值型),故其没有返回值,所以选项B错误。选项C的第一个实参的类型为字符型,第二个实参的类型为单精度型,与函数fun的形式参数的类型相符合,所以选项C为正确答案。

  • 第16题:

    若有如下变量定义和函数调用语句: inta=5; fun(&A) ; 则执行下面函数后正确的输出结果是( )。 void fun(int*x) { cout<<++*x<<endl; }

    A.3

    B.4

    C.5

    D.6


    正确答案:D
    解析: fun函数中的x参数为整型指针变量。调用fun函数,&a是取a的地址,即将实际参数a的地址传递。函数fun中的*x是变量x所指的存储单元即值5。*运算符的等级高于++,所以先取值5然后加1输出,即为6。

  • 第17题:

    设有如下函数定义

    int fun(int k)

    {if(k<1) return 0:

    else if(k==1) return 1:

    else return fun(k一1)+1:

    }

    若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是

    A.2

    B.3

    C.4

    D.5


    正确答案:B
    解析:函数fun总共被调用了3次,即fun(3)、fun(2)和fun(13)

  • 第18题:

    函数fun1()、fun2()的定义如下所示,已知调用fun1时传递给形参x的值是-5,若以引用调用(call by.reference)的方式调用。fun2,则雨数fun1的返回值为( );若以值调用(call by value)的方式调用fun2,则函数funl的返回值为( )。

    A.-18

    B.-11

    C.-8

    D.O(34)


    正确答案:C
    解析:引用调用是函数传递参数的一种方式,使用引用调用,可以在子函数中对形参所做的更改对主函数中的实参有效。(33)a=-6;x=12;因为是引用调用,所以a=4,a-x=4-12=-8。(34)a=-6;x=12;因为是值调用,所以a=-6,a-x=-6-12=-18。

  • 第19题:

    若主函数中有定义语句:int a[10],b[10],c;,在主函数前定义的fun函数首部为:void fun(int x[ ]),则以下选项中错误的调用语句是( )。

    A.fun(b);

    B.fun(&c);

    C.fun(&a[3]);

    D.fun(b[11]);


    答案:D 
    解析:fun函数的形式参数为一个数组,需要实参为一个地址,而b[11]是一个整型元素,参数类型不一致,且b[11]已经溢出,所以D项错误。 

  • 第20题:

    已知递归函数f的定义如下:

    int f(int n)

    {

    if(n <=1)return 1; //递归结束情况

    else return n*f(n-2); //递归}

    则函数调用语句f(5)的返回值是【 】。


    正确答案:15
    15 解析:本题考查的是递归算法的分析。一个直接或间接地调用自身的算法称为递归算法。在一个递归算法中,至少要包含一个初始值和一个递归关系。本题的,f()函数在n小于等于1时返回1,而在其余情况下返回n*f(n-2)。所以本题的递归算法可以表示为:

    题目要求的结果是f(5),即f(5)=5*f(3)=5*3*f(1)=5*3*1=15。故应该填15。

  • 第21题:

    对于函数定义:  void FUN(int n, double x)  {  … }  若以下选项中的变量都已定义并赋值,则对函数FUN的正确调用的语句是()。 

    • A、k=FUN(x,n);
    • B、void FUN(n,x);
    • C、FUN(int y,double m);
    • D、FUN(10,12.5);

    正确答案:D

  • 第22题:

    程序中对fun函数有如下说明void*fun();此说明的含义是()

    • A、fun函数无返回值
    • B、fun函数的返回值可以是任意的数据类型
    • C、fun函数的返回值是无值型的指针类型
    • D、指针fun指向一个函数,该函数无返回值

    正确答案:C

  • 第23题:

    单选题
    已知递归函数fun的定义如下:则函数调用语句fun(5)的返回值是(  )。
    A

    5

    B

    12

    C

    15

    D

    30


    正确答案: B
    解析:
    递归函数fun()定义,当n<=1时,返回1;当n>1时,返回n*fun(n-2)。故执行语句fun(5),返回fun(5)=5*fun(3)=5*3*fun(1)=5*3*1=15。

  • 第24题:

    单选题
    对于函数定义:  void FUN(int n, double x)  {  … }  若以下选项中的变量都已定义并赋值,则对函数FUN的正确调用的语句是()。
    A

    k=FUN(x,n);

    B

    void FUN(n,x);

    C

    FUN(int y,double m);

    D

    FUN(10,12.5);


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