執行完下列語句段後,i值為int f int xreturnx0x f x 1 2 int i i f f

2022-04-14 14:48:12 字數 981 閱讀 6174

1樓:匿名使用者

你的程式我在軟體複製了一遍,出現語法錯誤哦···而且我改了逗號語句後(程式在後面),我認為你這個程式有問題,當你主函式隨便呼叫一次f(x)時,它都只會呼叫return語句,後面的語句都執行不了,因為程式是順序執行的。你一進入這個函式,就會首先執行return語句,然而return語句是結束整個函式的標誌···return後面的值不會執行到的。所以要問i的值是多少,應該通過程式呼叫不會得到i的吧。

#include "stdafx.h"

#include

#include

using namespace std;

int f(int x)

{return ((x>0) ? x* f(x-1):2);

int i;i=f(f(1));

cout<<"i="<0,則執行逗號前面的語句,然後呼叫自己(遞迴),即j = f(2) = 2*f(1);

f(1) = 1 * f(0); f(0) = 2;這樣懂嗎?

2樓:

f(0)=2;

f(1)=1*f(0)=2;

f(f(1))=f(2)=2*f(1)=4;

設有說明int y=10; 則執行完以下語句後,y的值為 do{ y--; }while(--y); printf(「%d\n」,y--);

3樓:匿名使用者

int y=10; //賦值y為整形變數為10do //先執行do裡面迴圈體內容一次

while(--y); //再檢查迴圈體執行條件(當while()括號內的值為0時,則為假跳出迴圈,不為0時就是真,執行迴圈體。

printf("%d\n",y--); //輸出最後的y-1的結果!

4樓:自由戰士

do while 先執行後判斷,當while(0)時結束迴圈,此時y=0,輸出y--,先運算後自減。結果為0

下列語句序列執行後,j的值是,下列語句序列執行後,j的值是( )。

拿分的!謝謝,不要罵我!沒有人答就給我,再謝謝 拿分的!謝謝,不要罵我!沒有人答就給我,再謝謝 拿分的!謝謝,不要罵我!沒有人答就給我,拿分的!謝謝,不要罵我!沒有人答就給我,再謝謝 拿分的!謝謝,不要罵我!沒有人答就給我,再謝謝 拿分的!謝謝,不要罵我!沒有人答就給我,拿分的!謝謝,不要罵我!沒有...

c語言中執行完switch語句中的default語句後是跳出

先計算switch括號後面表示式的值。並逐個與其後的常量表示式值相比較,當表示式的值與某個常量表示式的值相等時,即執行其後的語句,如若後面有break語句,則直接跳出。如果沒有break語句,然後不再進行判斷,繼續執行後面的case後的語句。直到遇到break語句跳出。如表示式的值與所有case後的...

已知intx5,y5,z5執行語句xyz後,x的值是多少

5,5 10,不夠就等於本身。這個語句應該是從右到左吧 x x y z 的意思是取餘 x最後應該是10 自己理解的,對不對不知道 我也是學程式設計的 已知int x 5,y 5,z 5 執行語句x y z 後,x的值是 x y z x x y z x 5 5 5 5 c語言題目 已知int x 5,...