1樓:
此題關鍵是弄明白static,它的作用:
1). 在函式體,一個被宣告為靜態的變數在這一函式被呼叫過程中維持其值不變。
2). 在模組內(但在函式體外),一個被宣告為靜態的變數可以被模組內所用函式訪問,但不能被模組外其它函式訪問。它是一個本地的全域性變數。
3). 在模組內,一個被宣告為靜態的函式只可被這一模組內的其它函式呼叫。那就是,這個函式被限制在宣告它的模組的本地範圍內使用。
所以開始執行程式第一步把k=2帶入子函式fun3後,得到a=5,所以系統就記下a=5了,所以第二次帶入m=1時候,a=a(=5)+m=6,最後a的值作為函式的返回值賦給n,最後輸出n,即得到6.
大概就是這樣子了,希望能對你有所幫助
2樓:匿名使用者
答案是6是對的
因為你a宣告的是靜態變數,是不隨函式結束而改變值的;
所以:main()
3樓:匿名使用者
函式fun3(int x)實際就是返回x+3開始你的k是2,呼叫fun3(2)計算得到5賦值給nm是1,呼叫fun3(1)得4賦值給n
所以你最後的n應該是4,列印的結果是4
4樓:匿名使用者
從main方法開始
n=fun3(k)
k=2a=3
a=3+2=5;
n=a=5;
這裡a=5不會釋放記憶體空間
所以下面a=5,而不是a=3。
n=fun3(m)
m=1a=5
a=5+1=6;
n=a=6;
printf("%d\n",n);6
c語言問題,C語言問題
struct student拼寫成struct studnt了。拼寫錯誤 struct studnt沒有定義,所以無法執行sizeof。include typedef struct student int main c語言問題?嗯你的理解是對的,break就是用來跳出的switch,如果沒有brea...
c語言問題,c語言問題
首先你這個程式輸入個數是不可控的,n沒起到作用,因為你控制輸入的迴圈已經規定了i是從0到99,必須要輸入100個。而你這個 自認為統計總人數 的n n i,相當於n 1 2 3 那是不可能的。while xh i scanf d d xh i sg i n i sum sum sg i 用美元符號做...
c語言問題,C語言問題
if判斷句中,x 1 是真命題,所以x被賦值為1,y x,所以y被賦值為1。下一條語句,y y 1,所以y 2。所以x 1,y 2 c語言問題?這句迴圈的bai意義是從索引9開始du 向左遍歷元素,直到i j結束。zhi 整段代dao碼是接收鍵盤輸版入一個值,按大小順序插權入到陣列。第一個迴圈是從陣...