1樓:匿名使用者
if(a=1) b=1;c=2;
這一行有bai問題
if和else之間永遠du只能有一
條語句zhi,而daob=1;c=2;是兩條語句!
c語言一條語句可以寫在版多行,權多條語句也可以寫在一行,關鍵是就分號,一個分號到上一個分號(或者是,使多條語句組成一條複合語句。
如果把b=1;c=2;改為b=1,c=2;就可以編譯通過了,它的結果是1,1,2,0
原因是if(a=1)是先給a賦值,然後判斷a的值,非0則執行if後緊跟的語句,若為0則執行else後跟的語句,這裡給a賦值為1,非0,因此執行給b,c賦值的語句,所以結果是1,1,2,0
進一步,如果把if(a=1)改為if(a=0),程式執行流程跟剛才說的一樣,但是由於a值為0,因此執行else後的語句,所以最後結果會是0,0,0,3
再進一步,如果把if(a=1)改為if(a==1),那麼程式執行的時候,判斷a是否等於1,若等於則給bc賦值,否則給d賦值,這裡a==0,因此執行else後的語句,結果跟前一種情況一樣,會是0,0,0,3
2樓:計運旺湛雀
||int
a=0,b=1,c=2;
//不需要bai解釋吧
++a>0
//a成了1,然後做了次du1>0的比較,zhi結果為真
++a>0||++b>0
//由於|dao|之前已經為真,||之後內的表示式容就不執行了,b的值不變
++c;
//if成功,執行下面的語句
你應該是沒理解||和&&的估值規則吧。他們的左邊是必然會被執行的,但左邊執行完之後,右邊就不一定了。上面是||,如果&&的話,左邊為假則&&右邊不執行。
3樓:房子a房子
d,if(a=1),裡面的賦值語句是會返回值的。所以,後面對b和c的賦值操作會被執行。
4樓:匿名使用者
if(a=1) b=1;c=2;
else d=3;
if 後面有兩句,而沒有用{}組織成語句塊,導致else找不到if
5樓:匿名使用者
if(a=1) b=1;c=2;
else d=3;
改為if(a==1)
else
d=3;
編譯錯是因為花括號問題
6樓:匿名使用者
錯誤出現在else,因為if段已結束,編譯器找不到與else對應的if,可以將b=1後分號改為豆號。
7樓:管六
main()
8樓:匿名使用者
if(a=1) b=1;c=2; -------------printf(「%d,%d,%d,%d\n」,a,b,c,d);------""不是「」
如何像上述改完,選c
if(a=1) b=1;c=2;--------if(a==1)printf(「%d,%d,%d,%d\n」,a,b,c,d); -------- ""不是「」
如何像上述改完,選b
9樓:匿名使用者
printf(「%d,%d,%d,%d\n」,a,b,c,d);
這一行有錯
10樓:c姽嫿
將「 if(a=1) b=1;c=2; 」改為下面的:
if(a=1)
有以下程式: main() {int a=0,b=0,c=0,d=0; if (a=1) {b=1;c=2;} else d=3; printf (%d,%d,%d,%d\n,a,b, 5
11樓:飛奔的我的錢
答案是編譯有誤,樓上已經說得比較對了,此時的if判斷肯定是成立的,因為是a=1,而不是a==1.
12樓:儒雅隨和一丶
編譯有誤這個下面的else和上面的if根本就配不上隊啊,else就報錯了
13樓:
1120,if括號中已經將1賦值給a並且括號整體也為1,執行if語句,所以bc值改變而d不變依然是0
14樓:amanda追風
答案應該是編譯有誤,因為if只能管到第一個分號的句子,而else出現在第三個分號的句子中,也就意味著這個else沒有與之搭配的if,所以會出現編譯有誤的現象。樓主可以自行執行之。
15樓:匿名使用者
輸出 0,0,0,3
15 以下程式執行後的輸出結果是___。 main() { int a=0,b=0,c=0,d=
16樓:匿名使用者
應該是 d 編譯有錯
if ... else ... 中 if 和 else 後面只能跟一條語句,如果需要執行多條的話需要用 括一下,上面的 if 後面跟著兩條語句所以有錯
123.有以下程式 #include
17樓:匿名使用者
首先,判斷(copya++&&b++)這個條
bai件,這個條件中又首du先判斷a++,得到結果為假zhi(由於是後置自增運算子dao,所以a在判斷的時候為0,判斷之後為1)。&&運算中,只要有一個條件為假,則整個條件為假,所以程式不再判斷b++這個條件,並且將(a++&&b++)這個條件判定為假。所以程式執行冒號後面的d++。
所以a=1,b=0,c=0,d=1。所以答案選d
下述程式的輸出結果是main(){int a=0,b=0,c=0;if(++a>0||++b>0) ++c; printf("%d,%d,%d",a,b,c);}
18樓:匿名使用者
c++a=1>0,成立,所以||的結果必為真,因此後面的++b就沒有執行了
因為if成立,所以++c肯定執行了。
所以a,c變成了1,b還是0
19樓:匿名使用者
是c,因為哈,這道題用的是短路法,或的左邊為真,++a是1右邊無論是真是假都是真,所以b原樣0輸出,++c是1,所以101
20樓:匿名使用者
咋出現這麼多結果、、、、
21樓:開蕊柯昭
1,0,1
注意||左邊的結果如果為真,右邊的就不執行。所以++b不會執行。
有以下程式 #include
22樓:匿名使用者
#include
main()
if((c==3)||(d==-1))如果c==3或者d==-1有一個成立,則執行if語句;如果兩個都不成立,則不執行
}你覺得你程式抄寫對了嗎?我覺得程式你抄寫漏了喲。a=2是賦值,而不是比較,我估計應該是a==2.如果是由兩個等號,請看我的註釋。輸出為 1,2,0,4.
23樓:我是羊指甲
這程式能執行嗎。。。。。
執行以下程式後,其輸出結果是( )。 int a=0,b=0,c=0; c=(a-=a-5)
24樓:天才與麻煩
(a-=a-5)即a=a-(a-5)=5
所以c=5
a=b=0;
所以選b
希望對你有幫助,有問題歡迎追問~
25樓:楊苓門慧心
大哥題都不對。du
inta=0,b=0,c=0;zhi
c=(a-=a-5),(a=b,b+3);
printf(「
dao%d,%d,%d\n」,a,b,c);
按程式執行來講吧。回
第一句不說了
答...
第二句為逗號表示式。
c=(a-=a-5)
給c賦值,把a-=a-5的結果賦給c;
(a-=a-5)=(a=a-(a-5));
把a=0;代入得a=5;
進而(a-=a-5)的值為5;
c=5;
接下來執行(a=b,b+3);
這裡面又有逗號表示式。
a=b;因b=0;故a=0;
b+3;不對任何變數賦值,相當於空語句;
綜上所述:a=0;b=0;c=5.
論述完畢.....................
ifa0b0c0和ifa0ifb0ifc0的區別
if a 0 b 0 c 0 表示一個判斷3個條件 同時成立,也就是內a,b,c都要同時等於0if a 0 if b 0 if c 0 是3個判斷,每個判斷1個條件,也就是a 0的時候容,做什麼,b 0的時候。c 0的時候朋友,請 採納答案 您的採納是我答題的動力,如果沒有明白,請追問。謝謝。c語言...
已知a0,b0,c0,abc1,試證明
令x ab,y ac,z bc,則xyz 1不妨設x y z,則x y x z y z 1 y z 1 x z 1 x y 由順序和 亂序和,得 x y z y x z z x y y y z z x z x x y x y z y x z z x y z y z x x z y x y 上面兩式相...
inta0和inta區別,c語言程式設計inta和inta有區別嗎?
c 全域性變數中沒有任何區別,函式中第一個輸出時會輸出0,而第二個不定。前者是抄在記憶體中開闢了一塊襲叫做a的內bai存空間,裡面存放 du0 後者表示zhi將要開闢記憶體空間了,dao但是還沒有開闢簡單的說,int a 0相當於建了一座倉庫,然後再裡面裝了貨物而 int a相當於拿到了一塊地契,留...