1樓:匿名使用者
為1,也就是true 這是屬於「短路原則」 可以求得解
問大家一道c語言題,若表示式(a+b)>c * 2 && b !=5 || !(1/2)中,a b 20
2樓:匿名使用者
||||
(a+b)>c * 2 && b !=5 || !(1/2)=(3+4)>2 * 2 && b !=5 || !(1/2)
根據運算優先順序完成以下步驟運算:
(3+4)>2 * 2 && 4 !=5 || !(1/2)
=7>2 * 2 && 4 !=5 || !0
=7>2 * 2 && 4 !=5 || 1
=7>4&& 4 !=5 || 1
=1&& 4 !=5 || 1
=1&& 1 || 1
=1 || 1=1
3樓:匿名使用者
|有||有短路規則,左邊的為真就不會進行右邊的判斷了,所以cad在c語言中沒見過,c選項後邊應該是指標(&a就是指標型別了)應該選d吧!我的機器上是這樣的。要麼你程式沒有寫完。
「(a=4*5,a*2)」,a+6"你是原表示式嗎,怎麼中間有一個」。因為巨集之後是這樣的:n=(n*n+(n+1)*(n+1))-2;這也是巨集不同於函式的點a=++a+++b;a=1+1=2;b進行的++等於1;c沒變為0。
第二個a=1+(-1)=0;b進行了--為0,c進行了--為-1;對於表示式前置後置的++--操作都要表現出來
c語言問題:a=3,b=4,c=5,則邏輯表示式「!(a+b)*c-1&&b+c%2
4樓:匿名使用者
&&是邏輯和,!是邏輯非
!(3+4)*5 - 1 && 4+ 5%2先算括號裡的
!7*5-1 && 4+5%2
!邏輯非運算子的優先順序比-運算子高
7轉換成bool值是true,運作邏輯非就翻轉成false(0)0*5-1 && 4+5%2
0-1 = -1
true && 4+5%2
%優先順序在+前面
5%2 = 1
4+1 = 5
true&&true
&&運算子要兩邊物件都是true時才會為true
c語言,int a=7,b=6,c=5,則表示式(a+b)>(c*b)&&b!=c||c>b的值為 10
5樓:匿名使用者
(a+b)>(c*b)&&b!=c||c>b13>30 && 6!=5 || 5>6
0 && 1 || 5>6
0 || 00
6樓:匿名使用者
false,也可以說是0
7樓:倒黴孩子改名啦
值為0或者false
c語言上的問題 !(a+b)+c-1&&b+c/2的值 a=3,b=4,c=5
8樓:聽不清啊
整個表示式的值為真(即 1)
!(a+b)=!7=0
!(a+b)+c-1=0+5-1=4
b+c/2=4+2=6
原式=4&&6=1 //兩個非0的值,即兩個true,相與的值,仍為true,即1
9樓:匿名使用者
根據從左到右計算順序,結合運算子優先順序,根據定義
a = 3, b = 4, c = 5,假定 a,b,c 為 int。真值為1,假值為0。
計算步驟如下:
1、計算 a + b,結果為 a + b = 7
2、計算 !( a + b) 結果為 0,也可以認為是false(假)。
3、計算 c/2,假定c為int時,結果為 2(取整),為float或者double時為2.5,但不影響最終結果,因為都是真值(非零值)。
4、計算 0 + c,結果為 5
5、計算 5 -1,結果為 4。
6、計算 b + 2 或者 b + 2.5,結果為 6 或者 6.5。
7、計算 4 && 6 後者 4 && 6.5,因為兩邊都為非零值,所以結果為 1,或者true。
這裡主要是一個運算子優先順序的問題,在本表達多中。
小括號的優先順序最高,所以最先計算括號內的值。
其次是邏輯非,然後是除法,然後是 加減法,最終是 邏輯與。
10樓:匿名使用者
這個是邏輯運算只討論真假,與數值沒有多大關係只要弄懂運算級別高低就可以最後結果為一,不懂可以mm我
11樓:匿名使用者
()優先順序最高先算 !(a+b) =!7=0算術運算子大於&& 所以先算c-1=4
* /大於加減先算c/2=2然後加b等於6最後相與 4&&6 真與真還是真 最後等於1
12樓:麒麟也涅槃
a=3,b=4,c=5
a+b=7
!7=0
c-1=4 為真
b+c/2 不為0 所以也是真
真&&真 值為真 即=1
13樓:k寂寞的小炮
結果等於1
!(a+b) = 0;
0+c-1 = 4;
b+c/2 = 6;
6&&4 = 1;
14樓:匿名使用者
整個表示式為1啊···
15樓:有郊範圍
!(a+b)+c-1&&b+c/2=1
16樓:皚子萋萋
!(a+b)=0;1&&b=1;所以0+5-1+5/2=6
c語言: 寫出下面各邏輯表示式的值。設a=3,b=4,c=5。 (1) a+b>c && b==
17樓:匿名使用者
1) 0
2) 1
3) 1
4) 沒有x和y的定義,無法計算。
5) 1
c語言環境中,設a=1,b=2,c=3,d=4,則表示式:a>b?a:c>d?a:d的結果為( )
18樓:lovefree隨風
表示式:a>b?a:c>d?a:d的結果為4。
解析:1、由於c語言的相同優先順序運算子運算規則為從左至右依次運算,而條件運算子具有右結合性,所以表示式:a>b?
a:c>d?a:
d優先運算c>d?a:d,得出的結果為4;
2、再運輸a>b?a:4,得出的結果為4。
所以最終得出的結果為4。
擴充套件資料表示式為:表示式1?表示式2:表示式3
先求解表示式1,
若其值為真(非0)則將表示式2的值作為整個表示式的取值,否則(表示式1的值為0)將表示式3的值作為整個表示式的取值。
例如:1、max=(a>b)?a:b,就是將a和b二者中較大的一個賦給max。
2、min=(a條件運算子具有右結合性
當一個表示式中出現多個條件運算子時,應該將位於最右邊的問號與離它最近的冒號配對,並按這一原則正確區分各條件運算子的運算物件。例如:
19樓:匿名使用者
結果是4,一會寫出過程
「?:" 這是一個三目運算子,以 「c>d?a:
d」這個**為例,程式會首先判斷「c>d」是否為真,若為真則執行冒號前的語句,即其結果為」a「的值;若為假,則執行冒號後的語句,即其值為"d"的值。
一般遇到這樣的題要拆分著做,首先判斷最左邊的「a>b」,這個結果為假,根據條件判斷運算子的性質,所以接下來執行第一個冒號後的語句「c>d?a:d」,接著判斷「c>d」,結果為假,所以最終取值為第二個冒號後的值,即為d的值,也就是4。
20樓:匿名使用者
答案為4,「a?b:c」是從右向左執行的,也就是說a為真的話,這個式子就可以看做b,否則可以看做c;c大於d麼,不是,則變成了a>b?
a:d,a大於b麼,不是,則為d,d=4.
21樓:匿名使用者
答案是4.三目運算子就可求得
c語言:求下列表示式的值: !(a>b)&&!c||1 其中a=1,b=2,c=3
22樓:匿名使用者
結果為1
是是關係表示式,首先進行a>b得假值為0,則式子變為!0 && !c || 1
與或非的運算關係為先進行非運算則式了變為 1 && 0 || 1再進行與運算變為 0 || 1
最後或運算等1
23樓:匿名使用者
1!(a>b)為1;!c為0。1並0再或1
若已定義inta1b2c3則表示式abc的值為
1 按照運算子優先順序,的優先順序大於 所以先計算b c的值,應為b 2,c 3,所以這個表示式的值為假,也就是值為0.然後將b c的值賦給a,那麼執行a b c之後,a 0 2 第一個方式不正確,第二個左值不能為表示式,第三個正確,第四個左值不能為表示式 第一個 先計算b c 不相等,為0.然後賦...
若a 2,b 3,c 1,d 5下面表示式的值為a bc d ac dcd
a b c d a c d c 0 d 0 按照運算子優先順序 先算 c 1 非0即真 因為加了!所以是false a b c d a c d fasle 0 d 0再算加法 5 4 2 4 fasle 0 5 0再算比較符 true false fasle fasle所以結果為 false a b...
當a5,b4,c2時,表示式ab!c的值是
是1,不信你試試。a b!c即 a b c a b 為真所以其值是1,c為2,1!2所以上述表示式為真,值為1 include int main 不信就把以上 執行一遍,看看是1還是0 a b c 5 4 2 5 4 為true 即為1 1 2 真不為真 即為假 假值為0 當a 5,b 4,c 2時...