C程式過程問題

2022-12-14 08:55:15 字數 1214 閱讀 5211

1樓:匿名使用者

首先來分析一下函式func()

就是b=b+a;

接著c=b-a 注意此時b=b(原來的)+a,所以c=b(原來的)+a-a=b(原來的)

也就是說函式func(a,b,c)的功能就是令c=b注意它的三個引數分別是int a,int b,int &c,其中a,b都是普通變數。普通變數作為形參,在函式func()中其值被改變不會影響實參。而c是引用變數(int &c表示c是一個引用變數,和指標的概念差不多),因此在函式func()中如果改變了c的值,那麼傳遞過來的實參也隨之改變。

舉例來說,執行func(x,y,z)後,雖然函式func()中有句b+=a,但不代表y=x+y。也就是說,無論函式func()中如何運算,x還是x,y還是y,只不過是函式func()中的a,b改變了而已。只有z變為y,因為z傳遞的其實是z的地址。

那就簡單了:

func(1,2,x); //執行完後:x=2func(x+y,y,y); //執行完後:y=y=1func(z,x+y,z);//執行完後:

z=x+y=3所以輸出cout<

是 2,1,3

2樓:匿名使用者

形參中普通變數值的變化不會使實參變化,而c是引用變數,實參隨形參變化。

所以:func(1,2,x); //執行完後:x=2func(x+y,y,y); //執行完後:

y=y=1func(z,x+y,z);//執行完後:z=x+y=3所以輸出cout<

是2,1,3

3樓:勢如雲

分析如下:輸出2,1,3

1.func(1,2,x);

a=1,b=2,c=x

執行b+=a; 後 b=3,a=1

c=b-a;後 x=c=3-1=2

2.func(x+y,y,y);

這裡的x值繼承上面的x=2

a=x+y=2+1=3;b=y=1;c=y=1執行b+=a; 後 b=4,a=3

c=b-a;後 y=c=4-3=1

3.func(z,x+y,z);

這裡的x,y值繼承上面的x=2,y=1

a=z=2;b=x+y=2+1=3;c=z=2執行b+=a; 後 b=3+2=5,a=2c=b-a;後 z=c=5-2=3

c語言程式問題

應該是a pow i n 1 n,4 3 和m 64 1 i n 1 n 1000 r pow b,4 3 這兩個語句出了問題。先看看a pow i n 1 n,4 3 其實a就等於pow 4 3 4除以3的值是1。還有,本句中的i除以n和1除以n的結果都是整數。m 64 1 i n 1 n 100...

c語言程式的問題,一個c語言程式的問題

r fun x y x y z 是呼叫你定義的函式 x y x y 對應函式裡的第一個引數 括號裡面是三個表示式 由於c語言的運算是從右向左結合 因此有效引數為x y 13 z 對應函式裡的第二個引數 z 是先將自身的值傳進函式 再進行自減運算 即傳進去的第二個引數為8 r fun 意思是r的值引用...

c語言程式問題高手幫忙,c語言一個程式問題 高手幫忙

c語言是由表示式組成的,a b本身就是個表示式,表示式具有值,大於號是左結合的,就是說從左向右依次比,如果大於關係成立,則這個表示式的值非零 一般是1 如果不成立則此表示式的值為0,a b c的運算順序相當於 a b c就是先求出括號內表示式的值再和c比較,如果成立,同樣還是返回1,否則是0 如果列...