stellarium怎么读:C语言习题求助!!!

来源:百度文库 编辑:神马品牌网 时间:2024/05/06 02:31:16
18. 有如下程序
??long fib(int n)
??{ if(n>2) return(fib(n-1)+fib(n-2));
??else return(2);
??}
??main0
??{ printf(“%d\n”,fib(3));
??该程序的输出结果是 (B)
??A} 2 B} 4 C} 6 D} 8
23. 下列程序段的输出结果是 (A)
??A) 2 1 4 3 B) 1 2 1 2 C) 1 2 3 4 D) 2 1 1 2
??void fun(int *x, int *y)
??{ printf(“%d %d”, *x, *y); *x=3; *y=4;}
??main()
??{ int x=1,y=2;
?? fun(&y,&x);
?? printf(“%d %d”,x, y);
??}
这2题怎么做啊?谁能帮我?

第一个很简单,就是递归,fib(3)=fib(2)+fib(1);
而fib(2)=2,fib(1)=2,所以fib(3)=4;

第二题你代入看看就可以了,首先fun(2,1)
输出了2 1,然后*x=3,*y=4,但是你注意,在fun这个函数之中*x,*y可以叫做“内参数”,而x,y叫外参数,你在fun之内的效果相当于把外边的y赋值为3,x赋值为4了。明白了么?

B
A