問:int x 5 為什麼 y x x 結果是 25 而 printf d , x x 結果是 30?

發布 社會 2024-07-20
13個回答
  1. 匿名使用者2024-01-31

    printf("%d",++x*--x);

    在這裡,我們先做++x,然後是--x,然後是乘法。

    x,取值為(5+1)=6,則--x,取值為(6-1)=5,最後乘以6*5=30

    y=++x*--x 賦值操作與輸出運算不同,我先講一下賦值運算時表示式的運算,這意味著這裡的最終運算是 x*x,而不是 (++x)*(x)。

    類似:x->6->5,最後相乘。

    例如:int j=5;

    q=(++j)+(j)+(j)應該理解為Q先自增1,然後參與運算,因為q自增1三次後值為8,三個8之和為24,j的最終值仍為8。 算術表示式是組合常量、變數、函式和運算子的公式。 表示式具有值及其型別,該值和型別等於計算表示式獲得的結果的值和型別。

    表示式按運算子的優先順序和共軛指定的順序計算。 單個常量、變數和函式可以被視為表示式的特例。

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

    004113d5 mov eax,dword ptr [x]004113d8 add eax,1

    004113db mov dword ptr [x],eax004113de mov ecx,dword ptr [x]004113e1 sub ecx,1

    004113E4 mov dword ptr[x],ecx004113e7 mov edx,dword ptr[x]004113ea imul edx,dword ptr[x]反彙編,一目了然;

    其中 ptr [x] 是變數 x,它用 C 語言表示。

    int a, c, d, x=5;

    a = x;

    a++;x = a;此時 x=6

    c = x;

    c--;x = c;此時 x=5

    d = x;

    x = d*x; //5*5

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

    步驟如下1. printf() 函式是乙個格式化的輸出函式,一般用於將資訊以指定格式輸出到標準輸出裝置。

    2. printf() 函式的格式為 printf(""簡直太寬了。

    3. 格式輸出,這是乙個函式(在 C 中定義),它以 C 語言生成格式化輸出。 用於將字元輸出到終端(顯示器、控制台等)。 格式控制由要輸出的文字和資料格式的描述組成。

    除了字母、數字、空格和一些數字符號外,您還可以使用一些轉義字元來表達特殊含義。

    4. 函式:以 C 語言生成格式化輸出的函式(定義在中),將字元輸出到終端(顯示器、控制台等)。

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

    在 C 中,表示式 x+++y 的值為 7。

    當 x = 2, y = 5 時:

    x+++y 的執行順序是先執行 ++x,然後再加。

    因此,將 x 加到 1,x 的值變為 3,然後將 x 和 y 相加得到:

    x+++y = 3 + 5 = 8

    x+++y 的值為 8。

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

    逗號表示式中每個語句的順序計算:

    x+=2; /x=2

    y=x+3/2;3 2 = 1,因為所有參與操作的人都是整數,所以按照整數規則計算,y=2+1=3

    y+5 不是賦值語句,它只是計算,然後丟棄結果。

    因此 x=2,y=3

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

    最好不要這樣程式設計,括號內三個子表示式的執行順序沒有指定,不同的編譯器可能會有不同的處理方式。 既然寫程式的人不知道結果,就不要這樣寫。

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

    由於變數 x、y 和 z 都是非零值,因此子表示式 x&&y 的值為 1 (true), x||z 也是 1 (true)。

    表示式(x&&y)==x||z) 總值保持 1

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

    這個問題主要是運營商的優先順序問題:

    x||y--),括號是最高優先順序,所以括號中的內容是先計算的;

    邏輯運算表示法!和算術符號 - 相同的等級、第二優先順序、邏輯或算術符號 ||是第 12 個優先順序,所以語句的計算如下:先計算!

    x 和 y --,因為! x=0;y--=1,然後計算 ||,即 0||1,那麼你應該知道結果是什麼,也就是1,所以你的問題的運算順序就解決了。

    希望對您有所幫助

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

    八進位整數常量:由正負號組成,數字從0到7,第一位數字必須為0

    十進位整數常量:由正號、負號和 0 到 9 之間的數字組成,第一位數字不能為 0

    十六進製整數常量:由正負號和數字 0 到 9、a 到 f 或 a 到 f 組成,必須以 0x 為字首

    這個問題 y=012 是乙個八進位數,替換成乙個十進位數 y=10

    d 輸出乙個十進位數,所以答案是 102、10

    2d 表示輸出變數列寬為 2。 如果列寬小於實際可變列寬,則輸出將自動不完整,即以實際值為準。

    我複製貼上,以前我並沒有真正關注這個問題,但現在我學會了。

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

    z=7 因為:它們的初始值為:x=4,y=25,z=2;

    y 是第乙個執行負 1 運算的。

    可再整除,++是先進行加1運算再除法,z--是先進行乘法再減去1運算;

    計算內部的 (),然後計算外部的 (),從內到外。

    z=(--y ++x)*z-- 即:z=[(-y ++x)*z]-1,即:z=[(24 5)*2]-1=7

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

    把它放在程式設計環境中執行,樓上對了,就是7:

    #include

    void main()

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

    表示式 x+y&&(x=y) 等價於 (x+y)&&x=y),x+y=5,x=y 是將 y 賦值給 x,所以 x=3 5 &&3 = 1

    注意兩點: 1. 優先順序 2.x=y和x==y的區別,前者是賦值表示式,後者是邏輯表示式。

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

    x+y&&(x=y)先計算x+y=5,x=y=3,雙方都在做邏輯運算,5的二進位是101,3的二進位是011,運算是101

    011001 那是 1.

相關回答
5個回答2024-07-20

如果你正在執行一項任務,你必須根據任務的需要提出問題,或者你可以提出任何問題。 >>>More

11個回答2024-07-20

我國《繼承法》第七條規定:繼承人有下列行為之一的,喪失繼承權: >>>More

11個回答2024-07-20

恭喜你,朋友,你完成了任務。 我是來幫助你的。 >>>More

11個回答2024-07-20

答案是:11 和 3

當全域性變數和區域性變數同名時,請在全域性變數前新增 : 以區分它們。 >>>More

22個回答2024-07-20

別人還沒有你,因為他們還沒有看到你的答案,當他們看到你的答案時,他們就會是你的,所以給自己多一點耐心。