1樓:匿名使用者
(1)表示式結果為1.
/=和=均是賦值運算(a/=a相當於a=a/a)。賦值運算的順序是自右至左(稱結合性)。也就是先a=a(a還是12),再a/=a,結果為1(相當於12/12)
(2)a%=(n%=2)相當於a=a%(n=n%2)。(%為求餘運算).5%2結果為1.12%1能夠整除,沒有餘數。所以結果為0.
(3)a+=a-=a*=a。(+= -= *=均是賦值運算)。正如1所述。
其為自右至左運算。先a=a*a。a的值為144.
而這個運算其影響前面的a。前面兩個a的值均是144.第二次運算a-=144。
144-144結果為0.同理,a值為0,前面a的值也就成了0。a+=0。
0+0結果還是為0.
至於第1題。結果不可能為0.要不就題有錯,要不就答案有錯。
以上結果經過c測試。
總體來說。以上題目需要注意兩點:
1)如果均是賦值運算時,運算要從右到左的算。
2)賦值運算會修改變數的值,先賦值的,會影響其後運算原變數的值。
2樓:匿名使用者
意思可能是說這些式子不成立,是假的。會輸出0
3樓:匿名使用者
這個是c的源**嗎?
(1)a/=a=a (2)a%=(n%=2)n=5 (3)a+=a-=a*=a
/=%=
+=-=
*=在c裡面有特殊含義運算子的,查詢一下c的書籍哦。
4樓:匿名使用者
1.a/=a=a = a/=(a=a) 值為1。
2. a%=(n%=2) = 12%=(5%=2)5%=2為求餘運算,其值為1;12%1也為求餘運算,其結果當然為0。
3.a+=a-=a*=a = a+=(a-=(a*=a))賦值運算子優先順序為向左優先,因此先計算a*=a,再計算a-=a,在這一步值為0,後面的a+=a當然沒有用了。
5樓:匿名使用者
(1)a/=a=a
等價於(a/=a)=a
a/=a之後,a的值是1,由於(a/=a)是乙個左值,所以它可以再次賦值,也就是a=a,之後,a的值還是1,而不是0
(2)n%=2等價於n=n%2,由於n=5,所以,n%2=1,此時原式就變成了a%=1,由於任何乙個整數都可以被1整除,所以最終結果是0
(3)原式等價於:
a+=(a-=(a*=a))
即先算最內層的括號a*=a,之後a=144再算外層括號,外層括號內的式子就等價於a-=a,此後,a=0最後算括號外面的a+=0,此時a=0,所以最終結果就是0
6樓:匿名使用者
汗!第乙個我居然不會!
回去好好學習。
匿名說得還可以。
簡單c語言問題,求教,簡單C語言問題,求教
include include int cmp const double a,const double b void k const double open,const double close void shadow const double open,const double close,con...
簡單的C語言問題,2個簡單的C語言問題
include void main outa 100 i for i 0 i 9 i outa i 1 a i for i 0 i 10 i a i outa i for i 0 i 10 i printf d a i 第二個 include void main b i 0 c i 5 0 for ...
簡單的C語言問題,乙個簡單的C語言問題
指標型別就是陣列名。b a就是把a 的陣列名賦值給了 b,則 b就儲存了a陣列。因為是b 所以先賦值陣列a給b 然後,b再自加。則b就為1.因為 b已經儲存了陣列a,所以 b的頭位址開始從陣列a 1 儲存,此時 b 20,30,40,50 因為運算優先順序是單目運算子高,所以先運算 所以,事實上 b...