設有定義「char a 3,b 6,c計算表示式c

時間 2021-12-20 06:35:36

1樓:匿名使用者

char型別佔8bits

a=3 0000 0011

b=6 0000 0110

a^b 0000 0101

(a^b)<<2 0001 0100

2樓:欲將心事付瑤琴

a = 00000011b;

b = 00000110b;

a^b = 00000101b;

(a^b) << 2 = 00010100b;

c = 10100b

138.設有定義「char a=3, b=6, c;」,計算表示式c=(a^b)<<2後c的二進位制值是( )

3樓:匿名使用者

沒有正確答案。

a的二進位製碼為 0000 0011 b的二進位製碼為 0000 0110

a^b 0000 0011

^ 0000 0110

-----------------------0000 0101

"<<"這個是 左移位符 0000 0101 左移兩位 為 0001 0100

答案是 0001 0100 。

4樓:忽然心就空了楓

這邊的答案都不對啊!答案應該是00010100

5樓:匿名使用者

都不對,00010100 對,char a = 3, int a = 51 , 同理 int b = 54, a ^ b = 00000101, 左移後為 00010100

若有定義:int a=6,b=2;char c1='a',c2='b';則表示式a+b%5+c2-c1的值是( )。

6樓:匿名使用者

b%5 = 2,

c2 - c1 ='b'-'a' =1('b' 的ascii碼值比'a'大1),

a=6所以結果為6+2+1=9

擴充套件資料兩個表示式若被說是等值的,表示對於自由變數任意的定值,兩個表示式都會有相同的輸出,即它們代表同乙個函式。

乙個表示式必須是合式的。亦即,其每個算符都必須有正確的輸入數量,在正確的地方。如表示式2+3便是合式的;而表示式*2+則不是合式的,至少不是算術的一般標記方式。

7樓:

b%5 = 2,c2 - c1 ='b'-'a' =1('b' 的ascii碼值比'a'大1),所以結果為6+2+1=9

8樓:匿名使用者

原式等於6+(2對5的餘數)+98-97=6+2+1=9

設有語句int a=3,b=6,c,c=a^b<

9樓:顓孫來福錢詞

1和1對於!(a+b)+c-1&&b+c/2,&&前後接兩個表示式,乙個是!(a+b)+c-1,另乙個是b+c/2

,第乙個表示式結果為c-1即2(因為(a+b)非0,故!(a+b)結果為0),第二個表示式結果為6,所以這兩個表示式均為非零,所以它們進行邏輯與操作之後的結果為1

對於a||

b+c&&b==

c,||邏輯或操作符連線兩個表示式,但是第乙個表示式為a,非0,故不用求後乙個表示式的值,所以該表示式結果為1

在vs2010上執行通過

測試**如下:

inta=3,b=4,c=5

;intd=

!(a+b)+c-1&&b+c/2;

inte=a

||b+c&&b==

c;cout

<

;cout<

設有int a=5,b=6,c=2; ,則表示式a

10樓:匿名使用者

c值不變,仍為2

注意||運算子有短路的***

也就是當||運算子左側的值為非零,也就是真時,那麼這個||表示式的值肯定為1,真,沒有必要再去判斷||右側的了

所以本題中--c根本沒有執行

類似的,還有&&

當&&運算子左側為假時,那麼可以斷定整個&&表示式的 值肯定為0,假,所以也沒有必要算&&號右側的了

11樓:

完了c的值是1.。。。

c語言環境中,設a=1,b=2,c=3,d=4,則表示式:a>b?a:c>d?a:d的結果為( )

12樓: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條件運算子具有右結合性

當乙個表示式**現多個條件運算子時,應該將位於最右邊的問號與離它最近的冒號配對,並按這一原則正確區分各條件運算子的運算物件。例如:

13樓:匿名使用者

結果是4,一會寫出過程

「?:" 這是乙個三目運算子,以 「c>d?a:

d」這個**為例,程式會首先判斷「c>d」是否為真,若為真則執行冒號前的語句,即其結果為」a「的值;若為假,則執行冒號後的語句,即其值為"d"的值。

一般遇到這樣的題要拆分著做,首先判斷最左邊的「a>b」,這個結果為假,根據條件判斷運算子的性質,所以接下來執行第乙個冒號後的語句「c>d?a:d」,接著判斷「c>d」,結果為假,所以最終取值為第二個冒號後的值,即為d的值,也就是4。

14樓:匿名使用者

答案為4,「a?b:c」是從右向左執行的,也就是說a為真的話,這個式子就可以看做b,否則可以看做c;c大於d麼,不是,則變成了a>b?

a:d,a大於b麼,不是,則為d,d=4.

15樓:匿名使用者

答案是4.三目運算子就可求得

c語言 設有如下巨集定義:#define a 3+2 #define b a*a,則表示式b*b的值為多少

16樓:匿名使用者

掌握"巨集"概念的關鍵是「換」。一切以換為前提、做任何事情之前先要換,準確理解之前就要「換」。所以只要換就可以了:

把b換成a*a,那麼b*b就是a*a*a*a,然後把a換成3+2,結果就是:3+2*3+2*3+2*3+2=23;

不知道你理解了沒有,如果是這樣巨集定義a的,那麼結果又不一樣了,#define a (3+2)

那麼結果就是5*5*5*5,所以比它本來沒括號,你不能習慣的加了括號,這是最容易犯錯的。

17樓:兜裡有兩塊糖

c語言中的巨集,在編譯時,進行簡單替換。

也就是說

當你算b*b時

編譯器會把它變為a*a*a*a

3+2*3+2*3+2*3+2 = 23

因為你沒有寫括號也就是

#define a (3+2)

所以不是你預想的

(3+2)*(3+2)*(3+2)*(3+2)所以說巨集是簡單替換,不會幫你把運算優先順序也編譯出來。

這個是乙個常見的巨集問題。

18樓:匿名使用者

巨集只是簡單的文字替換

b等價於

3 + 2 * 3 + 2

b*b等價於

3 + 2 * 3 + 2 * 3 + 2 * 3 + 2

19樓:匿名使用者

3+2*3+2*3+2*3+2

在c中a4b10c2計算abcac3a的最

如果a,b,c,是int型的話 1 4 10 2 4 2 3 4 2 4 10 2 6 3 4 3 4 20 6 3 4 4 4 3 3 4 5 4 0 4 6 4 c 的優先順序 優先順序 操作符 結合性 1 左 2 左 3 sizeof new delete castname cast單目操作符...

若有定義 int a 3,b 2,c 1並有表示式 a b,abc,b c 1,c 1,則表示式值相等的是哪兩個

你是誰會想 表示式一值為1,表達二好象有錯誤,不能那樣表示,應寫成a b b c,這樣寫二式為真,值為1,三式且符號兩邊都非零,都為真,所以三式值為2,四式為賦值語句,最終結果是c的值為2 湯福書屋 第一個 a b 輸出結果為 1 第二個 a b c為真,3 2為真 即為1,但1 1為假 即為0第三...

c語言程式設計求ax平方 bx c 0 在a 3 b 6 c

vb的希望能幫到你 dim a as integer dim b as integer dim c as integer dim x1 as integer dim x2 as integer a text1.text b text2.text c text3.text if b 2 4 a c 0...