詳細解釋此過程,解釋每個步驟的作用和演算法

發布 社會 2024-02-09
16個回答
  1. 匿名使用者2024-02-05

    分析如下。

    第乙個週期。

    y=1。 y=((x=3*y,x+1),x-1);

    這句話是句法。

    首先,很明顯,賦值符號“=”優先於逗號表示式運算子“no”,逗號表示式取最右邊表示式的值。

    x=3*y), x+1 這個表示式首先計算x=3*1=3,逗號表示式的值是最右邊x+1的值,也就是4(注意x的值是3)。

    y=(4,x-1);如果值為 x-1,則此表示式右側 () 中的逗號表示式為 2

    所以 y = 2

    第二個迴圈(實際上 x+1 是乙個干擾項,因為逗號表示式有乙個實際上不起作用的點 x+1,y=((x=3*y,x+1),x-1); 可以簡化為y=((x=3*y),x-1)。

    y=2 與相同的分析類似。

    x=3*2= 6

    y=(7,x-1)

    y=5 用簡化的y=5x=3*5=15直接分析第三個週期

    y=14 不滿足 y<10 迴圈結束。

    輸出 x 為 15,y 為 14

    上述分析在無 C 執行和實際測量下是可以的

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

    #include

    #include

    void fun (char*p) 接收 str array}main() 的第乙個位址。

    islower() 確定它是否為小寫字母,如果為 true,否則為 false p[i-1]=p[i-1]-'a'+'a'如:'b'='b'-'a'+'a'=1+'a'='b'

    希望對你有所幫助。

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

    1 大家好,a++和++a是自動遞增運算,相當於a=a+1;a--和--a是自減法運算,等價於a=a-1

    +a“或”--a“是先增減後參與計算; “A++”或“A--”是先參與計算,再增減。

    因此,您的問題 c = 6 * 6 * 6 = 216(在執行語句之前,A 不會增加到 7)。

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

    c=6*6*6;

    +a“或”--a“是先增減後參與計算;

    a++“或”a--“是先參與計算,然後自加自減來記住乙個句子,+在前面遇到,即使++在後面,也可以忽略它,等待當前語句的末尾進行自增量運算。

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

    在第乙個問題中,a,p指向s陣列的第乙個位址,即p指向s[0],p->y=s,所以s[0]->y也指向s[0],這句話沒用。 輸出語句 ++p->x, -> 優先順序大於 ++,所以它是 ++ (p->x),p->x 是 1,先加,變為 2,輸出 2

    在第二個問題中,b,p 指向 s[1],p->y 指向 s[0],其中 p->x 等價於 s[1]。x,為2; 在 p=p->y 之後,p 指向 s[0],其中 p->x 等價於 s[0]。x,為1; 2 1 應在末尾輸出

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

    要解決此類問題,您需要分解表示式才能理解它。

    j=(i++)i++)i);

    翻譯成乙個單一的語句,它是:

    i++;在第乙個括號中。

    i++;在第二個括號中。

    i;在第三個括號中。

    以上是第一組。

    i;第乙個 ()+

    i;第二個 ()+

    上面的兩個是第二組。

    根據編譯器的不同,會有不同的結果,但如果你看一下你的值,它屬於以下操作。

    第一組以 (3) +3) +4) 執行,編譯器不以從左到右的優先順序執行操作。如果是傳統的 C C++ 操作規則,則應為 (3) + (4) + (6)。

    執行第二組後,j = 10。 如果是傳統的C++操作規則,應該是j = 13。

    現在我們來談談 i 值:

    我執行了三次 i = i + 1 操作,所以:i,最終結果,i = 6。

    在這方面,C的規則更加明顯。

    步驟1:j = (3++)i++)i);

    步驟 2:j = 3 + 4++)i);

    步驟3:j = 3 + 4 + 5);

    步驟 4:j = 3 + 4 + 6;

    第 5 步:j = 7 + 6;

    第 6 步:j = 13。

    操作的優先順序首先是括號,然後從左到右計算操作。

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

    自己讀這本書。

    i++,即先使用 i 的值,然後再加自身。

    i,是先加1,再用值進行其他運算%d,整數輸出。

    自己多讀書,這不難理解。

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

    哥哥! 你和我一起玩! 我在程式中執行了它,第乙個結果是 i=6, j=9!! 我說怎麼做錯了!

    i++是先計算i,再計算+1,第乙個公式應該是j=3+3+3=9,也就是說只有i=3,最後是+嗯,當然是i+1+1+1=6

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

    對於不同的編譯器,這個值似乎並不相同。

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

    先加字首再賦值,先賦字尾再賦,所以 i++ 始終是 3,但 ++i 是 4所以 j 是 3+3+4=10

    此時,i 的值已指定為 6、3 加 1 加 1 加 1

    您可以檢視自動遞增運算子的字首和字尾之間的區別。

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

    2+4+1=7 所以這個輸入你至少是 7 位,如果小於 7 位就不會產生結果,所以輸入 x,y 只有兩個 %d 是 %2d 表示 x=12,%d 表示 y=7,所以結果是 19,。

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

    我還想知道%*4c是什麼意思。

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

    讓我們分解一下:

    1)先把0和1234傳給fun函式,因為s2>10,函式被執行下來,s1=4,然後把s1和s2 10(123)再次傳遞給。

    有趣的功能。

    2)由於s2 10(123)在第二遍的s2<10判斷中是s2,他仍然不能滿足條件,函式向下執行。由於 s1=s1*10+s2%10; S1 變為 43,S2 10 通過 123 10=12,再通過 43 和 12 進行娛樂

    3) 12 仍然不能滿足以下條件:根據上述規則,S1 變為 43*10+12%10 為 432,S2 變為 1

    4) S2 變為 1 以滿足 if 條件,函式返回 S1*10+S2%10 的值,其中 S1 傳遞 432,S2 傳遞 1,4321

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

    在函式迭代過程中,將最後乙個 s1 增加一位(乘以 10),然後新增到這個 s2 的個位數 (s2%10),當 s2 已經是個位時,迭代開始返回。

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

    這是乙個遞迴,很容易看出,只看有趣的函式,它的功能是在 s1 之後新增 s2 閃回,所以問題是乙個 4321

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

    這顯然是乙個排序問題,經過 si 和 s2 的比較,取大的,所以首先得到的是 4,依次是 3、2、1 等等排序,C 語言教科書上經典的氣泡排序方法,大家可以看看哇! 記得選我。

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

選擇B1,幾百名學生意味著幾百名學生,是乙個近似值,這個問題和大約差不多,所以不要選擇A >>>More

14個回答2024-02-09

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

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

4個回答2024-02-09

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

3個回答2024-02-09

一、“晉”字的基本解釋:

2.唾液; Khan:流體。 遍布全身。 >>>More

10個回答2024-02-09

main() [主要函式主程式]。

int i,j,k;【定義整數資料 i,j,k】for(i=1; i<=6;i++) 主迴圈,i 從 1 到 6,增加到 1] for(j=1; j<=20-2*i;J++) 子迴圈,J 從 1 到 20-2*i >>>More