c语言 来解释一下1h

(35) 有如下程序
long fib(int n)
{ if(n>2) return(fib(n-1)+fib(n-2));
else return(2);
}
main0
{ printf(“%d\n”,fib(3));
该程序的输出结果是
A) 2 B) 4 C) 6 D) 8
谁能说明一下个行的意思
说的越详细越好

第1个回答  2006-08-14
fib(3)=fib(2)+fib(1),这时候,程序会先计算fib(2)和fib(1),而2和1都不大于2,所以fib(2)和fib(1)都返回2,所以结果为4。

如果题目问的是fib(4),那么fib(4)=fib(3)+fib(2),程序要先计算fib(3)和fib(2),fib(3)又等于fib(2)+fib(1),算出来为4,fib(2)算出来为2,所以结果为6。
第2个回答  2006-08-14
选B...按类分应该是一个递归函数...结果为:4.....首先主函数传递一个3..然后进行判断..由于大于2那么进行return(fib(n-1)+fib(n-2)); 执行完里面的运算之后是:return(2+2); ..原因是:fib(n-1)=fib(3-1)=fib(2)...2=2并且不大于2所以返回一值为2...后者也是一样..返回一个2..2+2=4

回答完毕本回答被网友采纳
第3个回答  2006-08-14
选A。没悬赏,不解释了。
第4个回答  2006-08-14
B,简单的递归,详细懒得说了

c语言 来解释一下1h
fib(3)=fib(2)+fib(1),这时候,程序会先计算fib(2)和fib(1),而2和1都不大于2,所以fib(2)和fib(1)都返回2,所以结果为4。如果题目问的是fib(4),那么fib(4)=fib(3)+fib(2),程序要先计算fib(3)和fib(2),fib(3)又等于fib(2)+fib(1),算出来为4,fib(2)算出来为2,所以...

用C语言:编写一个计算机的串行端口程序
3H:文件结束 这样,每当发送机发送一个字节以后,就等待接受机发回送信号,这回 送信号就是发送机发送过来的那个字节。发送机接收到回送信号后,把 它与刚发送的字节相比较,如果相同,就发送新的半个字节,否则就重 新发送。新数据与旧数据通过信息位来区分。下面就是我用C语言编写 控制串行口的程...

C语言关于%符号的运算
\/\/定义秒数为n;\/\/1h=3600 s --->小时数为n\/3600 余数为 n%3600 \/\/1m=60 s --->余数再除60就是分钟数,即 (n%3600)\/60 \/\/多少秒就直接对60求余即可 n%60 include<stdio.h> main(){ int n=10000;printf("%d小时 %d分钟 %d秒\\n",n\/3600,n%3600\/60,n%60);} ...

C语言运算符 &和 &&的区别
& 是位运算符,也就是二进制计算 07H = 111B FCH = 11111100B 07H & FCH = 100B = 4H && 是逻辑运算符,0代表false,其他数值代表true(一般用1表示)07H 不是0,所以为true FCH 不是0,所以为true true && true 的结果为 true,用1表示,所以 07H && FCH = 1H ...

c语言问题。谢谢了!
正数真值=正数本身;负数真值=数值位取反+1。所以:真值(FFFFH)=8000H+1H=8001H=-1 真值(BCDEH)=C321H+1H=C322H=-(4*4096+3*256+2*16+2)=-17186 16进制数区别的标准是数开头的0x或者结尾的H,数值部分可以用小写,如果你做过网络数据报截获就会发现很多都是小写的。

8086指令系统的寻址方式有哪些???
格式:mov al,1h 把1h送进al 2.寄存器寻址方式 功能:直接把寄存器里的内容送进寄存器;操作数在寄存器中,指令指定寄存器号;这种寻址方式由于操作数就在寄存器中,不需要访问存储器来取得操作数,因而可以取得较高的运算速度;格式:mov ax,bx 3.存储器寻址方式:形成操作数逻辑地址的偏移量;以下...

汇编属性操作符是什么
在程序中,我们有时需要对同一个存储单元以不同的属性来访问,或对一些不确定的存储属性需要显式指定等,这时,我们就需要强制属性操作符PTR。该操作符的作用有点象C语言中的类型强制方法。对于指令:MOV [BX], 1H,其目标操作数[BX]是寄存器间接寻址方式,它指向一个存储单元。在作传送操作时,是把...

求问个c语言问题:如图,为什么+32后可以大小写转换
0 0H (NULL) 64 40H 1 1H 65 41H A 2 2H 66 42H B 3 3H 67 43H C 4 4H 68 44H D 5 5H 69 45H E 6 6H 70 46H F 7 7H BEEP 71 47H G 8 8H 72 48H...

C语言这题如何不四舍五入
底面积 = 3.141 体积 = 3.141 Press any key to continue \/ include <stdio.h> define PI 3.14159265f int main() { float r,h,s,v;printf("r = ");scanf("%f",&r);printf ("h = ");scanf("%f",&h);s = PI*r*r;v = s*h;printf("底面积 = %.3lf\\n",int(1000 ...

汇编语言中[BX]表示什么
bx代表一个寄存器,[bx]代表一个内存地址,段地址默认在ds中,偏移地址在bx中,即ds:bx。一般[bx]做变量使用。有什么问题加q讨论,我也是汇编爱好者。qq:7234801

相似回答
大家正在搜