以下程式的輸出結果是,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

void fun(int a,int b,int c)void fun1(int &a,int &b,int &c)int main()

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

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

以下程式的輸出結果是,以下程式的輸出結果是( )?

if a 10 ok1 a 10,所以 a 10 不成立,btw,這個地方 if else 之間 什麼都沒有,至少應該有個分號 else if ok2 x 10 ok2 0,所以 不成立 else x 1 最後結果 x 1 小章33學姐 if後面邏輯值為真時執行,if a 10 false else...

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退出...

c語言以下程式的輸出結果是a為什麼

輸出結果是字元z 位元組是20是因為 10 定義了你為x資料組準備了10個位子,沒個位子可以存放乙個資料 佔2節 10 2 20 位元組 printf c 由於沒有輸出列表所以c編譯器不知道是列印哪個變數裡的值 他產生的當然是個隨機數.假定int型別變數占用兩個位元組,其有定義 int x 10 則...