c語言下面程式段執行完成後的輸出結果是

2021-03-04 05:03:10 字數 1555 閱讀 4776

1樓:匿名使用者

輸出:2

x=2是賦值語句,成立,執行printf,因為是x++,所以先輸出x,x再自加,故答案是c

下述程式段的輸出結果是 int x=10; int y=x++; printf(「%d,%d」,(x++,y),y++); 答案是 11,10

2樓:匿名使用者

先放張圖,規律bai很容易看出來吧

du首先,逗號

zhi運算子是

dao取右邊

這裡涉及到引數的求回值順序,即確定答最右側y++輸出是5後,自增1,導致下一步中間y++輸出是6,之後再自增1,最後y的輸出自然就是7。

是不是眼熟,這不就是棧嘛,後進先出,這題不太會考察,出題人估計都沒想到這一層,只是單純想考逗號和自增運算。

3樓:wuli學粑粑

這樣想行不行,最後printf((%d%d),y,y++);

應該先把y++算出來(++二級運算子比分隔運算子高)

y++取10,y為11

4樓:手機使用者

我覺得是這樣的,首先逗號運算子輸出的是最後一個表示式的值,這是毋庸置疑的,逗版號表示式中y的值是11,權(上面的回答已經解釋得很清楚了,我就不做解釋了),至於之後的那個y++的值,問題出在printf函式上,程式只呼叫了一次該函式,在這次呼叫中,既把y放在逗號表示式中輸出第一個結果,又讓y執行y++操作輸出第二個結果,所以兩個輸出都是針對一開始初始化的y進行的,若是呼叫兩次printf函式,y++的結果才是11

5樓:啦啦啦種太陽

printf先算(x++,y)後算y++是10 10

後算(x++,y)先算y++是11 10

所以是printf計算順序的問題?我也不知道是不是,小白弱弱的猜一下

6樓:匿名使用者

int main()

輸出:11,10 (因為你的y的值是x而不是x加1)

7樓:匿名使用者

「(x++,y) 是逗號表達du式zhi,取第一個dao子表示式的值作為整個表

回達式的值,故整個表示式的值為11,然答後x達到12」 非也。「逗號表示式」這種說法我不置可否,逗號運算子在此處起連線作用,相當於「·····然後····」的意思,最終生效的是最後那一串**。第一輸出的是y,第二輸出的也是y。

上述**中,y只有初始化,沒有賦值(除了y++以外,但此處對後輸出的y沒有影響),因此輸出結果必然是相同的。

「y++ 整個表示式的值是10,然後y達到12」 這也太說不過去了吧,y最終達到12了?

問問題的這位大概是沒有自己動手操作的吧?如果是的話,這裡就勸一句:盡信書不如無書,實際操作才是硬道理。

8樓:亮劍和

printf(「%d,%d」,(x++,y),y++)?

寫錯了沒

9樓:

int y=x++; 這個是先把x的值賦值給y,然後x自身在++明白否?

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

你好bai 1.程式的執行結果是 1,2 2.解釋每一du步的執行過zhi程 include void main while y printf d,d n a,y 從y 2,a 1開始哈 首先我dao們要知道後自 減內y 型的返回容值是y自減前的值 例如y 2 y 就返回2 進入while迴圈 y ...

C語言寫出下面程式段執行後,變數a,b的值

這段程式先判斷 x等不等於y x先自減再比較所以是9,y 先比較再自加所以此時也是9,所以這回 個三目運算子 答 問號前面的判別式為真,所以執行冒號前面的表示式,變數x再次自減,此時x為8,之後先後執行b x c y 兩條語句,注意此時y的值為10,不難發現答案為b c語言執行以下程式段後變數a的值...

c語言求解閱讀下面程式,程式執行後的輸出結果為

c忘記,c 的話bai 是一個轉換,du一個型別zhi強制轉換,因為字元可dao以轉化為整內形,整形可以轉化為字容符,只要對應ascii表就可以知道 這個表是用整數表示 第一次迴圈,0轉化,9轉化,然後自增自減,a輸出0到4 化字元,askii碼 b是9到5 一樣ascii 碼 c 對應的是 0為空...