如果int i,a執行語句i(a 2 4,a 5 ,a 6後,變數的值是?怎麼理解的

2021-08-14 06:08:01 字數 2255 閱讀 9733

1樓:匿名使用者

i=(a=2*4,a*5),a+6;

先執行2*4=8

然後a=8

之後a*5=40

接著i=40

最後a+6=14 沒用

結果:i=40,a=8

這個查一下運算子優先順序就可以了。 一般情況,寫程式不會這樣寫的

2樓:氣宇軒昂的牛牛

呵呵,這個問題純屬考c語言的語法規則的,一般人不會這樣用的.

其實這個是c的逗號表示式的值的問題,c中一個逗號表示式的值為最右邊的值

如int a;

a=(4,2,4,1,5,7,9,0);

則a為0

至於i=(a=2*4,a*5),a+6;

i的值為括號裡面逗號表示式的值,a=2*4,則a為8,,a*5則這個括號逗號表示式的值為40,即i=40,後面a+6跟i沒關係,是整個逗號表示式的值.

3樓:

記住一點:當a = (b, c); 此時a = c (括號的級別比等號高,也是最高的一個)

當a = b, c;此時a = b(因為等號的級別比逗號高)然後你再看你的程式。

#include

int main()

a = 2 * 4, a * 5 ----- 說明a = 2 * 4,所以a = 8.

i = (a = 2 * 4, a * 5), a + 6; ------說明i = (a = 2 * 4, a * 5),進一步說明i = a * 5。之前我們知道a = 8,所以帶入後,i = 40.

我用visual驗證過,i最後的確為40, a最後為8

4樓:匿名使用者

等號的級別高於逗號!

所以 a等於8,i等於40。

已知int i,a;執行語句「i=(a=2*3,a*5),a+6;」後,變數 i 的值是( ) a 6 b 12 c 30 d 36

5樓:多xdl點事

30。這裡考察的是c語言中運算子的優先順序,先執行括號的程式,然後執行逗號運算子,先執行a=2*3,再執行a*5,取右運算元,然後賦值給i,就是30。

**如下:

#include

int main()

程式執行結果:

擴充套件資料c語言中,逗號運算子確保運算元被順序地處理:先計算左邊的運算元,再計算右邊的運算元。右運算元的型別和值作為整個表示式的結果。

左運算元只是為了***需要而被計算,它其值會被丟棄。逗號運算子的優先順序是所有運算子中最低的。

6樓:匿名使用者

這個應該是選c。已經給你執行了,截圖了。你看看。

原因如下:先執行a=2*3,a=6,然後再a*5=30,注意此時有一個括號,說明前面這個逗號表示式的值為30.後面再接著一個逗號表示式。

因為賦值符號 =  的優先順序比逗號的高,所以直接把30賦值給了i。

如果把這題的括號去掉的話,結果就是6了。同樣根據優先順序的方法,i直接就等於a=2*3了。但是如果把題換成i=(a=2*3,a*5,a+6);後,答案就是12了。

根據逗號表示式的特點,就可以得出答案。

這題主要考優先順序關係。要學好c語言,這個一定要會哦。如果還不懂可以追問我哦。呵呵。逗號表示式的特點不知道的話可以去書上查下。

7樓:匿名使用者

選c 30,這個結果i=30,a=6。像這種並列逗號什麼的,賦值是取第一個的。

8樓:

30 c

首先a=2*3=6 然後a*5 =30i=30

我執行過程式了 沒錯的 ^ _ ^

9樓:卡卡斬

逗號表示式,括號裡從左到右,而且a的值是傳遞的。故為30

10樓:匿名使用者

12,因為,運算子是從左到右呀6+6=12

設有語句 int a=3 ; 則執行了語句 a+ = a * a後,變數a 的值是( ) a、3 b、0 c、9 d、12

11樓:匿名使用者

賦值運算是從右到左的上面的語句運算順序是:a-=a*a;a+=a;計算第一個後a的值是-6,再計算第二個,a的值就是-12

12樓:日出日落三十天

d a=3+3*3=12

sql語句不能執行,SQL語句不能執行

你這個也叫資料庫問題?這個是程式問題。不知道你這個是不是asp還是什麼東東,沒有用過,但是以下的語句應該是有問題的,原來樣式 進行查詢。result mysql query sql 結束並且釋放連線。mysql close conn 估計的樣式 進行查詢。result mysql select 結束...

excel語句lookup不執行,跪求解答啊

1 你的單元格格式應該是被設定為了 文字型 需要將其改為 常規 然後重新輸入公式。2 你的公式有問題。vlookup c15,sheet1 c3 c18,4,1 由於你需要返回的是c3 c18中的第4列資料的對應值,而c3 c18實際只是一列資料。因此,公式錯誤。根據你的截圖判斷。公式應該為 vlo...

C語言多個for語句執行是否加花括號

對於這個程抄序來說 加與不加都 襲一樣。對於c語言中的迴圈和if語句來說,其執行體只能有一條語句,如果有超過一條語句,就要用大括號括起來,而這個程式中的外層for的執行語句就是另一個for迴圈,所以外迴圈的執行體只有一條語句,可不加大括號,對於內迴圈來說 它的迴圈體也只有一條if語句,對於這條if語...