以下程式的輸出結果是,C語言問題 以下程式的輸出結果是?

時間 2021-06-17 08:07:53

1樓:

c語言函式引數都是單向傳遞的,直接傳值是不可能改變原來的數值的。此題答案30,20(你的printf好像有點問題)。

#include

void fun(int *p1, int *p2, int *p3)

main()

2樓:匿名使用者

按lz所寫**輸出為30,20,因為函式的引數為所宣告變數的副本,這樣不會改變原有的變數。如果想改變原來的值可以有如下寫法:

(ps:舉一個例子,直接傳遞值相當於複製貼上操作,傳地址相當於複製貼上快捷方式)

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

3樓:匿名使用者

這道題的結果很簡單,x,y,z都沒夠改變數值,結果是30,20,10你問的是否交換數值,涉及到了你形式引數的問題了,像這道題,形參是數值,當然你本來的變數值不會改變,因為你只是把變數的值作為引數傳給了函式;

但是如果你的引數是指標或者引用的話,那麼你對形參的改變就相當於對變數的改變,因為他們對應的是同一個地址空間;

#include

關於指標做形參的情況,下面已經有人給你舉例了

4樓:匿名使用者

你需要傳地址進去而不是一個副本。

c語言問題:以下程式的輸出結果是?

5樓:polaris北斗

陣列a中的值沒有改變,所以a[2]的值還是6,選a

c語言,以下程式執行後的輸出結果是

6樓:匿名使用者

c=(a+=a-=5)是一個

表示式,(a=b,b+3)是另一個表示式。

a=0,a=a-5=-5,a=a+a=(-5)+(-5)=-10,將值賦給c,c=-10,此時,a=-5

a=b,將b的值賦給a,a=0,執行b+3=0+3=3,這個3不對任何變數賦值。

因此最終結果a=0,b=0,c=-10

輸出a、b、c的值,輸出0,0,-10

以下程式的輸出結果是()main(){ int a=3,b=2,c=1;

7樓:莘振梅果琴

你把**這麼寫應該能看的清晰一點12

3456

78910

1112

1314

1516

1718

1920

21main()

8樓:匿名使用者

我測試出來的結果不是2,5,1,2,2,3, -2

9樓:小陸仁

我沒看明白 你宣告2個int b 是怎麼通過的

別弄的眼花繚亂了 讓人去看,我一看語法已經不對 了 就看不下去了

10樓:謊言一樣的誓言

我輸出的時18,而且我覺得也應該是18

++b之後b=3,b*=(a+b) b=b*(a+b)=3*(3+3)=18

11樓:匿名使用者

不對吧?第二個b應該是18啊

12樓:我是胡歌粉

c-=++b//b=3,c=c-(++b)=-2

b*=a+b//b=b*(a+b)=3

13樓:夏若樹森

題錯了吧,要想b=3先把題改一下,b*=a+c

b=3,是因為在c-=++b處,b自增了,++b//b=b+1=2+1=3

b*=a+c//b=b*(a+c)=3*(3-2)=3

有以下程式,程式執行後輸出結果是include《stdio h》mainint i,n 0 for i

尾爽巴澤 結果是31,因為你的程式裡面case 後面都沒有break語句跳出,所以會依次執行下去,知道迴圈結束,具體來說就是當i 1的時候先執行case1,在執行case2,在執行default 此時a 8 然後執行i i 2,然後執行case2,在執行default 此時a先加3在加5就等於16,...

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

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

c語言,以下程式的輸出結果是,C語言問題 以下程式的輸出結果是?

輸出1 3 這是遞迴了,所以先是fun 3 進入後發現3 2 1,所以又繼續func 3 2 也就是fun 1 進入發現1 2 0,就執行prinft,輸出1,然後fun 1 就返回了 返回出去正好是fun 3 的prinft,輸出3 進入fun 3 進入fun 1 輸出1退出fun 1 輸出3退出...