1樓:匿名使用者
x=1,y=1
z=x++
把x給z,所以z=1,之後x++,所以x=2;
y++原來y=1,現在變成2
++y前面y=2,現在變成3
所以,最後:
x=2y=3
x=1擴充套件資料c語言的運算非常靈活,功能十分豐富,運算種類遠多於其它程式設計語言。在表示式方面較其它程式語言更為簡潔,如自加、自減、逗號運算和三目運算使表示式更為簡單,但初學者往往會覺的這種表示式難讀,關鍵原因就是對運算子和運算順序理解不透不全。
當多種不同運算組成一個運算表示式,即一個運算式中出現多種運算子時,運算的優先順序和結合規則就會顯得十分重要。
2樓:別懂我
逗號表示式優先順序低於賦值運算子,所以z = x++, y++, ++y;===》(z =x++),(y++),(++y);
應與z = (x++, y++, ++y);區分
3樓:匿名使用者
答案是2,3,1.,首先z=x++,結果是z=x,然後在執行x++,y++,x=y=2,在執行++y,所以最後x=2,y=3,z=1
4樓:匿名使用者
第4步應該錯了吧。。。z只執行了z=x++這一步。後面的只是y的自加而已。沒有將值付給z。忘採納
5樓:寒冰追風
z=x++,y++,++y;
這個的最後結果就是z=x++;因為z的賦值只有z=x++;
z=(x++,y++,++y);他的結果才是z=3
c語言中,int x,y,z;x=y=1; z=x++,y++,++y;printf("%d%d%d",x,y,z);最後輸出的結果是2 3 1 為什麼z不是3?
6樓:簡丹秋緱旭
賦值運算子的優先順序是
14,而逗號表示式的優先順序是15,也就是說上面的表示式中應該等價於這樣的結合:(z=x++),y++,++y;如果這樣寫的話,則答案很清晰,
為:2,3,1
7樓:陳從安頓雙
重點在這裡:z=x++因為後面沒有z的賦值語句,所以這裡決定z的取值..
因為自增運算子x++是先賦值再自增,則先把x的值賦於z,所以這裡z=1,然後x再自增變成2...
c語言:已有定義int x=3,y=4,z=5;則表示式 !(x+y)+z-1&&y+z/2的值是?
8樓:
答案是1。
涉及到的運算子: ! () + - && /運算子優先順序為:() ! / + - &&運算過程:
x=3,y=4,z=5
!(x+y)+z-1&&y+z/2
!(3+4)+5-1&&4+5/2
所以表示式計算步驟為
!(3+4)+5-1&&4+5/2 -> !7+5-1&&4+5/2!7為 0
-> 0+5-1&&4+5/2
5/2 整數除整數得整數 2
-> 0+5-1&&4+2
-> 4&&6
邏輯運算 &&
擴充套件資料c語言運算子的優先順序:
如果同一優先順序的運算子,結合次序由結合方向所決定。
9樓:匿名使用者
只是等於1的,我是經過turbo c2.0編譯過的,答案應該沒什麼問題的,程式是:
main()
答案為什麼會等於1呢?那是因為運算級別的問題,根據運算級別,實現算括號裡面的先,所以程式就變成!7+z-1&&y+z/2;
然後就算!運算,由於7是大於1的,也就是真,所以!真就是假,也就是0,所以函式就變成0+z-1&&y+z/2;
然後再算除號的,由於你這裡兩個都是整形的,所以小數點後面的數忽略,所以就變成0+z-1&&y+2;
接著計算加減運算,也就是變成4&&6;
因為4和6都是大於1的數,所以就是真,由於&&兩邊都是真的話,輸出的就是真,所以結果就是1。
要是還有什麼不明白的話,就mm我吧!嘻嘻~~~~~~
10樓:匿名使用者
1優先順序: 算數》條件》關係》賦值
關係中的優先順序: 非》與》或
11樓:匿名使用者
1,把運算子優先順序搞清楚就好了
12樓:匿名使用者
x等於y加4。四家外加1+3+5+4+1等於三五+4+5+1。
13樓:匿名使用者
!(3+4)+5-1&&4+5/2
=!7+4&&4+2
=!11&&6
所以說那個式子的值是:不是11並且是6
c語言問題: {int x,y,z; x=y=1; z=x++;y=z++,x=y++; printf("%d%d%d\n",x,y,z);此題看不懂呀!求“詳”解
14樓:
x=y=1; 使得變數baix和y的內容都為1
z=x++; 表達du式的計算
zhi結果使daoz的內容為
回x的初始答
值,即z的內容為1, 同時x的內容變為2
y=z++; 表示式的計算結果使y的內容為z的初始值,即y的內容為1,同時z的內容變為2
x=y++;表示式的計算結果使x的內容為y的初始值,即x的內容為1,同時y的內容變為2
樓上的答案是對的,如果你給結果是輸出結果,那你的四個選項都不對啊
15樓:匿名使用者
你看下x++的說明,++在前面是先+1,再進行=運算,++後面是先進行=運算然後再+1
比如z=x++,運算順序是z=x; x= x+1;
16樓:熊孩紙
z=x++,先x後++,此時z=1,x變為2,y++,此時y=2,++y,此時y=3。最後輸出x=2,y=3,z=1
17樓:匿名使用者
最後x是1, 因為最後被賦值了
y和z都是2
C語言中怎麼計算x,y的值,c語言中(x,y)中怎麼計算
int x,y 定義的時候如果不初始化,不同的環境會初始化不同的值,有的是0,有的不是,你的這個程式,x的結果是不定的,同時,有些環境下除錯也會報錯! 此處無名勝有名 c語言的賦值語句是從右到左執行的,比如 x y 1 意思就是 把y 加1後賦值給x但c語言的語序是從上到下執行的 本題中,當執行in...
運用乘法公式計算(3x 5)2 (2x 7)(x y 1)(x y 1)(2x y 3x 2)(x 2)
1 3x 5 2 2x 7 2 9x2 30x 25 4x2 28x 49 5x2 58x 24 2 x y 1 x y 1 x y 2 12 x2 2xy y2 1 3 2x y 3 2 2x y 2 2 3 2x y 32 4x2 4xy y2 12x 6y 9 4 x 2 x 2 x2 4 盧...
用c語言計算並輸出1 ,1 2 ,
呼義竹媼 include long factorial unsigned intn return product int main void return0 效率低了點兒,靈活性好,畢竟是學習一下,如果純粹要結果還是二樓的效率最高 翦春譙淑 這個太大了,估計結果會不正確,因為就算是unsignedl...