1樓:匿名使用者
結果是3,10啊。這主要是由於自增操作符++前置還是後置決定的,比如說++a,就是先自增再使用,而a++就是說先使用再自增。執行printf(“%d,%d\n”,(++a,b++),a+b+c)這條語句的過程中,a=2(就是說已經自增了),b=3(還沒自增)。
等這條語句執行完之後,那麼a=2 b=4~
2樓:在飛英塔玩三國志的香瓜
我執行了下,結果是3,10
#include
main()
這裡面的(++a,b++)是個逗號表示式,a++和b++都執行了但最後輸出b++的結果
所以a+b+c就是2+3+5
3樓:匿名使用者
如果你在下面再加一句printf(“%d,%d\n”,(++a,b++),a+b+c);a,b的值就會變。
而這樣的話應該printf函式對變數只讀一遍,就是在一個printf中a都是1了。
4樓:蘇格拉頂了
printf(“%d,%d\n”,(++a,b++),a+b+c);其中的(++a,b++)是什麼東東,有這麼寫的嗎?
++a 表示先a=a+1再輸出,b++表示先輸出再b=b+1
以下程式的執行結果是()#include
5樓:
答案應該是121,第一次執行,a=2,b=1,c=2時a<b<c相當於2<1<2
當2<1時不成立為0,0<2成立為1,繼續執行大括號,結果為121
6樓:睡不著想你了
答案是1,2,1
#include
main()
printf("%d,%d,%d",a,b,c);
}這個程式的難點在於while (a
7樓:小特侖蘇的憂傷
我覺得答案是4,1,1
在比較a
8樓:陳世衝
1、2、0
做了兩次c--
以下程式執行後的輸出結果是??main(){ int a=10,b=20,c=(a%b<1)||(a/b>1);printf("%d%d%d\n",a,b,c);} 20
9樓:匿名使用者
#include
int main(int argc, const char *argv)
輸出結果是:10200
具體情況如下圖所示:
10樓:匿名使用者
結果是10 20 0
11樓:傑少多疾病
c=(a%b<1)先將a%b=10而10又》1,所以計算機的邏輯處理結果是0,c=0
以下程式的輸出結果是()main(){ int a=3,b=2,c=1;
12樓:莘振梅果琴
你把**這麼寫應該能看的清晰一點12
3456
78910
1112
1314
1516
1718
1920
21main()
13樓:匿名使用者
我測試出來的結果不是2,5,1,2,2,3, -2
14樓:小陸仁
我沒看明白 你宣告2個int b 是怎麼通過的
別弄的眼花繚亂了 讓人去看,我一看語法已經不對 了 就看不下去了
15樓:謊言一樣的誓言
我輸出的時18,而且我覺得也應該是18
++b之後b=3,b*=(a+b) b=b*(a+b)=3*(3+3)=18
16樓:匿名使用者
不對吧?第二個b應該是18啊
17樓:我是胡歌粉
c-=++b//b=3,c=c-(++b)=-2
b*=a+b//b=b*(a+b)=3
18樓:夏若樹森
題錯了吧,要想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
以下程式的輸出結果是 main() { int a,b,c; int s,w,t; s=w=t=0; a=-1,b=3,c=3;
19樓:聽不清啊
程式最後的輸出語句有誤,其一,三個%d連在一起寫而中間沒有空位,會導致輸出連到一起;其二要輸出值的變數要寫在雙引號外面,寫到雙引號裡面會照 原樣輸出字母而不是變數的值。
如下修改後會輸出 :2 0 0
main()
else if(c>0)w=a-b; else t=c;
printf("%d %d %d",s,w,t);}
20樓:匿名使用者
為什麼不自己去電腦上試試呢?
c語言,以下程式執行後的輸出結果是
21樓:匿名使用者
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=5,b=-1,c; c=add(a,b);printf("%d",c)
22樓:匿名使用者
main()
int adds( int x,int y)整個計算過程是這樣的:
第一次呼叫adds(a,b);
n*=++m //m=1 n=n*1=3m=n%x+y++; // n%x+y++=n%x+y=3%5-1=2
return(m); //m=2,所以c=2,第一次結果為2第二次呼叫adds(a,b);
n*=++m //m=3 n=n*3=3*3=9m=n%x+y++; // n%x+y++=n%x+y=9%5-1=3
return(m); //m=3,所以c=3,第二次結果為3
以下程式執行後的輸出結果是?? main(){int a=3,b=4,c=5,t=99;if(b
23樓:匿名使用者
初始 a=3,b=4,c=5,t=99
第一個if語句b
此時a=5,c=99 第二個if語句a t=b;b=a;a=t; 此時,a=4,b=5 最後輸出 4,5,99 24樓:匿名使用者 a=5,c=99 t=4 b=5 a=99 這個問題嘛,其實比較簡單。由於for迴圈裡面沒有趨近迴圈結束的語句,所以每次for迴圈都是要執行的。i 0時,兩個if都不成立,所以直接執行i 和s 1這兩句,使i 1 以此類推,i 2時,也是這樣執行,最後i 3i 3進入迴圈內的第乙個if語句判斷是成立的,所以執行continue,也就是跳出本次... 我執行了下復 結果是3,10 include main 這裡面制的 a,b 是個bai逗號表示式du,a 和b 都執行了但最後輸出zhib 的結果所以daoa b c就是2 3 5 如果你在下面再加一句printf d,d n a,b a b c a,b的值就會變。而這樣的話應該printf函式對變... 答案是1,0 因為根據算數優先順序從左到右進行運算 0 x 為真,真就是1,1 20也為真所以為1,然後下一條0 x為真就是1,x 20為假就是0,1與上0就是0 以下程式執行後的輸出結果是 main int x 10 printf d,d n x,x c語言函式引數處理順序 從右向左 printf...有以下程式程式執行後的輸出結果是
以下程式執行後的輸出結果是maininta,b
以下程式執行後的輸出結果是mainint x 20 printf