1樓:匿名使用者
我們要得到的結果,是記憶體中兩個值得差
而千萬不要以它們在我們面前的表現形式而誤導,專這屬麼寫只是為了方便而已
a:『\0』 ascii碼 值就是0 所以 1-0 =1b:'0' ascii碼 值應該是48(貌似)值不是1c:'1'-0 同上
d 0 - 48 != 1
2樓:
選a\0的ascii值就是0,1-0=1
c語言 若有語句int a=1,b=2,c=3;則以下值為0的表示式是
3樓:溫爾蓉悉霈
因為a++的值為0,a
的值為1,所以c=0;因為++在後面,所有a++表示式的值沒有變,只是改變了a的值!
4樓:匿名使用者
選d,c&&a為真,值為1,!(a+b)為假,值為0,「==」是恆等於,當然0是不等於1的,所以表示式假,其值為0
5樓:匿名使用者
答案是d
第一個是 ascii 邏輯與 只有『a』 和『b』中最少有個為 0 時才為0
6樓:匿名使用者
直接編寫一段**,上機跑一下不就可以了嗎,如果是初學者還可以加深一下記憶;如果是入門很久了,還問這樣的問題,實在是不應該啊!!
7樓:匿名使用者
答案是d,因為a,b,c的值都是1,故選d!
c語言題: 已知a=b=c=0;則++a||++b&&c++的值為?正確答案:1,0,0,1 要過程, 謝謝
8樓:匿名使用者
邏輯運算子並不是運算子兩邊的表示式一定都執行,就本例來說:
a = b = c = 0;
d = ++a||++b&&c++;
1、&&的優先順序比||高,注意優先順序是「結合優先順序」而不是「計算優先順序」。所以整個表示式可以看做++a||(++b&&c++)
2、對於一個||邏輯或來說,只要||左邊的表示式為假(即0)才執行||右邊的表示式(即本例中的++b&&c++),如果||左邊表示式已經為真,那麼會造成所謂的「短路」即||右邊的表示式不再執行
3、由於++a是先++再賦值,則a=1,由於||左邊表示式已經為真(非零),則短路,右邊表示式不執行
4、按上面描述,答案a = 1, b = 0, c = 0, d = 1
總結,&&運算子,除非該操作符左表示式為真,才執行右表示式,否則直接為假
||運算子,除非該操作符左表示式為假,才執行右表示式,否則直接為真
9樓:sr開得比板慢
a++ a=1
因為a=1 所以 | |後面的都忽略了..所以b=0, c=0而且整個式子的值是1
還不懂的話可以追問
10樓:憂傷海域
||c=0;
b=c;
a=b;
c=c++(c=0)用過後為c=1;
b=++b(b=1)用過後為b=0;
++b&&c++=0(1&&0為假值為0)a=++a(a=1)用過後為a=0;
0||0為真值為1.
表示式值為1,a=0,b=0,c=1.
11樓:石化終結者
thangkfasd fasdf
C語言表示式105的值是C語言中表示式105的值是?
是1。根據c語言運算規則,檢查左運算元的值是否小於右運算元的值,如果是則條件為真。1 0 5是先執行1 0 false 結果為0,再執行0 5 true 因此結果為1。如下 表示式的值為1 根據運算子表,是從左往右結合的。先看1 0是假,返回0。原式就變成 0 5,是真,返回1 所以結果就是 1。擴...
c語言中while()表示式的疑問
你可以避開0啊,用其他數字代替。或者while x 0 0 100是真。非0即真。表示式為真也是真,如x 4,y 6,x y則是假。這個很簡單,例如定義一個變數int a 然後判斷當a為0時才進入迴圈如下 while a 0 這樣當a為0時就執行迴圈了,因為當a為0時,while 中表示式的邏輯運算...
c語言 逗號表示式 的問題,一個C語言 逗號表示式 的問題
printf d n a 3 a,4 a 這個裡面的不是逗號表示式,是printf 函式的引數printf d n a 3 a,4 a a 3 a,4 a 這個是個逗號表示式,最終表示式的值將作為 printf 函式的引數,就是先計算出逗號表示式的值,再輸出值 a 3 a,4 a 這裡的括號改成英文...