有以下程序: #include int fun(int n) { if(n)return fun(n-1)+n; else return 0; } main( ) { printf("%d\n",fun(3));} 程序的运行结果是( )。

题目
有以下程序: include int fun(int n) { if(n)return fun(n-1)+n; else return 0; } main( ) { printf("%d\n",fun(3));} 程序的运行结果是( )。

A.4

B.5

C.6

D.7

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有以下程序

#include <stdio.h>

int fun(int a,int b)

{ if(b==0) return a;

else return(fun(--a,--b));

}

main()

{ printf("%d\n", fun(4,2));}

程序的运行结果是

A)1

B)2

C)3

D)4


正确答案:B

第2题:

以下程序的输出结果是______

nt fun(int*x,int n)

{if(n==0)

return x[0];

else return x[0]+fun(x+1,n-1);

}

main()

{int a[]={1,2,3,4,5,6,7};

printf(“%d\n”,fun(a,3));

}


正确答案:

10

第3题:

下面程序的运行结果是 : 【 1 0 】 。

fun(int t[],int n)

{ int i,m;

if(n==1)return t[0];

else

if(n>=2){m=fun(t,n-1); return m; }

}

main()

{ int a[]={11,4,6,3,8,2,3,5,9,2};

printf(" % d\n",fun(a,10));

}


正确答案:
(10) 【 10 】 11
解析 : 此题涉及函数的调用和 if 语句 。 程序先执行第二个 if 语句 , 然后在执行第一个 if 语句 ,最后用 return 返回数值。

第4题:

有以下程序:includefun(int a, int b){if(a>b) return(a); elsereturn(b);}main(){int

有以下程序: #include <stdio.h> fun(int a, int b) { if(a>b) return(a); else return(b); } main() { int x=3,y=8,z=6,r; r=fun(fun(x,y),2*z); printf("%d\n",r); } 程序运行后的输出结果是( )。

A.3

B.6

C.8

D.12


正确答案:D
解析:本题考查函数的返回值。fun函数的功能是比较a,b的值,返回其中较大者。对于main函数中的语句r=fun(fun(x,y),2*z);是先调用fun(x,y)返回8,再将8和12作为实参调用函数fun,得到的返回值为12。

第5题:

以下程序的输出结果是

long fun( int n)

{ long s;

if(n==1||n==2)s=2;

else s=n-fun(n-1);

return s;}

main()

{ printf("%ld\n",fun(3));}

A.1

B.2

C.3

D.4


正确答案:A
解析:该题考查的是递归函数的调用,题中读fun函数进行了递归调用,第1次调用:fun(3)n=3 s=3-fun(2);第二次调用时:fun(2)n=2 s=2 返回第一次调用后,s=3-2=1。

第6题:

有以下程序

#include <stdio.h>

#include <stdlib.h>

int fun(int n)

{ int *p;

p=(int*)malloc(sizeof(int));

*p=n; return *p;

}

main()

{ int a;

a = fun(10); printf("%d\n",a+fun(10));

}

程序的运行结果是

A)0

B)10

C)20

D) 出错


正确答案:C

第7题:

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

第8题:

以下程序的输出结果是 【 17 】 。

int fun(int *x,int n)

{ if(n==0) return x[0];

else return x[0]+fun(x+1,n-1);

}

main( )

{ int a[]={1,2,3,4,5,6,7}; printf("%d\n",fun(a,3));}


正确答案:

第9题:

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

A.55

B.54

C.65

D.45


正确答案:A
解析:函数fun()通过递归调用实现的功能为n+(n-1)+…+1,故程序的输出结果为55。

第10题:

以下程序的输出结果是includelong fun(int n){ long s;if(n==1||1n==2) s=2;else s

以下程序的输出结果是 #include<iostream.h> long fun(int n) { long s; if(n==1 | | 1n==2) s=2; else s=n-fun(n-1) ; return s; } void main( ) {cout < < fun(3) ;}

A.1

B.2

C.3

D.4


正确答案:A
解析:题中fun函数进行了递归调用,第1次调用:fun(3) n=3 s=3-fun(2) ,第二次调用时: fun(2) n=2 s=2,返回第一次调用后,s=3-2=1。

更多相关问题