解釋乙個簡單的 C 程式的輸出並額外傳送 20 點 5

發布 科技 2024-02-09
14個回答
  1. 匿名使用者2024-02-05

    在 vc++2005 上執行的結果是002222

    這種東西在不同的系統裡會得到不同的值,垃圾問題,就不打擾了。

    我還要問乙個問題:為什麼會出現002222結果?

    附上教科書中對自增自減操作的描述:

    和 -- 是帶有 *** 的運算子,建議讀者不要在表示式中多次對同一變數使用這樣的運算子,否則可能會出現意外結果。 例如,對於表示式,i 的值為 4。

    i++)i++)

    可以認為它的值為 9 (4+5)。 但是,在 Turboc 和 MSC 系統中,它的值為 8。 和表示式。

    i)+(i)

    值為 12。 這是因為當這些系統在處理 i++ 時,它們實際上使用 i 的原始值來計算整個表示式,然後讓 i 連續兩次自增; 處理 ++i 時,在表示式 ,...... 之前對 i 執行兩次自動增量計算

    同樣,在函式呼叫中,計算多個引數表示式的順序將產生不同的結果,具體取決於從左到右和從右到左。 例如,如果將 i 的值設定為 4,則可以呼叫函式。

    printf("%d %d",i,i++)

    如果參數列的評估順序是從左到右,則使用輸出。

    否則,它將輸出:

    由於 + 和 ++ 是兩個不同的運算子,因此對相似表示式 i+++j: ...... 的理解會有所不同

    就個人而言,我認為這種話題沒有任何意義。 房東在這個問題上下了那麼多功夫,說是垃圾,可能傷害了業主的感情,在此道歉。

    但是,我仍然認為是這樣,這是乙個真正的垃圾問題,非常適合中學比賽。

  2. 匿名使用者2024-02-04

    答案:100210

    我會打你很多,但恐怕你會糊塗。

    在不同的程式設計平台上,會有不同的結果。

    短短幾句話,前+後+優先是不一樣的。

    在 C++ 中,如果都是 i++。

    從後到前列印。

  3. 匿名使用者2024-02-03

    我認為應該是。

    **算術子閒暇等級最高,先進行計算。

  4. 匿名使用者2024-02-02

    <> a 和 b 的值在執行後保持不變。

    由於 x 和 y 分別是 a 和 b 的位址值,因此將 x 和 y 作為輸入引數傳遞到 fun 函式中,這樣 fun 中的 a=x 和 b=y,然後交換 a 和 b 的值。 但它不會更改 x 和 y 的值,因此它不會更改 main 函式中 a 和 b 的值。

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

    您好,很高興您的問題。

    本主題是區分數字和位址作為正式引數的典型示例。

    在問題中,a,b 的位址被分配給 x,y,然後 x,y 被用作引數傳遞給被呼叫函式 fun,形式引數為 a,b。 那麼在被呼叫的函式中執行的是交換指標變數a,b的值,因為交換的是位址,所以實際上就是交換實數引數x,y的值,這樣x在這個時候指向b,y在這個時候指向a, 但需要注意的是,main函式中的a,b本身沒有變化,所以a,b的值保持不變。

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

    當運算子過載函式的格式為 c operator++(c c1,int) 時:

    1.如果是運算子++(c2,5);

    呼叫時,會傳遞該值,因此 c2 的值不會更改。 輸出 5+10i。

    2. 如果是 c2=operator++(c2,5);

    c2 的新值等於 c0 的值,c0 的值等於 c2 的原始值,因此 c2 的值保持不變。 輸出 5+10i。

    當運算子過載函式的格式為 c operator++(c c1,int) 時:

    1.如果是運算子++(c2,5);

    當它被呼叫時,它會被定址,因此 c2 的值會發生變化。 執行 c0=c1+c2++; ,C2的值為(4+11i),呼叫Operator++(C2,5); ,C2 的值為 (3+12i)。 所以; 輸出 3+12i。

    2. 如果是 c2=operator++(c2,5);

    執行 c0=c1+c2++; ,C2的值為(4+11i),呼叫Operator++(C2,5); ,C2 的新值等於 C0 的值,C0 的值等於 C2 的原始值,因此 C2 的值保持不變。 輸出 4+11i。

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

    它以 %4d 的十進位格式輸出 10,以八進位格式輸出 10,以十六進製格式輸出 10

    4d,佔4行,左邊的不足被乙個空格代替,10佔兩個位,左邊兩個空格中10的八進位數是12,十進位數10是a

    因此,輸出為 10、12,並且選擇 a d

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

    *p 指向 aa[0][0] 的位址。

    記憶體空間中二維陣列的位址是連續的。

    aa[0][0] aa[0][1] aa[0][2] aa[1][0]。aa[2][2]。

    i=0 aa[0][1]=*p+1

    p 為 aa[0][0]。

    所以aa[0][1]=2+1=3

    輸出 *p 是輸出 aa[0][0]。

    後跟 i=1 時。

    pp 是乙個位址 ++p 表示 (p+1) 處的位址,對於這個問題,*p 指向 aa[0][1]。

    所以輸出 *p 是輸出 aa[0][1] 並選擇乙個

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

    首先,aa的內容其實是}迴圈只執行了兩次:當i==0時,aa[0][1]=*p+1===aa[0][0]+1==2+1==3執行。

    因此,當 i==0 時,第一行 2,0,0 變為 2,3,0。 輸出 *p 是輸出 aa[0][0](因為 p 是 int * 型別,所以 *p 也是 aa[0]),它的值在 ++p 時執行; 如果 p 指向 aa[0][1],則輸出為 3。 由於 printf 中 %d 前後沒有空格和其他符號,因此 23 的輸出顯示在它旁邊,因此 a 是正確的。

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

    鏈挖的最終產出為:9 8 15

    即:i 是 9,x 是 8,y 是 15。

    其工作原理如下:

    1. do-while 第乙個迴圈:

    i i 來自禪宗加 1 i 為 1

    如果 (i%2) 條件為 true,則 x+=i x+i 被分配給 x x 作為 1

    i++ i 將 1 i 加到 2

    y+=i++ 在本例中,請注意 i++ 首先引用操作的 i 值,然後加 1; ++i 是先加 1,然後參考 i 值進行計算。 因此,y+i 被賦值為 y,然後 i 將 1 y 加到 2,i 為 3

    2. i<=7 為 true do-while 第二個迴圈:

    i i 加 1 i 是 4

    如果 (i%2) 條件為 false。

    i++ i 將 1 個 i 加到 5

    y+=i++ y+i 賦值為 y,然後 i 將 1 y 加到 7,i 是 63,i<=7 為真 do-while 第三個迴圈:

    i i 加 1 i 是 7

    如果 (i%2) 條件為 true,則 x+=i x+i 分配給 x x 為 8

    i++ i 加 1 i 是 8

    y+=i++ y+i 賦值為 y,然後 i 將 1 y 加到 15,i 為 94,i<=7 為 false。do-while 迴圈的結束。

    5. 列印 i、x、y i 為 9、x 為 8、y 為 15** 執行結果。

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

    答:-2x=- m++,運算順序是。

    x=-m 然後 m++

    所以 x = -3,然後是 m++ 4;

    x= x+8/++n

    n,先+1,然後使用,是n = 5,8 5 = 1x= x+1 =-3+1 = 2

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

    x = m++;

    事實上,它是 x = m

    首先分配 m++,然後新增 1

    此時 x =-3;

    x = x + 8 /+n

    n 是 5 的第乙個加法

    x = x+8/5 = 2

    最終結果是 -2

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

    答案是 2 0 0,。

    開始時,s t w 為 0;

    c=3 大於 0,所以 s=a+b=2;

    a=-1<=0 有效,b=3>0 有效,但 c=3<=0 無效,所以 w=a-b 不執行;

    由於 if(a<=0) 已經為 true,否則 if(c>0) w=a-b 和 else t=c 不會執行;

    所以 s 是 2,t 和 w 都是 0

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

    那我就給你乙個細分。

    首先,如果(c>0)成立,則s=2

    如果 (A<0) 成立,則 B>0 也成立,C<=0 不成立,因此不處理其餘部分。

    輸出為 2 0 0

相關回答
16個回答2024-02-09

int main()

int i,j,a[100]; >>>More

8個回答2024-02-09

根據主題要求編寫的C語言程式如下。

問題 1. #include >>>More

4個回答2024-02-09

引用月份[12][10]; 錯。 如果沒有元素 month[12][10],最多 month[11][9],指標 p 是無用的。 還有刪除所有 +10 級對應的 *。 >>>More

9個回答2024-02-09

然而,很明顯這是有問題的,因為變數 a 根本沒有賦值。 >>>More