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