itgle.com
更多“设有如下函数定义: int fun(int k) {if(k<1)return 0; else if(k= =l)return l; else ”相关问题
  • 第1题:

    下面的函数是完成1~n的累加,请填空。a(int k){ if(k <=0) printf("error\n"); if(k == 1) return 1; else;}


    正确答案:return(a(k-1)+k)
    在本题中,函数a的功能是完成1~n的累加。在本题的程序中,a函数带有一个形参k。然后执行第一条条件判断语句,结果为真,说明k的值小于1,不是题目所要求的,输出错误提示。否则,程序执行第二条条件判断语句,结果为真,则返回1,否则返回需要填空的部分。从题目要求我们可以知道,函数a的功能是求1~k的累加,而从程序中我们可以看出,填空的部分返回的是k的值大于1的情况,这时,我们可以通过递归调用的方式来求解,这样不仅可以将问题细化,即k的值逐步减少,而且还可以实现1~k的累加。因此,本空需要填写的内容是return(a(k-1)+k)。

  • 第2题:

    有如下函数模板定义: template T1 fun(T1 a1) { return(al+a2+a3);

    有如下函数模板定义: template<typename T1,int a2,int a3> T1 fun(T1 a1) { return(al+a2+a3); } 则下列调用中正确的是( )。

    A.fun<int,4,3>(5);

    B.fun<4,3>(5);

    C.fun<int,int,int>(5);

    D.fun(5);


    正确答案:A
    解析: 类模板是类的抽象,类是类模板的实例。在调用时,尖括号内指定实际的类型名,在编译时,编译系统就用int取代类模板中的类型参数,这样就具体化了类模板。其中的参数为4,3。

  • 第3题:

    若有以下说明和定义,则对fun函数的正确调用语句是() int main() { int (*a)(int*),*b(),w[10],c; : : return 0; } int fun(int *c) {...}

    A.a=fun; a(w);

    B.a=fun; (*a)(&c);

    C.b=fun; *b(w);

    D.fun(b);


    a=fun; (*a)(&c);

  • 第4题:

    以下程序的输出结果是#include "stdio.h"int *fun(int *a,int *b){ int m; m=*a; m+=*b-3; return(&m);}main(){ int x=21,y=35,*a=&x,*b=&y; int *k; k=fun(a,b); printf("%d\n",*k);}


    正确答案:53
    本题考查指针函数的使用。题目给出的程序包括两个部分,一个为指针函数fun,一个为主函数main。主函数main部分给出两个整型变量x和y,并给出相应的赋值。main函数的执行结果为输出*k的值,而*k的值即*fun的值。fun函数包括两个整型指针形参*a和*b。通过对*a、*b进行操作,得到结果m,并将m值返回,整个程序的实际输出即为m的值。初始时,m=*a=21。随后令m=m+*b-3,得m=53。整个程序的输出结果即为53。

  • 第5题:

    (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