乙個C語言的自增自減題就做不了。。

發布 科技 2024-02-05
18個回答
  1. 匿名使用者2024-01-25

    if(expression) 如果 expression=0 為 false,則表示式不等於 0 為 true。

    c=a+b ;這是賦值語句,它返回最左邊的值,即 c

    x--;字尾,先執行語句,然後自減。

    x;字首,先減去,然後執行語句。

    這裡 x--<5這裡你可以看一下整體 ( x<5, x=x-1) 所以當你輸入 5 時,你不會執行 printf("%d",x);但是 x 仍然必須減去 1 才能變成 4然後到 printf("%d", x++) 5 之後的 x++

    但是輸入丟擲 x=x+1 之前的值,即 4

  2. 匿名使用者2024-01-24

    - + 變數後,計算為更改前的值。

    所以在 x--<5 之後,x 自減為 4

    否則,當得到輸出時,得到 x 的值,列印後,將 x 加成 5,所以輸出為 4,第二個問題括號內的表示式如果為 c=a+b,計算完表示式後,c=4,整個表示式的最後乙個值也是 4, 4 為 true,因為所有不是 0 的數字都為 true,因此輸出為 yes

  3. 匿名使用者2024-01-23

    1) -- 如果放在後面,會先執行運算,然後減去 1,所以輸入 5 後,先判斷 5 < 5,這是假的,然後執行其他。

    類似地,printf(x++) 等價於 printf(x); x = x + 1;

    2) c = a + 1 是賦值表示式,執行成功值為 1,因此列印 yes。如果要比較,應該是==

  4. 匿名使用者2024-01-22

    計算:從右到左,輸出到 Buffer。

    1. 緩衝區是乙個堆疊。

    2.第一步:將以下“i--”8處理到緩衝區中,i=7。 緩衝區:8<-(指標)。

    第 2 步:將“i++”7 處理到緩衝區中,i=8。 緩衝區:

    78< - 第 3 步:處理“--i”。 8 進入緩衝區,i=7

    緩衝區:878 第 4 步:處理“++i” 首先自增量 1,然後 8 進入緩衝區,i=8

    緩衝區:8878

    3.輸出緩衝區資料(堆疊規則):8878

    此外,自遞增、自遞減,也可能與編譯器有關。

  5. 匿名使用者2024-01-21

    在表示式中,++和標題一樣,在變數前面,在取變數值之前是自加減法。 變數之後,先取變數的值,然後進行自增自減。

    例如:j=i++; 這意味著 i 的值首先分配給 j,然後 i 是自遞增的。 這也是下面**的意思。 您可以使用此想法來遵循。

  6. 匿名使用者2024-01-20

    i++ 和 ++i 在 C 語言中都是自動增量,但它們以不同的順序自增量。 ++i 表示 I 遞增 1 然後參與其他操作,而 i++ 表示 I 參與操作,i 的值遞增 1。

    第四行被賦值 j, j=3,然後 i+1=4

    第 5 行 printf 也被計算出來,認為執行了 i++ 操作 j=3,輸出為 i=4,然後計算出 i=i+1=5

    在第 6 行中,i+1=5+1=6,然後 j=6

    在第 7 行中,輸出 i+1=6+1=7,輸出 i=7J 不變或 6,第 6 行與第 1 行相同。

    i- 1 一次輸出 6,j 也是 6,然後 i 減去 1 次 = 5;

    最後兩行道理也留給樓主去思考,其實printf最好不要把計算步驟放進去,很容易忽略。

    如果您不明白,請詢問。

  7. 匿名使用者2024-01-19

    6. X 希望對你有所幫助。

    --對奧地利---的採用感到滿意

    4. 首先,i++==1&&(j==3||k++==3) 是乙個 bai 邏輯表示式。

    i++==1&&(j==3||k++==3)分為兩部分:i++==1和(+j==3||k++==3) 他們的關係是和關係。

    因此,這兩個部分都將被執行。

    i++==1

    就是判斷此時i是否等於1(因為++是後來的),i=1;

    執行此句後,i=2

    然後執行第二部分。

    +j==3||k++==3)

    它分為兩部分。

    j==3 和 k++==3。

    這兩部分是 or 的關係。

    如果第一部分滿足條件,則不執行以下部分。

    如果第一部分不滿足條件,則執行下一部分。

    j==3 是 j 加 1 先自己,然後判斷 j 是否等於 3

    這部分的結果是真的。

    所以後半部分沒有執行。

    最終結果是 i=2 j=3 k=3

  8. 匿名使用者2024-01-18

    問題 1:當遵循 ++ 時,先執行語句,然後執行。 因此,4<2 不成立,取 y 的值,此時 y 沒有變化,所以它是 2。

    問題2:這有點難。 關鍵是為什麼 k 的值是 3 而不是 4。 因為“or”運算,前面的++j已經是真的,所以k不再判斷,也就是k++不執行,所以k沒有變。

    問題 3:不用說,--在後面,在 printf 中,原始值仍然是 23。 然後在執行 printf 後,它立即變為 22,while 中的值變為 ! 22。

    房東,你有什麼問題嗎?

    還有這樣乙個問題,i=1; a=i++;b=a;c=i+++i++;讓我們找出 abc 的值。 如果你把; 如果號碼被替換會發生什麼,都是相似的。 也就是說,自加法和自減法,所有這些都在單個語句中限定。

  9. 匿名使用者2024-01-17

    i=5;

    它應該是 a=5,對吧?

    x=(++a)+(a)+(a);

    這種問題沒有必要分析。 在不同的編譯系統下,答案是不一樣的,在VC++下,答案是24。

  10. 匿名使用者2024-01-16

    說白了,這種無意義的操作在不同的編譯器上可能會產生兩種不同的結果。

    我已經告訴過你了。

    有從左到右,有從右到左,你不明白嗎?

    這取決於編譯器。

    這樣的問題毫無意義。

    因為[像你這樣的公式的輸出]。

    他輸出的值取決於你使用的編譯器型別]如果你不理解它,它真的沒有意義,你只能說:毫無意義。

  11. 匿名使用者2024-01-15

    這種可移植性很差,因為每個編譯器都有不同的解釋,根本無法用 GCC 編譯。

  12. 匿名使用者2024-01-14

    這種話題就是把字寫回去有幾種方法,是沒有意義的。

    根據 C++ 的語義,答案應該是 22但是,有些編譯優化或編譯器不遵循規範,這可能會導致結果為 24

    對於這種不確定且無意義的問題,我們只需要確保測試點是 ++ 的優先順序和返回值的語義,並且答案在編譯和優化時是不確定的。

    答案 24 的由來:

    t& operator++(

    t operator+(const t&a)t o=5;

    根據語義:o(6)。operater+(

    t(14).operator+(o(8))=22

  13. 匿名使用者2024-01-13

    列印的 x 是什麼?

  14. 匿名使用者2024-01-12

    是的,由於 ++ 具有最高優先順序,因此第乙個 ++j 使 j=6; 但是 ++j 後跟 j=7,然後執行二進位加法得到結果 14,然後是 +(+j),因此結果是 22。 在申請過程中,最好不要使用,這樣會模稜兩可。

  15. 匿名使用者2024-01-11

    鍵入整個 **,並且此 q 的值為 21,除非此表示式之前有 ++

  16. 匿名使用者2024-01-10

    最好不要以這種方式使用自動遞增,因為不同版本的實現是不同且不明確的。

  17. 匿名使用者2024-01-09

    a-=a*a ;它相當於 a=a-a*a; 在本例中,a 的值為 5-5*5=-20

    b=(a=3*5,a*4,a+5);這是乙個逗號表示式,b的值是逗號表示式最右邊的值,即a+5的值,逗號表示式的第一項是a=3*5;所以 a 的值變為 15,b 的值為 a+5=15+5=20

    逗號表示式中間的 a*4 項沒有任何意義。

  18. 匿名使用者2024-01-08

    整數加 1 本身可以這樣寫:

    a+=1;它相當於 a=a+1;。

    但是有一種更簡單的方法可以用 C 語言編寫它,那就是 A++; 或 ++a;。 這稱為自我新增或自我增加; 意思很清楚,是自加一。

    相應地,還有a--和--a,它們被稱為自減法,意思是自減法。

    和 -- 分別稱為自動遞增運算子和自動遞減運算子。

    自我遞增和自我遞減的例子:

    #include

    #include

    int main()

    結果:a=10,b=20

    a=11, b=19

    a=12, b=18

    增量完成後,舊值將替換為新值,新值將儲存在當前變數中。 自動遞增和自遞減只能用於變數,而不能用於數字,例如 10++ 是錯誤。

    目標。 值得注意的是,++在變數之前和之後是有區別的:

    在它前面稱為預自動縮放(例如++a)。 先執行以前的自動增量操作,然後執行其他操作。

    後來稱為後自增(例如A++),先執行後自增,再自增。

    自減法(-同樣如此,有前減法和後減法之分。

    請看下面的例子:

    #include

    #include

    int main()

    輸出: a=11, a1=11

    b=21, b1=20

    c=29, c1=29

    d=39, d1=40

    1)對於a1=++a,先執行++a,結果為11,然後將11賦給a1,所以a1的最終值為11。A 是自遞增的,最終值也是 11。

    2)對於b1=b++,b的值不是立即加到1,而是把b的原始值給b1,然後把原來的值加到20,所以b1的值也是20。和 b

    自遞增後,最終值為 21。

    3)對於c1=--c,先執行--c,結果為29,然後將29分配給c1,所以c1的最終值為29。而 c 是自遞減的,最終值也是 29。

    4)對於d1=d--,d的值不會立即減少1,而是將d的原始值交給d1,然後原始值將減少到40,因此d1的值也將是40。還有 d-子午線。

    自約簡後,最終值為39。

    可以看出:a1=++a; 首先執行自動遞增操作,然後執行分配操作。 和 b1=b++; 首先執行分配操作,然後執行自動遞增操作。 c1=--c;和 d1=d--; 也。

    沒錯。

相關回答
9個回答2024-02-05

#include

int main(void){ >>>More

10個回答2024-02-05

思路:要求乙個正整數n的位數,可以先定義乙個變數num,並初始化為0,將整數n依次除以10,直到為0,每除以10,變數num的個數就會加1,最後乙個num的值就是整數n的位數。 >>>More

7個回答2024-02-05

優化問題應盡量分為3個,不足的部分應分為2個。 >>>More

4個回答2024-02-05

這是我的書名:

問題:輸入 2 個整數,計算並輸出它們的總和、差值、乘積和商。 要求程式輸入不同的資料並執行兩次。 >>>More

12個回答2024-02-05

如下:

型別 1:僅結構定義: >>>More