以下程式輸出的結果是?fun(int a,int b,int cc a b

時間 2021-06-17 08:08:54

1樓:

從主函式開始,首先,樓主你宣告瞭一個整型變數c,由於沒有賦值,系統給它賦一個隨機值。接下來進入fun函式,這時,系統在另一個地方開闢了一塊記憶體儲存a,b,c形參,(注意,這裡系統是另一個地方開闢了一個c,而不是原來的那個c,這也是你的問題核心所在),然後把2的值賦予a,把3的值賦予b,把c的值賦予c(注意,是把原來main函式的那個實參c賦予fun函式的形參c),然後c=a*b是fun函式裡的形參進行的計算,這時形參c=6(注意不是原來的那個c=6,因為兩個c的地址是不一樣的,不是同一個東西)。這時,函式完成,系統把剛才在呼叫函式時開闢的a,b,c給清除掉了,而你原來的c實際上並沒有參與運算,還是那個隨機值。

要想顯示c=6可以這樣:

fun(int a,int b,int c){ c=a*b;

cout<<c;

}void main

{int c; fun(2,3,c);}或者

void main

{int c; fun(2,3,c);

cout<<c;}或者

fun(int a,int b,int *c){ *c=a*b;}

void main

{int *c; fun(2,3,c);

cout<<*c;

}你的符號是全形,為了便於比較我沒改。

給分啊。

2樓:

cout輸出的是fun函式的實參,雖然在fun函式中有c的計算 但是這個c是函式形參 是個區域性變數 和main函式當中的c不是一樣的 當fun函式返回後 區域性變數c的值已經釋放了 main函式中輸出的c值仍然是未定義的

3樓:達拉然**

這個是因為 這個c

看上去好像輸出的是 6

其實可能是個 很小的負值 比如-789768123答案之所以無法確定是因為

**中的幾個c

不是同一個c

如果int c;

void fun(int a,int b){ c=a*b;}

void main

{ fun(2,3);

cout<<c;

}這麼寫 那麼輸出肯定是 6

這個跟值傳遞有關,你可以去看看形參

4樓:匿名使用者

你將c的定義放到main函式外就沒有問題了! 函式裡面生命的 內建物件不會自動初始化

5樓:裝著很懂

fun(int a,int b,int c){ c=a*b;}

這個函式的所有引數都不是輸出引數,所以計算出的c值只在該函式內部有效.在函式以的c你沒負值,所以無法確定.

這樣改fun(int a,int b,int& c){ c=a*b;}

6樓:

不是答案無法確定嗎?這。。。。。。求大佬

7樓:

因為你對變數c沒有初始化,在變數c的記憶體空間裡本來就有東西,於是就無法確定了。

還有這個程式是無法執行的呵:fun前面要加int然後及時加了int執行了上面的函式後變數c根本沒變,因為那個fun函式內沒有實參,也沒有return

還有那個我不太懂c++,所以程式改動如下::

#include

int ccc;

int fun(int a,int b)

void main()

ps:這個莫名其妙的程式從哪兒來的

以下程式輸出的結果是? void fun(int a,int b,int c) { a=456;b

8樓:

主函式名都拼錯了,還有那麼多全形符號!無錯的話輸出10,20,30,所以b正確,選b。

9樓:匿名使用者

選b在這裡,函式fun()不會改變x,y,z的值.

9. 以下程式的輸出結果是 ( ) #include"stdio.h" void fun(int a,int b,int c)

10樓:匿名使用者

9,x,y,z為實際引數,a,b,c為形式引數,在呼叫的時候取的是實際引數的值,所以a

10,w=u%v=8;u=v=16;v=w=8;繼續迴圈;w=u%v=0;u=v=8;v=w=0;迴圈結束(v=0)return u = 8;

12,巨集定義就是一模一樣的抄下來的,s(a+b):pt*x*x:pt*a+b*a+b:pt*1+2*1+2=9.5;

14, a=c++,b++;這句話沒看太懂;

17, c= f(a)/f(b):c= a*a/b*b=6*6/2*2=36;

15.下面程式的執行結果為: void fun(int a,int b,int c) { a=456;b=567;c=678; } main() { int x=10,y=20

11樓:匿名使用者

一樓說的對,函式引數是通過複製後傳到函式內部的,函式內部的運算是引數的副本,沒有改變引數的值,如果需要改變引數的值,可以通過使用指標

12樓:匿名使用者

因為系統把xyz傳給abc是將xyz複製後傳進去而並非把他們直接傳進去,所以abc得到是xyz的副本,所以在被呼叫函式中改變的是xyz的副本,xyz與abc沒有直接的聯絡所以他們的值是不受到影響的

13樓:匿名使用者

void fun(int *a,int *b,int *c)

main()

14樓:匿名使用者

c語言課本上有關於形參和實參的概念。相信會對你有幫助。

以下程式的輸出結果是【 】。 void fun(int *a, int *b) { int *k; k=a; a=b; b=k; }

15樓:匿名使用者

結果沒變還是3 6

x y分別是指向a b的指標,fun函式只是交換了x y指向指向的地址,不影響a b的值

程式設計師 inte***ce a{ int x = 0; } class b { int x = 1; } 問輸出結果是?

16樓:兄弟連教育北京總校

a 介面 、b類 和c類 是否在同一個類中?

如果 在同一類中的話 system.out.println(x);

這句話錯了 system.out.println(super.x); 這樣就ok了

因為內 x 這個屬性 你是繼承至 父類 而容 子類 本身 沒這個方法。

以下程式的輸出結果為,以下程式的輸出結果是 main int a 4,b 5,c 0,d d a b c printf d n ,d

你主要不明白無符號整型和有符號整型的區別 歸根結底printf 輸出的都是記憶體中儲存的值,只是有符號的第一位儲存符號位,而無符號整型則把它當做了資料的一部分輸出了,4在記憶體中的儲存為1 111 111 111 111 100 反碼為1 000 000 000 000 100 知道補碼的知識吧,1...

執行以下程式後,輸出的結果是mainint y 10 do ywhileyprintfd n ,y

雨落巴黎塔 選ddo while語句 先執行do裡面的迴圈體,再去判斷while條件是否成立,如果成立,一直執行下去,直到不成立終止迴圈 選d.c語言書上寫有,do 語句 while 表示式 其中語句是迴圈體,先執行後判斷,先執行一次指定的迴圈體語句,然後判別表示式,當表示式的值為非零 真 時,返回...

下面程式輸出結果是,下面程式輸出結果是什麼?

韋榮軒喜昱 當a 14時執行do while迴圈 由於開始時對a賦值10,所以輸出a 10,y 0 堵丹彤牟萱 輸出為 a 16 y 60,分析如下 main while a 14 這裡的迴圈條件不是判斷是否滿足a等於14,而是一個賦值語句,每次執行到這裡都會將14賦值給a,因此這裡的迴圈條件始終都...