1樓:月靜晨陽
嘿嘿,你們都錯啦 ,答案是13
#include
void main()
int a ,i=2;
a=(++i)+(++i)+(++i);
2樓:匿名使用者
很簡單!回答的人也很多,但是樓主都沒采納,這是為什麼呢?是不願意給分?還是沒找到滿意的答案?
我來分析下+在變數的前面是先加再賦值,第一個括號裡面i變成了3,當執行到第二個括號的時候就該3+1就是4了,因為前一次的i的值已經改變了,同理第三個括號就是5所以就是3+4+5=12;希望樓主採納,很詳細了謝謝
3樓:
12.第一個括號等於2+1,即i=3。第二個括號等於3+1,i=4,第三個等於4+1,i=5. 3+4+5=12
4樓:匿名使用者
結果:9
解析:++i表示先自加再計算。
5樓:匿名使用者
確實是12
3+4+5
6樓:謝謝你
驗證程式:
# include
void main()
執行結果:
i++後的值依次為:
i=3i=4
i=5總數t=12
press any key to continue
設整型變數i值為2,表示式(++i)+(++i)+(++i)的結果是( )。 a. 6 b. 12 c. 15
7樓:匿名使用者
我支援答案c
我看過vc++彙編後的程式;
用vc++編譯器會得到15,是因為vc++編譯器會編譯成先將i加三次,變成5
然後再進行其它運算。
我不知道c++標準是怎麼定義這個問題的,也不知道別和編譯器怎麼編譯。
但不要用vc++6.0執行這個**,因為vc++6.0編譯出來是錯的,用vc++2008可以;
8樓:支瑜應文瑞
這種很2的題目不用做也罷,不同編譯器不同結果,而且誰寫程式的時候會寫這種**
9樓:匿名使用者
答案是c
因為先算括號裡的,++i應該是在計算之前先i=i+1
所以在計算前,i=5了。所以答案是(5)+(5)+(5)+15
10樓:代斐勞彭丹
我們一步一步的看這個問題
inti=2;
i++;//i=2自加1後i為3
i++;//i=3自加1後為4
i++;//i=4自加後為5
所以:(++1)+(++1)+(++1)=13是這個意思吧?
那選擇d吧!還有d你沒寫出來是吧?
11樓:匿名使用者
選b,第一個++i得3,此時i變為3,所以第二個++i得4,此時i變為4,所以第三個++i得5,最後3+4+5=12
12樓:匿名使用者
我覺得同一個變數,先算括號裡的(++2)+(++2)+(++2),(++3)+(++3)+(++3)……(5)+(5)+(5)=15
13樓:
沒有。((++i)+(++i))=最後8執行出來結果是13.
設整型變數 i 值為2,表示式(++i)+(++i)+(++i)的結果是
14樓:司思飛
樓上都不對,最終答案是15。
在此表示式執行的開始,i會被++三次,值變為5。
然後5+5+5=15。
15樓:匿名使用者
最終答案應為9。
設(++i)+(++i)+(++i)=y,那麼過程如下:
y i---------------------------------2+(++i)+(++i) 35+(++i) 49 5
16樓:
是3+4+5嗎?這個似乎是編譯器行為+號的結合是從左到右,++運算的結合似乎c99中沒有給出標準,猜測而已
17樓:匿名使用者
是13((++i)+(++i))=8
18樓:飛不遠的肥皂泡
根據運算子的優先順序,優先進行自增運算,i先自增為3,再自增為4,最後自增為5.然後進行加法運算3+4+5,結果為12
設變數定義為整型,則表示式n=i=2,++i,i++的值為5
19樓:金色潛鳥
這同編譯器的處理方法有關。
按語法,
int n,i;
printf("%d \n", (n=i=2,++i,i++) );
得 3。
計算順序:
這是逗號表示式,逗號表示式的結果 用 最右面一個表示式的結果。
(1)n=i=2; n得2,i得2
(2)++i; 字首加,表示式裡要 先增1再使用,i 變 3(3)i++; 字尾加,表示式裡用原值,出了表示式後才增1。所以 i 不變,等於 3。
逗號表示式 的結果 用 最右面一個表示式的結果,也就是 (3)的結果。
所以 答案 是 3,不是 5 。
20樓:在傷心中淚落
這個是逗號表示式(n=i=2,++i,i++)
先計算++i,得到i=3,再計算i++的值也為3,最後輸出的是i++的值為3
1、設整型變數i的值為3,則執行語句"i---i;"後,i的值為 _2__ 2、若變數已正確定義並
21樓:zz迎風
i=--i;自加、自減運算:++在前(如:++i),先加後用(即先將i加1,再將加過的值賦給左邊的變數),++在後(如:
i++),先用後加(即先將i的值賦給變數,再進行加1)。自減類似。
22樓:匿名使用者
第一題,表示式的值是0,但是i的值是2
a和b都對,c對浮點數求餘了,d中的a+7不可以被賦值
23樓:
i---i;是錯誤表示式,它只執行i--;並不執行-i,所以結果是2。
a和b都是正確的表示式。a就不說了,很常見;b是逗號表示式,可分為逗號前後兩個表示式來理解,都是正確的。
設整型變數i,j值均為3,執行了「j=i++,j++,++i」後,i,j的值是多少
24樓:匿名使用者
根據運算子優先順序
原式應為
(j=i++),j++,++i
再由於逗號運算子是順序點
因此最後i值為5,j值為4,且這個表示式值為5
25樓:
這裡要分以下三步來做的
j=i++//這個i++因為++在後面所以是先取i的值賦給j然後執行i++,所以j=3,i=4
,j++,//j自己加1 j=4
++i//i自己加1 i=5
所以最後的結果是i=5,j=4
26樓:匿名使用者
(1)j=i++ i =4 j=3
(2)j ++ j= 4 i =4
(3)++i i=5 j=4
設整型變數i,j的值是5,則表示式(m=n=i++)/(n=j-2)的值是什麼?
27樓:綦寄竹鄞辛
這同編譯器的處理方法有關。
按語法,
intn,i;
printf("%d
\n",
(n=i=2,++i,i++));得
3。計算順序:
這是逗號表示式,逗號表示式的結果
用最右面一個表示式的結果。
(1)n=i=2;
n得2,i得2
(2)++i;
字首加,表示式裡要
先增1再使用,i變3
(3)i++;
字尾加,表示式裡用原值,出了表示式後才增1。所以i不變,等於
3。逗號表示式
的結果用
最右面一個表示式的結果,也就是
(3)的結果。
所以答案
是3,不是5。
28樓:龔長順庾乙
i++是先在表示式使用i的原值,然後再讓i+1;
++i是先使i=i+1然後再使表示式加上i(現在是6了)的值。
所以上述表示式的值為:5/3(這裡要看m,n的型別。如果是int則值為1,double型別的值為1.667)
29樓:宰桂枝汗媚
順序:n=i=5,
i=6,m=n=5
,(m=n=i++)就是5
,j不變5,n=3,
所以n=3,m=5
,i=6,
j=5,最後1,因為兩整除,只保留整數部分,所以1.
結果為1
30樓:蕭霞齊儀
在g++
3.4.2中執行結果為1。
賦值不影響該表示式的值。故表示式=5
/3=1。
設變數已正確定義為整型,則表示式(n=i=2,++i,i++)的值是多少
31樓:倒黴熊
逗號表示式
取最右側的值。
i=2;
++i變為3
i++先使用,後改變i的值。
結果為 3.
32樓:匿名使用者
n=2i=4,
後兩個在這裡沒區別
設整型變數i值為2,表示式(++i)+(++i)+(++i)的結果是( )。 a. 6 b. 12 c. 15
33樓:蕭曼
我們一步一步的看這個問題
int i=2;
i++;//i=2自加1後i為3
i++;//i=3自加1後為4
i++;//i=4自加後為5
所以:(++1)+(++1)+(++1)=13是這個意思吧?
那選擇d吧!還有d你沒寫出來是吧?
34樓:
選b.12
3+4+5=12
35樓:匿名使用者
在不同的c語言環境計算結果是不同的,例如vc裡是13
36樓:匿名使用者
沒有。((++i)+(++i))=最後8執行出來結果是13.
37樓:過段時間換個
這種很2的題目不用做也罷,不同編譯器不同結果,而且誰寫程式的時候會寫這種**
38樓:
dev c++軟體輸出結果是13
設x y z和k都是int型變數,則執行表示式 x y 4,z 16,k 32 後,x的值為
墨汁諾 c。x 32 右邊是一個表示式,逗號運算,從左到右計算每個量,整個表示式的值為最後一個式子 k 32 的值32,將32賦值給x。所以x的值為32。或 從左向右依次求解表示式1 表示式2.整個逗號表示式的值是最後一個表示式的值。比如,a 1 3,2 8,6 10,5 2 的結果是 a 7。賦值...
設x 1,y 2,z 3,則表示式y zx的值是
之震解綺煙 和 的優先順序大於除的,y 1 意思就是 y y 1。所以這個表示式就是 y z x 2 3 1 y 2 2 y 2 1 看了那麼久才看清你問什麼.因為那些數後面沒有.或者.0,如果寫成 1.或1.0,那就是浮點了.所以你以後程式設計時也要考慮這個問題. 佼女類斯斯 先計算 號右側 z ...
設a 2 b 3c 4 d 5求下列表示式的值
羅今成 在這些運算子中,not的優先順序是最高的,其次是and 最後是 or,即 這是c語言中的 因此 1.a b and c d or 2 a c 就相當於 a b c d 2 a 2.3 2 b or a c and b c or c d 就相當於 3 2 b a c b c or c d 3....