有以下程序#include<iostream.h>int f(int n){if(n==1 )return 1;else return f(n-1 )+ 1;}void

题目
有以下程序includeint f(int n){if(n==1 )return 1;else return f(n-1 )+ 1;}void

有以下程序#include<iostream.h>int f(int n){if(n==1 )return 1;else return f(n-1 )+ 1;}void main() {int i,j=0;for(i=1 ;i<3;i++) j+=f(i);cout<<j<<end1;}程序运行后的输出结果是( )。

A.4

B.3

C.2

D.1

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

第1题:

1、以下程序的输出结果是():void fun (int n,int *s) { int f1,f2; if (n==1||n==2) *s=1; else { fun(n-1,&f1); fun(n-2,&f2); *s=f1+f2; } } int main() { int x; fun(6,&x); pirntf("%d\n",x); return 0; }

A.4

B.6

C.8

D.12


C 本题用了函数调用,fun中if语句成立则进行i,j的交换,用到主函势中则为把下标为0、3,1、2互换,因此,当执行完后X的数组为8,1,6,2,故选择C选项。

第2题:

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

有以下程序 #include<iostream.h> int f(iht n) { if(n==1) return 1; else return f(n-1)+1;} void main( ) { iht i,j=0; for(i=1;i<3;i++)j+=f(i); cout < < j;} 程序运行后的输出结果是

A.4

B.3

C.2

D.1


正确答案:B
解析:在main函数中,对f(1)和f(2)的值进行了累加。过程如下:f(1)=1f(2)=f(1)+l=2最后,j的值为1+2=3。注意:函数的递归调用需要有一个结束的条件。

第3题:

有以下程序:includeiht fun(iht n,int*p){int f1,f2;if(n==1||,n==2)*p=1;else{fun(n-

有以下程序: #include<stdio.h> iht fun(iht n,int*p) { int f1,f2; if(n==1||,n==2)*p=1; else { fun(n-1,&f1);fun(n-2,&f2); *p=f1+f2; } } main() { int s; fun(3,&s); printf("%d\n",s); } 程序的运行结果是______。

A.2

B.3

C.4

D.5


正确答案:A
解析: 本题考查的重点是理解递归函数。fun()为递归函数,递归结束条件时n为1或2,从而fun(3,&s)得fun(2,&s)+fun(1,&s)=1+1=2,因此选项A是正确的。

第4题:

有以下程序 include int f(int n) {if(n==1)return1; else return f(n-1)+1} voidm

有以下程序 #include<iostream.h> int f(int n) {if(n==1)return1; else return f(n-1)+1} voidmain() {int i,j=0; for(i=l i<3;i++)=i+=f(i); cout<<j;} 程序运行后的输出结果是( )。

A.4

B.3

C.2

D.1


正确答案:B

第5题:

有以下程序includeint f(int n){if(n==1)return 1:else return f(n-1)+1;}void mai

有以下程序 #include<iostream.h> int f(int n) {if(n==1)return 1: else return f(n-1)+1;} void main() {int i,j=0; for(i=1;i<3;i++):j+=f(i); cout<<j;} 程序运行后的输出结果是( )。

A.4

B.3

C.2

D.1


正确答案:B

第6题:

有以下程序()。includeint f(int n){if(n==1)return 1;elsereturn f(n-1)+1;}void m

有以下程序( )。 #include<iostream.h> int f(int n) { if(n==1)return 1; else return f(n-1)+1; } void main() { int i,j=-; for(i=1;i<3;i++) j+=f(i); cout<<j<<endl; } 程序运行后输出结果是( )。

A.4

B.3

C.2

D.1


正确答案:B

第7题:

有以下程序:includeintf(intn)} if(n==1)return 1;else return f(n-1)+1;}main(){int

有以下程序: #include <stdio.h> intf(intn) } if(n==1) return 1; else return f(n-1)+1; } main() { int i,j=0; for(i=1; i<3; i++) j+=f(i); printf("%d\n",j); } 程序运行后的输出结果是( )。

A.4

B.3

C.2

D.1


正确答案:B
解析:在main函数中,j的值是f(1)和f(2)的值相加的结果。f(1)=1,f(2)=f(1)+1=2,j的值为1+2=3。

第8题:

有以下程序 include void fun(int n, int *p) { int f1,t2; if(n==1 |

有以下程序 #include <stdio.h> void fun(int n, int *p) { int f1,t2; if(n==1 ||n==2) *p=1; else { fun(n-1,&f1); fun(n-2,&f2); *p=f1+f2; } } main() { int s; fun(3,&s); printf("%d\n", s ); }

A.2

B.3

C.4

D.5


正确答案:A
解析:在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。本题中的fun()函数直接调用了自身,所以它是一个递归函数。fun()函数中,当形参n为1或2时,让形参p所指内容为1。从这里可以看出形参p的用途是输出一个整数,所以我们不妨记作fun(1)=1、 fun(2)=1。如果是其他情况,那么输出结果*p的内容为f(n)=f(n-1)+f(n-2)。由此可见, fun()函数的作用是求斐波纳契数列第n项的值(斐波纳契数列第1和2项的值为1,以后各项分别为前两项之和:1、1、2、3、5、8、13……)。主函数中通过fun()函数,求第3项值;所以输出结果为2,故应该选择A。

第9题:

以下程序的输出结果是includein[fun(int n,int *s){int n,f2;if(n==0‖n==1)*s=1;else{

以下程序的输出结果是 #include<stdio.h> in[fun(int n,int *s) {int n,f2; if(n==0‖n==1) *s=1; else {fun(n-1,&f1); fun(n-2,&f2); *s=f1+f2; }} void main() { int x; fun(6,&x); pfintf("\n%d",x);}

A.7

B.13

C.9

D.10


正确答案:B