1樓:
對於第二個問題。
為什麼第二次x--=0,while 語句不是說()內為假(0)迴圈不就結束了麼?為什麼還為真繼續迴圈?
而第三次(x--)1為真非0,為什麼中說為假繼續迴圈?」
答:第二次代數式x--不等於0,等於1,之後x等於0。具體請仔細看以下過程(正確理解x--和--x的區別;另為了便於你理解,注:
以下「=」是賦值符,「=才是判斷相等的含義,以下出現了==即表示式值都為真):
x=2之後,執行迴圈。判斷x--。
第一次x--=2(之後x==1),判斷條件為真,繼續迴圈;
第二次x--=1(之後x==0),判斷條件為真,繼續;
第三次x--=0(之後x==-1),判斷條件為假,迴圈結束。
執行輸出printf,顯示x為「-1(換行)」。
x和x--的區別:
x-1)==x)
這個順序不能變。因為--x和x--執行後都會改變x的值。
x==(x--)
但在執行之後,x都是原先x-1賦值。
int x=3;
do while(!(x));
x=3 然後x=1,之後是1不等於0.接著迴圈,x=1之後得-1,也不等於0啊。還是迴圈啊,這樣每次不都是x-=2 不等於(--x)麼?請走乙個詳細的 」
沒明白您想問什麼。但這個過程是先做大括號裡面的語句,然後判斷迴圈。第一次do之後,顯示「 1」,顯然此時x==1;然後判斷--x,--x後x直接自減為0,!
0==1所以執行迴圈。第二次do,顯示「 -2」,此時x==-2;然後判斷迴圈,顯然此時x做自減之後結果非0,!非0==0,迴圈結束。
結果為「 1 -2」注:前兩個空格,後1個空格。
2 main ()
int x=2;
while(x--)
printf("%d",x);
如果是x=2 x=1
x=1 x=0
x=0 x=-1
這麼走程式的話,那從2到1不是已經減了一次了麼?x--不就是應該在運用之後才減的一麼? 」
同樣還是說下迴圈過程好了。是這樣的。
x=2之後,執行迴圈。判斷x--。第一次x--=2(之後x==1),判斷條件為真,繼續迴圈;第二次x--=1(之後x==0),判斷條件為真,繼續;第三次x--=0(之後x==-1),判斷條件為假,迴圈結束。
執行輸出printf,顯示x為「-1(換行)」。
不知道我這樣說您清楚沒有。
2樓:網友
用vc生成彙編**可以很清楚看到執行流程。
5 : int x=3;
mov dword ptr _x$[ebp], 3 //x賦值為3
l528: /跳轉位址。
7 : printf("%3d",x-=2);/下面語句列印。
mov eax, dword ptr _x$[ebp]
sub eax, 2
mov dword ptr _x$[ebp], eax
上面3句看出先給x減去2
mov ecx, dword ptr _x$[ebp]
push ecx
push offset flat:??c@_03ibob@?$cf3d?$aa@
string'
call _printf
這4句列印x
add esp, 8
9 : while(!(x));
mov edx, dword ptr _x$[ebp]
sub edx, 1
mov dword ptr _x$[ebp], edx
列印完立即給x--
cmp dword ptr _x$[ebp], 0
je short $l528
比較x是否為0 short $l528 表示等於0跳轉到。
這裡需要注意的是如果x為非0的話 !x都為假。
l528第二問。
10 : x=2;
mov dword ptr _x$[ebp], 2//x賦值為2
l533: /跳轉位址。
11 : while(x--)
mov edx, dword ptr _x$[ebp]//x儲存到edx裡。
mov eax, dword ptr _x$[ebp]//x儲存到eax裡。
sub eax, 1 //eax減1
mov dword ptr _x$[ebp], eax//放回x裡。
test edx, edx //影響標誌位,也就是檢測時候為0
je short $l534
edx==0跳轉到$l534 退出迴圈。
jmp short $l533 //否賊繼續迴圈。
l534: 12 : printf("%d",x); 這是列印x 明顯x已經等於-1了。
mov ecx, dword ptr _x$[ebp]
push ecx
push offset flat:??c@_03hmfc@?$cfd?6?$aa@ ;string'
call _printf
向電腦高手求救 急 急!
中毒了。哦 我找到了。你說你的電腦經常宕機 首先先確定硬體問題,如果原來好好的,是突然才這樣的,那就說明沒有硬體的關係了,可是如果你的電腦用了好長時間了,4 5年或者更久了,自我感覺是主機板的電容有可能暴漿了,你可以開啟看看,有沒有古的。在排除硬體問題之後就是軟體,首先看看你的任務管理器,沒有有什麼...
語文高手幫個忙語文高手的來幫個忙啊!!!!求救,急急急急啊!!!!
閱讀理解的問題答案一般都在短文之中,只要你認真閱讀短文就可以在短文中得到你想要的答案!如果是感受你也可以利用短文中的一些話加上自己的理解來寫就ok了!語文閱讀題方法歸類 一 表達方式 記敘 描寫 抒情 說明 議論 二 表現手法 象徵 對比 烘托 設定懸念 前後呼應 欲揚先抑 托物言志 借物抒情 聯想...
求救英語高手幫我翻譯個文章吧?過幾天考試哇
第四單元 道歉的時刻 歷史上,說抱歉不會是讓宗教和政治領袖感覺舒服的事,有人還把它看做軟弱的象徵 對於其他人他們是有義務讓宗教制度以特別小心的方式避免犯錯。但是,黨政治體系變得更加複雜或完善,或教堂的完美無缺的想法已經變得越來越難保衛,一些人們反映站在當局者的立場應該站出來並且為過去所犯的錯道歉。這...