c語言題目

2023-02-17 20:20:57 字數 1183 閱讀 8680

1樓:

題1,你可以理解為先執行i的自增,再執行2個數的輸出,最後執行j的自增。

ps:++i是在整句話執行前執行(整句指的是到分號為止),j++是在整句話執行後再執行。

a=b=c,a=b==c,a==(b=c),a==(b==c)

題2,這題確實比較有意思,這是一個順序的問題,首先我們得弄明白三件事,1、輸出運算,是從右往左進行的;2、運算子==優先順序高於=,()可以改變優先順序關係;3、==是判斷運算相等為1,不等為0,=是一個賦值運算。

然後我們來做一下,先a==(b==c)這步是2個判斷運算,先b==c出值0,再判斷a==0出值0,答案0,3個數的值沒變。

下步a==(b=c),先賦值後判斷,賦值得b=3,判斷a==3輸出0,值改變為1,3,3。

下步a=b==c,先判斷後賦值,判斷b==c出值1,賦值a=1,答案1,3數值為1,3,3。

下步a=b=c,2個賦值,b先賦值給a,然後c賦值給b,由於b的賦值改變,導致a也變為3,所以最終輸出3。ps:賦值問題關係指標,可能你還沒學到,記住,在一句裡a值的改變是一直跟隨b的(一句到分號為止)。

題3,判斷問題,2個判斷,巢狀在一起,第一個判斷a>b,錯誤,直接跳到下面,輸出end,完畢。

希望樓主c語言越來越好,謝謝!

2樓:匿名使用者

1.++/--在前面的,表示執行過了,在此處就可以顯示執行後的資料,在後面,表示先顯示原來資料,在對資料進行操作;

2.=是負值運算子,就是把後面的資料傳給前面的變數;

==是判斷運算子,a==b只能表示兩種資料真(1)、假(0)(稱布林型變數);有括號的先括號,如a=(b==c)表示把b==c的真值賦給a;而a==(b=c)就是判斷a是否與c相等(過程中還將b用c賦值);

3.加上{}就清楚了:

if(a>b)/*距離if語句最近的語句是條件結束的標誌*/else/*同上*/

}/*括號中都屬於大條件的語句*/

printf("end\n");

a>b是大前提;不成立時,不列印。

3樓:

面對那麼多答案,我對樓主的採納提點中肯的意見foreverfrog_z

回答得不錯,比較能說服人。不過我也同意楊氏一族的話,嘿嘿,我用c++6.0執行出來的結果真的和你的答案不一樣。。

這樣的題目只會出現在二級考試,個人認為,沒有實際意義/

c語言題目,c語言題目

不一樣,分別是1,2 至於第一個是以就不用說了,輸出的配對是從左向右的。第二個區別在於多了一個括號,相當於逗號表示式。輸出的是逗號後面的數,即是b的值。第一個輸出1,第二個輸出2 原因第一個程式只輸出一個 d,按照從左到右的順序來輸出,第二個程式,printf d a,b a,b 式中逗號運算子使用...

c語言程式設計題目,C語言程式設計題目

給你下思 來路吧第一個 素數演算法不好 源 改用素數篩 沒聽說過的 話 自己搜 很常用的演算法 第二個 對於a先求個位數 然後按照你的演算法求值如果還是超時的話 那麼進行折半遞迴 類似於int get value int a,int b int main include int cacu int a...

c語言題目,求解,C語言題目求解

x就是16進位制的,0就是零字元,一個十六進位制的數佔一個位元組,零字元在算位元組時不佔位元組,之後結果就是佔一個位元組 我就說要點了。1 double x,y x 1 y x 3 2 y的值為什麼是2.0?3 2兩個整型相除得整型1。2 main x 1值為0那麼輸出的應該為0 為什麼答案是1?單...