C語言題若表示式abc2b

2021-05-30 11:52:21 字數 4526 閱讀 7229

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時...