1樓:匿名使用者
從右往左依次計算
a-=a*a得到a=a-a*a=6-6*6=-30a+=a得到a=a+a=-60
所以最後a的值為-60
2樓:放假呢想你
先a*a。。比如a等於1
若a是int型變數,且a的初值為6,則執行下面表示式後a的值為 。 a+=a-=a*a
3樓:
從右到左開始運算。
首先a-=a*a
a*a=36
a-=a*a 就是 a= 6-36=-30然後再
a+=a 就是 a=-30 + -30 =-60
若a為int型別,且其值為3,則執行完表示式a+=a-=a*a後a的值為
4樓:匿名使用者
a=-12。
按照bai從左至右結合性和優先順序順序du,先計算a-=a*a,最後a結果為a=a-a*a,zhia=3-3*3=-6;
再計算a+=-6,因為此時a的值已dao經變成了版-6,所以計算過程是a=a+(-6)=-6-6=-12。
優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。表示式的結合次序取決於表示式中各種運算子的優先順序。優先順序高的運算子先結合,優先順序低的運算子後結權合,同一行中的運算子的優先順序相同。
5樓:匿名使用者
執行(a*a),得值來
為9,注意此時還源
未賦值給變數a。bai
再執du行a-=a*a,即 a=a-a*a,亦 a賦值為 3-9,得 a=-6。
後面你zhi就明白了,因為「dao賦值表示式的結果是最左邊賦值運算子左邊變數(或者表示式)的值」。執行完賦值表示式(a-=a*a)後,a值為-6, 最後執行 a+= (a-=a*a).
因而 有a= -6 + -6
6樓:示申僉
a+=a-=a*a;
復合賦值表示式,從右到左執行,可以分拆成:
a-=a*a;
a+=a;
a的原值為3
a-=a*a;
相當於a=a-a*a=3-3*3=-6;
再執行a+=a;
自然就成了-12
7樓:匿名使用者
a+=a-=a*a可以看成
a=a-(a*a);
a=a+a;
明白嗎?
8樓:歌行者
先執行a-=a*a,即a=a-a*a
3-3*3=-6,a=-6
再執行a+=a,即a=a+a
-6+(-6)=-12
a=-12
a的值是-12
若a是整型變數,且a的初值為6,則執行表示式為a+=a-=a*a後a的值為
9樓:qqsm木筆
a的值為-60,運算是從右到左運算的,先算a-=a*a,得出a=-30,然後a+=a;算出最後a=-60;
10樓:新頁
-60 可以這樣理解表示式 a= a+ ( a = a- ( a* a ) )
11樓:小曹大人
-24可以拆開為 :a+=a,a-=a*a;
即 6+6=12,12-36=-24;
一道c語言題目,一道C語言題目
include include 標頭檔案 include 標頭檔案 int main int a 111 b 100 c 111 n,m,k 0,t,l 0,s scanf d d n,m srand unsigned time null srand 就是給rand 提供種子 for int i 0...
求教!一道C語言題目,求教一道C語言的題目!
你主函式裡m肯定還是1,func函式中的靜態變數應該是8了吧。你檢視變數值的位置是什麼樣的,如果在主函式裡檢視肯定是主函式中的m,即為1,因為發生作用域覆蓋了。你是第二次進入func後設定斷點,檢視m數值的可定為8。由程式執行結果為8 此時i 3,m 3 1 4,因此返回值為8 17 此時i 3 8...
求教一道C語言的題目,求教一道C語言題目
while 1 你這裡輸入的是 d 所以輸入數字是正常進入了if 字元就進入了else 因為你if後面是加了break,所以能正常跳出while 1 這個死迴圈,而else你是沒有加上break的,所以是一直在while 1 死迴圈。因為你定義輸入的是 d的形式,也就是整形,所以你輸入字元型的時候,...