一道c語言題,儘量說詳細一點

時間 2022-04-13 11:50:10

1樓:

這是函式的遞迴

該函式相當於

void fun(int x)

所以輸出3 7

2樓:匿名使用者

你程式寫得好亂...

幫你整理一下

#include

void fun(int x)

main()

這程式執行到 fun(7) 會把 7 的值傳入 x 裡然後再執行 fun (int x)這個副程式(函式)執行 if(x/2>1) 判斷是否成立

成立就將 x/2 (=3) 的值再傳入fun (int x)裡再判斷 if(x/2>1) 是否成立

不成立則印出 x 的值

此時 x 的值為 3

再跳出 fun(3) 的函式

執行 fun(7) 的函式

輸出 7

所以結果為37

3樓:理科女

這個是遞迴呼叫 ,從主函式開始 看main() ,把7傳給x進入迴圈其中if(7/2>1)是假的飯麼輸出 printf("%d",x);

然後回到主函式 在輸出一個 printf("\n");那麼最終答案就是 7

希望可以幫到你 望採納!!

4樓:西域_雪狼

執行結果:3 7; 樓上那位同志分析出錯了,傳給7的時候(x/2>1)為真,這時候又呼叫這個函式,但這時候給傳的引數就是3了,繼續回到該函式開始的時候(x/2>1)就為假了,而此時遞迴該函式的時候傳的引數是3(就相當於x=3)所以就執行遞迴是的輸出就是3。然後遞迴結束回到第一次呼叫函式外面執行printf("%d",x),此時x的值並沒變,還是7,所以就會輸出7。

所以最終結果就是3 7;希望對你有幫助!

求教!一道C語言題目,求教一道c語言題,求詳細過程

你主函式裡m肯定還是1,func函式中的靜態變數應該是8了吧。你檢視變數值的位置是什麼樣的,如果在主函式裡檢視肯定是主函式中的m,即為1,因為發生作用域覆蓋了。你是第二次進入func後設定斷點,檢視m數值的可定為8。由程式執行結果為8 此時i 3,m 3 1 4,因此返回值為8 17 此時i 3 8...

一道c語言讀程式題,一道c語言讀程式題 include stdio h main int k 4,m 1,p p func k,m printf d, ,p p func

首先輸出結果是 8,17 第二,你上面這個程式編譯不了的,有2個問題 1 函式的返回值型別沒寫 2 func 函式體放在了main 函式後面且沒再main 函式中宣告。第三,註釋該程式 include 標頭檔案 void main 修改1 增加了void int func int a,int b 第...

c語言一道題 求詳解,C語言一道題 求詳解!

已知字母a的ascii十進位制 為97 char a a a a 也就是97a 這時候a a 1 96 printf d,c n a 2 0 a 3 0 d,c n 按照整型 d 和字元型 c 輸出a 2 0 和a 3 0 2 0 2,3 0 3 a 2 96 2 98 a 3 96 3 97 2 ...