有以下程序:#include <stdio.h>void fun(int*a,int*b){ int*c; c=a; a

题目
单选题
有以下程序:#include void fun(int*a,int*b){ int*c; c=a; a=b; b=c;}main(){ int x=3,y=5,*p=&x,*q=&y; fun(p,q); printf(%d,%d,*p,*q); fun(&x,&y); printf(%d,%d,*p,*q);}程序运行后的输出结果是(  )。
A

3,5,5,3

B

3,5,3,5

C

5,3,3,5

D

5,3,5,3

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

第1题:

以下程序的输出结果是( )。 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。

第2题:

下面程序的运行结果是______。 include void fun(int &a,int b=3) { static int

下面程序的运行结果是______。

include<iostream.h>

void fun(int &a,int b=3)

{

static int i=2;

a=a+b+i;

i=i+a;

}

void main()

{

int x=5,y=2;

fun(x,y);

cout<<x<<",";

fun(x);

cout<<x<<endl;

}


正确答案:923
9,23

第3题:

有以下程序 include int i=0; void fun( ) { { static int i=1

有以下程序 #include<iostream> int i=0; void fun( ) { { static int i=1; Std::cout<<i++<<','; } Std::cout<<i<<','; } int main( ) { fun();fun(); return O; } 程序执行后的输出结果是

A.1,2,1,2,

B.1,2,2,3,

C.2,0,3,0,

D.1,0,2,0,


正确答案:D
解析:本题考核变量的作用域、生存周期和存储类别(自动、静态、存储器、外部)。题中即定义全局变量i又在函数fun内部定义了局部静态变量i,当进入函数fun里面的大括号时,局部静态变量i有效,所以输出1,然后局部静态变量i加1,出了里面的大括号后,全局变量i有效,所以输出0。同理,第二次调用fun后,输出2和0。

第4题:

有以下程序 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。

第5题:

有以下程序includefloat fun(int x,int y){return(x+y);}void main( ){int a=2,b=5

有以下程序 #include<iostream.h> float fun(int x,int y) {return(x+y);} void main( ) {int a=2,b=5,c=8; cout<<fun((int)fun(a+c,b) ,a-c) ;}程序运行后的输出结果是

A.编译出错

B.9

C.21

D.9


正确答案:B
解析:本题的运算过程是fun((int)fun (a+c,B,a-C,fun((int)fun(10,5),2-8),fun ((int)15.000000,-6),fun(15,-6)=9。

第6题:

阅读下面程序:include int fun( int a, int b ){int c;c=a*b;return c;}void main()

阅读下面程序:

include <iostream.h>

int fun( int a, int b )

{

int c;

c=a*b;

return c;

}

void main()

{

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

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

cout<<x<<end1;

}

其运行结果是【 】。


正确答案:60
60

第7题:

下面程序的运行结果为_____。 include void fun(int x=0,int y=0) { cout < < x < <

下面程序的运行结果为_____。

include<iostream.h>

void fun(int x=0,int y=0)

{

cout < < x < < y;

}

void main( )

{

fun(5) ;

}


正确答案:50
50 解析:本题考查的是函数的默认参数,如果一个函数中有多个参数,则默认参数应从右至左逐个定义,所以题目中x使用参数5,y使用默认参数0。

第8题:

阅读下列程序: include void fun(int n) { int x(5); static int y(10); if(n>0) {

阅读下列程序:

include<iostream.h>

void fun(int n)

{

int x(5);

static int y(10);

if(n>0)

{

++x;

++y;

cout<<x<<","<<y<<endl;

}

}

void main()

int m(1);

fun(m);

}

则该程序的输出结果是______。


正确答案:611
6,11 解析:由主函数mian入手,首先定义变量m等于1,然后调用fun函数。fun函数中y为静态数值,等于10,作用域为到本文件结束。所以y加1后,主函数中y的值也为11。其中函数中x的加1运算调用的是函数中的x等于5的变量,作用域为由定义到文件结束,即主函数中输出的x值为6。所以答案为6,11。

第9题:

下列程序的输出结果是()。 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。

第10题:

有以下程序:includeFloat fun(int x, int y){return(x+y) ;}void main( ){int a=2,

有以下程序: #include<iostream.h> Float fun(int x, int y) { return(x+y) ;} void main( ) { int a=2,b=5,c=8; cout < < fun((int) fun(a+c, b) ,a-c) ;} 程序运行后的输出结果是

A.编译出错

B.9

C.21

D.9.0


正确答案:B
解析:本题的运算过程是fun((int) fun (a+c, b) ,a-c) ,fun((int) fun(10,5) ,2-8) ,fun ((int) 15.000000,-6) ,fun(15,-6) =9。

更多相关问题