输入AB$CDE回车,结果是什么?
1 #include<stdio.h>2 rev()
3 {char c;
4 c=getchar();
5 if(c=='$')printf("%c",c);
6 else
7 {rev();
8 printf("%c",c);
9 }
10 }
11 main()
12 {
13rev();
14 }
输入AB$CDE回车,结果是什么?
这个地龟函数小弟实在不明白,希望各位大大赐教!! 结果应该是$ 天蝎大大,我也觉得是$。可是老大说是$BA。 为什么不运行一下?嘿嘿 老大的话,佩服
solche aufgabe ist nichtrealistisch, aber kann in der klausur vorkommen, vermute ich.
hier jeder char c hat eigenen gueltigkeitsbereich.
Ablauf des programms bei Eingabe AB$CDE:
11-12-13-2-3-4-6-7*-2-3-4**-6-7-2-3-4***-5-10-8****-9.......
*hier c = 'A'
**hier zweiter c = 'B'
*** hier dritte c = '$'
**** bei dem prozedurende springt der zeiger zu aufrufender funktion zurueck;hier c= 'B'
analog wird A auch ausgegeben.
Ausgabe aufm BS: $BA
wichtig:
1geltigkeit bei der geschachelten rekusive-funktion.
2wo springt der zeiger hin, wenn der prozedur/die funktion zu ende laeuft. 这题够狠!!! 看懂这道题,就明白了递归函数调用机制的问题。 我看的时候就漏掉了后面的BA。
不过并不是因为不理解递归的机制。
页:
[1]