C語言問題

2022-12-30 22:41:13 字數 843 閱讀 4063

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碼是接收鍵盤輸版入一個值,按大小順序插權入到陣列。第一個迴圈是從陣...