下列程序的输出结果是()。 #include<stdio.h> int fun(int x) {int p; if(x==0‖x=1) return 3; e

题目
下列程序的输出结果是()。 include int fun(int x) {int p; if(x==0‖x=1) return 3; e

下列程序的输出结果是( )。

#include<stdio.h>

int fun(int x)

{ int p;

if(x==0‖x=1)

return 3;

else

p=x-fun(x-2) ;

return p;

}

void main()

{ printf("\n%d",fun(5) );

}

A.5

B.3

C.7

D.1

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

第1题:

如下程序的输出结果是______。 include using namespace std; int funl(int x){retu

如下程序的输出结果是______。

include<iostream>

using namespace std;

int funl(int x){return++x;}

int fun2(int&x){return++x;}

int main( ){

int x:1,y=2;

Y=funl(fun2(x));

cout<<x<<','<<y;

return 0;

}


正确答案:23
2,3

第2题:

阅读下面程序: include using namespace std; int fun(int a,int b) {int c;c = a *

阅读下面程序:

include <iostream>

using namespace std;

int fun( int a, int b)

{

int c;

c = a * b;

return c;

}

int main ( )

{

int a = 3, b = 5, c = 4, x = O;

x = fun( fun( a, b ), c );

cout<<x<<end1;

return 0;

}

其运行结果是【 】。


正确答案:60
60 解析:本题主要考察C++中函数的调用和变量作用域的问题。主函数中嵌套调用fun()函数,并将计算结果赋给变量x。而对于嵌套内fun()函数,其实参与形参名称相同,函数体内部的局部变量c也与主函数内的变量c名称相同,但由于形参与实参在存储区域里分别占有不同的内存空间,因此互相之间没有任何干扰。函数fun()的作用是返回形参a和b的乘积。由此可以得到函数嵌套调用的计算结果为: x=fun(fun(a,B) ,C) =(a*B) *c=3*4*5=60。即程序输出为60。

第3题:

以下程序的输出结果是 【 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));}


正确答案:

第4题:

下列程序的输出结果是()。 include int fun(int x) {int a; if(x==0‖x==1) return 3;

下列程序的输出结果是( )。

#include<stdio.h>

int fun(int x)

{ int a;

if(x==0‖x==1)

return 3;

else

a=x-fun(x-2) ;

return a;

}

void main()

{ printf("%d",fun(7) );

}

A.2

B.8

C.9

D.5


正确答案:A
解析:本题考查函数的递归调用。在函数递归调用时,fun(7):a=7-fun(5)→fun(5):a=5-fun(3)→ fun3:a=3-fun(1)→fun(1):a=3,反推回去fun(3):a=3-3=0→ fun(5):a=5-0=5→fun(7):a=7-5=2,最后的计算结果为2。

第5题:

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

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

A.55

B.54

C.65

D.45


正确答案:A
解析:函数调用将实参x=10传给形参n,语句n=1不成立,执行else语句,递归调用fun函数。fun函数共被调用8次,即fun(9),fun(8),…,fun(2),由此可得n=10+9+…+1=55,所以x=55。

第6题:

以下程序的输出结果是( )。 include void fun(int x) {if(x/2>0)fun(x/2); printf("%d",

以下程序的输出结果是( )。

include<stdio.h>

void fun(int x)

{ if(x/2>0)fun(x/2);

printf("%d",x);

}

main()

{fun(3);printf("\n");

}


正确答案:13
13 解析:函数fun是一个递归函数。执行fun(3);,x=3,x/2=1>0,又调用f(1),此时,x=1,x/2=0,不满足继续递归调用的条件,输出1,返回到fun(3)中,输出3。所以本题的输出结果为13。

第7题:

有如下程序:include void fun(int& x, int y){int t=x;x=y;y=t;}int main (){int

有如下程序: #include <iostream> void fun(int& x, int y){int t=x;x=y;y=t;} int main () { int a[2]={23,42}; fun(a[1],a[0]); std::cout<<a[0]<<","<<a[1]<<std::endl; return 0; } 执行后的输出结果是

A.42,42

B.23,23

C.23,42

D.42,23


正确答案:B
解析:本题考核函数的调用以及参数值的传递。函数fun中的第一个参数采用引用传值方式,函数中对形参值的改变同样作用于实参上;第二个参数采用按值传值方式,函数中对形参的操作不会影响到实参。所以main函数中调用fun函数后,a[1]的值被修改为a[0]的值,而a[0]的值没有改变。

第8题:

有以下程序 fun(int x) { int p; if(x=0||x=1) return(3); p=x-fun(x-2); return p; } main0 { printf("%d\n",fun(7));} 执行后的输出结果是______。

A.7

B.3

C.2

D.0


正确答案:C
解析:函数fun是—个递归调用函数,首先主函数将实参7传递给函数fun中的形参x,由于7≠0,7≠1,不满足if条件,所以执行下面的p=x-fun(x-2);语句,此语句继续调用它本身,直到当x=1时,返回函数值3代入到调用它的表达式中,依此类推……,最终p的值为2。

第9题:

下列程序的输出结果是()。includeint fun(intx){int a; if(x==0‖x==1)return 3; elsea=

下列程序的输出结果是( )。 #include<stdio.h> int fun(intx) { int a; if(x==0‖x==1) return 3; else a=x-fun(x-2); return a; } void main() { printf("%d",fun(7)); }

A.2

B.8

C.9

D.5


正确答案:A
解析: 本题考查函数的递归调用。
在函数递归调用时,fun(7):a=7-fun(5)→fun(5):a=5-fun(3)→fun3:a=3-fun(1)→fun(1):a=3,反推回去 fun(3):a=3-3=0→fun(5):a=5-0=5→fun(7):a=7-5=2,最后的计算结果为2。

第10题:

以下程序的输出结果是【 】。include int fun(int x) {static int t=0; return(t+=x); }

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

include <stdio.h>

int fun(int x)

{ static int t=0;

return(t+=x);

}

main()

int s,i;

for(i=1 ;i<=5;i++) s=fun(i);

printf("%d\n",s);


正确答案:15
15 解析:static类型的变量是静态变量,本题中的静态变量t为静态局部变量。静态局部变量是在编译时赋初值的,即只赋初值一次,在程序运行时它已有初值。以后每次调用函数时不再重新赋初值而只是保留上次函数调用时的值。本题在多次调用fun函数的过程中,只在第一次调用时t的初值为0,以后每次调用函数时不再重新赋初值,而只是保留上次函数调用结束时的值,所以本程序的作用相当于将1到5数字进行累加,故输出结果为15。

更多相关问题