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和x y有什麼區別,c語言 x y與 x y有什麼區別?x 3,y 4,!(x 0)是什麼意思啊?
石孝柴詩 x y是一個賦值表示式,將y的值賦給x x y是一個邏輯表示式,判斷x是否等於y,其值為1 真 或0 假 c的函式中的形參接收的都值拷貝。用x y後使x指向了y,但x和y都是fun中的區域性變數,退出後都不存在了,影響不到主函式中的變數值。而 x y 是把y的值 也就是主函式中的b的值 賦...
c語言求1到100的和,c語言中 計算1到100相加
i的初始化值不同,一個是從0開始迴圈,一個是從1開始迴圈,從1開始的迴圈為1到100 包括100 做了100次加法,從0開始的迴圈為0到100 包括100 做了101次加法 煞神一刀 後面一個是從1開始的 前一個是先進行 s i 再進行i 當i 100時,迴圈一次s i之後i 101,退出迴圈 此時...
c語言吧。為什麼輸出會是1,而不是
printf 的引數並不會自動做型別轉換的。例子中格式串中有 f 編譯器就會當後邊的引數是個浮點數,它不做型別檢查。而把一個 int當成浮點數,因為兩種型別的儲存結構是完全不同的,後果就難以預料了,有可能程式崩潰,也可能正常執行,但得不到正確的結果。具體到樓主這個問題,把整數1當成浮點數處理,那就是...