c語言問題,程式如下,執行結果為什麼是3,5,3,我看是3,

2021-05-21 19:02:17 字數 2034 閱讀 4957

1樓:汐日南莘

int a=3,b=5,c=7;

if(a>b)a=b;//這個if語句不成立 所以b不會賦值給ac=a;//這是把a賦值給c  這時a=3,b=5,c=3if(c!=a)c=b;//因為c等於a 所以這句不執行printf("%d,%d,%d\n",a,b,c);//最後結果 3 5  3

2樓:貌似風輕

#include

main()

等價於#include

main()

c=a;

if(c!=a)

printf("%d,%d,%d\n",a,b,c);

}兩個if都不成立,只執行了c=a;

所以結果是3,5,3

if、for、while等語句如果沒加大括號怎預設只有下一個語句在大括號內。

if()

a=b;

b=c;

等價於if()

{a=b;

}b=c;

3樓:蜻蜓點水

第一次的if語句只有一條語句

a=b後面有個分號,c=a不是if的語句,所以是一定要執行的語句執行完之後c和a是相等的

那麼第二個if就不會執行

意思是,如果a和c不相等,就執行

4樓:

if(a>b)//3<5不執行if下的語句a=b;

c=a;//這條執行c=a

if(c!=a)//上條執行完c==a

c=b;

printf(........);//故353

5樓:水裡風

a=b;是第一個if的,而後面的c=a;不屬於第一個if,,所以哪怕第一個if不執行這條語句也會執行

c語言程式 為什麼此程式的執行結果為 3,5,5,3??我自己分析是5,3,6,2

6樓:

首先你的自定義函式沒有返回值 是void的,所以fun函式只做輸出x,y值的作用

那麼來分析一下,你給fun函式傳遞進去 ,5,3首先賦值運算這,1.x=x+y;x=5+3;x=8;

2.y=x-y;y=8-3;y=5;

3.x=x-y;x=8-5;x=3;

所以輸出個 3,5;

既然fun函式沒有返回值,所以x,y的值不影響main函式的執行,也就是說main函式中,x,y的值沒有被改變

所以輸出 5,3

7樓:匿名使用者

首先fun函式內

x=5 y=3

x=x+y 後 x=8

y=x-y 後 y=5

x=x-y 後 x=3

所以第一

組輸出是3,5,

至於為什麼第二組是5,3,

那是因為你函式使用的是值參 而函式執行完成後 值參的傳參方式不改變引數的值

8樓:匿名使用者

void fun()功能為互換兩個數,結果:3,5,

main()呼叫fun(a,b)後,由於引數傳遞為值傳遞,單向傳遞,結果不能傳回主調函式,所以main()內a和b之不變,結果5,3

所以,此程式的執行結果為 3,5,5,3

為什麼我這個c語言程式執行完結果還是a=3,b=5?不是應該互換嗎?求解答

9樓:陌路賣醬油

你傳來的引數是值,在函式裡交換完後源,會bai釋放空間,而du且你並沒有接收函式傳zhi出的資料。

# include

void f(int*

dao i, int* j)

}int main(void)

10樓:匿名使用者

c語言給函式傳遞引數的時候,實際上傳遞的是引數的副本(陣列除外),所以在函式內對引數的修改對原引數沒有影響。

11樓:匿名使用者

f函式不能修改你主函式中定義的變數a和b的值。函式需要傳址引數才可以。就是說你必須將f函式的兩個引數定義為指標型別。

C語言題求執行結果給出解釋 下列程式段執行後的輸出結果

這段 最抄後輸出的是 4,ps n應該是 n a?b c語句的意思是 1.假如a 邏輯表示式或0 1 的邏輯值為0,則語句的值為b b為表示式則取最後的值 2.假如a的邏輯值為1,則取c的值。在你的語句中a對應的為 k 不懂可追問 k 判斷 k 答案d應該是 4 而不是4 選a 條件運算子,右結合性...

執行C語言程式

寫好源 後儲存了 路徑中最好不要包含漢字 然後點開始 找vs net工具 選擇vs net命令提示 像cmd下操作一樣 進入到你儲存源 的路徑 不過編譯器我好像忘了 c 的應該是csc.exe 類似 c 的 比如你一個檔名叫abc.cs 直接輸入csc abc就可以 但c 編譯器應該不一樣吧 你在你...

c語言,下面程式執行的結果是什麼

最後輸出 1711717 過程 進入fun後s1指向字元 1 回s2指向答字元 7 t 1 s1指向 2 w 1234567 w 1734567 s2指向 6 w 1734517 t 7,s1指向 3 w 1734517 w 1714517 s2指向 5 w 1714717 t 1 s1指向 4 w...