1樓:匿名使用者
如果是if(x==0) y++;那麼執行完之後就等於2,但是題目中是一個等號。。。
所以if語句始終為真,所以y++會被執行的,於是y=3
2樓:匿名使用者
y的值還是2。。if語句內是一個賦值語句,賦值語句是x=0;執行x=0後,這個賦值語句的值等於0,所以if不成立,所以y++不執行,所以結果y的值沒有變
3樓:湘孺
(x=0)是賦值運算,不是判斷,如果是判斷應該用雙等號,因此if(x=0)相當於,x=0,if(x)兩步,因此答案y=2
4樓:我的銘兒折
#include
void main()
執行結果是:3.
5樓:蔡金桂
變數的什為2
因為在條件表示式裡將0賦值給了x,而這個if 語句就是判斷這個表示式是否為真(非0為真,0為假)
所以y++永遠也不會去執行
剛剛沒看清楚,呵呵
6樓:匿名使用者
2,=號是一個左值運算子
如果理解不了的話就想想a=b=c=3後為什麼a=3
7樓:
c語言中的判斷相等符號是==,“=”是賦值語句if(x=0)相當於把0賦給變數x,然後按照表示式(x=0)的值來進行判斷。
表示式x=0的值也是0,所以表示式相當於falsey++沒有執行,所以y的值應該是2
通常程式設計時為了防止出現誤將x==0類似的語句錯誤的寫為x=0這樣的賦值語句,通常程式設計時寫成
if(0==x),如果誤寫為if(0=x)則會在編譯的時候報錯,從而及早的發現錯誤。
8樓:匿名使用者
if(x=0)和if(x==0)是不一樣的;
if(x=0)括號內始終為假,y++沒有執行的機會;
9樓:匿名使用者
樓主,這個題目這樣來解讀。
if() 語句裡面,如果裡面的是非零的數,就表示為真,如果是0,就表示為假。現在,把0賦值給x,括號裡面的值為0,條件為假,不執行y++,所以,執行完畢 ,x=0,y=2
如果寫的是if(x==0) ,那麼條件為真,會執行下一句y++,所以,執行完畢,x=0;y=3.
顯然是第一種情況。 有可能作者想判斷x==0,卻寫成了賦值語句x=0所以好的編碼風格是我們講常數放在變數前面判斷,如果你寫成if(0==x),是對的,寫成了if(0=x),編譯器會報錯的。謝謝
10樓:南宮花葬月
y=2,如果是++y的話,則y=3
設x.y.t均為int型變數,則執行語句:x=y=3;t=++x||++y;後 y的值是多少
11樓:
||是符號或,優先順序是從左到右判斷。如果第一個語句為真則結果為真,不執行第二個語句直接跳出;如果第一個語句為假則執行第二個語句,當第二個語句為真時結果是真,為假時結果為假。因為x是3,++x就是4,所有非零的數字都是真,所以t的值直接為1,不執行++y,所以y還是最初賦值的3.
12樓:顓孫思蓮閻妞
4吧++y是,先把y的值+1,再使用...你給的**並沒有其它地方修改其值的
13樓:文維眭仙
x=y=3;首先3賦值給x和y,x=3;y=3然後t=++x||++y;這個語句要理解||這個的含義例如:a||b當a為真(不等於0為真)時,這個語句就成立了,不再考慮b的值,也不再處理後面的b
的表示式;所以,t=++x||++y;x=3時候,t=++x(就t=4);++y不用處理的~~
如果:a||b當a為假時候(等於0)就處理b的表示式!!
就這樣:x=3,y=3,t=4;
一道c語言:已有宣告"int x=0,y=2;",則執行語句"y=--x||++y;"後,變數y的值為
14樓:匿名使用者
int x=0,y=2;
y=--x||++y;
// 相當於是
--x; // x = -1
++y; // y = 3
y = x || y; //y = -1 || 3 = 1; 這裡是邏輯的或運算, 有一個非0就會為1
15樓:匿名使用者
y = --x || ++y; 僅執行前半部分的 y = --x,因為x的初值為0,執行--x後,x為-1,故y也是-1,此時邏輯表示式的值為真(非零),後半部分++y不再執行(短路效應,因為對於||表示式,前半部分為真就不再對後半部分求值,無論後面是真與假,都不影響邏輯結果),由此可知,y的值為-1。
16樓:
為2. 因為 --x 是 -1(真), || 短路, ++y 沒有得到機會執行
17樓:吾守護奇蹟
y=--x||++y;
按優先順序先計算 --x和 ++y;
--x 結果x = -1;
++y 結果y=3;
即y = -1 || 3;
所以y = 1;
18樓:崔鎖哈
答案是 1
#include
void main()
19樓:爬天梯的神
直接執行一下把y輸出就知道了
20樓:超越夢想一一飛
1這道是考你 c運算 優先順序
main() { int x=3,y=0,z=0; if(x=y+z) printf("****"); else printf("####"); } 的輸出結果是多少?
21樓:匿名使用者
main() 的輸出結果是多少?
if裡面的東西是x=y+z這個是先執行y+z然後賦給x然後判斷x的值真還專是假,這裡x會變成0是假的屬,所以執行的是第二句輸出好多#######
22樓:匿名使用者
此題目分析如下:
主要是if語句的判斷,x = y+z後,x為0,該條語句的結果也就是0,於是條件判斷失敗,執行else,所以結果為:####
23樓:匿名使用者
####
你的if裡面是x=y+z,是賦值而不是x是否等於y+z。
按你真正意思應該是 if(x==y+z) 吧?
24樓:匿名使用者
語句錯誤 if (x==y+z)才是條件 或者你可以加個迴圈 for(i=0,i<=3,i++) if(x==y+z)..................... .
執行以下語句後的輸出結果是int x 3,y 0 printfd,d1 x
printf d,d 1 x 10 1y 10 1x 10 1x 10 1x 10 1x 10 從左至右求解,1 x 結果是假,則值為0,所以 1 x 10 就變成 0 10,顯然是真,則值為1。用同樣的方法,求解。所以答案是 1,1 首先看第乙個結果 1 x 10 13 10 1 3 10按照運算...
已知x0,y0,且x 2 y 2 2 1,求x根號 1 y 2 的最大值
設x cos y 2sin 0 2x 1 y 2 cos 1 2 sin 2 cos 2 2 sin cos 2 1 2 1 2 1 2 0 2 0 2 1 cos 2 1 3 2 cos 2 1 2 1 2 0 cos 2 1 2 2 1 4或0 cos 2 1 2 2 9 4 0 cos 2 1...
y 2 3x 2 dy 2xydx 0在x 0,y 1下的特解
分組得 y 2dy 3x 2dy 2xydx 0注意到3x 2dy前面的3應該由y 3求導而來,故乘以y 2得 y 4dy 3x 2y 2dy 2xy 3dx 0,或 y 4dy d x 2y 3 0 通解為 y 5 5 x 2y 3 c 將x 0,y 1代入得 c 1 5 所求特解為 y 5 5x...