C語言題目求解已知int a20 int b10 int c15 int d5 int e

2021-12-20 06:37:11 字數 3044 閱讀 6496

1樓:咫尺的默許

#include

int main(void)

c語言中有一道題目:已知"int a=4,b=5,c;",則執行表示式"c=a=a>b後變數a的值為( ) a 0 b 1 c 4 d 5

2樓:匿名使用者

這個涉及到c語言的單目運算子優先順序與結合性的知識:

62616964757a686964616fe59b9ee7ad9431333330356165

優先順序:

在表示式中,優先順序較高的先於優先順序較低的進行運算。而在一個運算量兩側的運算子優先順序相同時,則按運算子的結合性所規定的結合方向處理。

結合性:

c語言中各運算子的結合性分為兩種,即左結合性(自左至右)和右結合性(自右至左)。例如算術運算子的結合性是自左至右,即先左後右。如有表示式x-y+z 則y 應先與「-」號結合,執行x-y 運算,然後再執行+z 的運算。

這種自左至右的結合 方向就稱為「左結合性」。而自右至左的結合方向稱為「右結合性」。

在你的問題中,"="在表示式中是賦值運算子,而在c語言中,賦值運算子是典型的右結合性運算子。如x=y=z,由於「=」的右結合性,應先執行y=z 再執行x=(y=z)運算。

所以,本例就是先計算雙目運算子「>」:a>b,因為a=4,b=5,a是小於b的,所以式子計算就變成了c = a = 0,然後再計算a = 0(即a = (a > b)),最後式子就是c = 0, 所以答案選a

具體運算子優先順序和結核性請參考:

3樓:0冷雨

答案是a;因為a=a>b意思為把波爾值a>b賦值給a,因為a大於b,a>b等於0,所以a為0.望採納~

4樓:匿名使用者

a, a=0

= 是由du右向zhi左運算的,

a>b值為daofalse,值為0

所以c=a=0

另外也可以專寫程式屬驗證:

#include

int main(void)

c語言整型與整型的中間運算結果,比如: int a=5;int b=2;int c=9;int d; d = a/b*c,結果是?

在c語言中,int a=b=10;是錯的。int a=10,b=20;是對的。我想知道這兩個的區別

5樓:小麥芽芽兒

是直接定義,但是int a=b=10,裡面只定義了a為整型,而b還未定義就直接賦值。

如果幫到您的話,可以好評嗎?謝謝了!!!

c語言程式設計的題目: 已知int i=10;表示式「20-0<=i<=9"的值是___ a.0 b.1 c.19 d.20 麻煩寫下解題步驟

6樓:匿名使用者

第一題b

原題等效於( ( (20-0 )<=i )<=9 )<=的結合性應該是自左向右的

20<=i的值為0,0<=9的值為1,所以整個表示式的值為1第二題d

原題等效於

if(a!=0)d=d-10;

else if(b==0)

實際上都沒執行到,d還是原值

7樓:春雨_潤物

a這個題有兩個「<=」操作符,此操作符的結合性為右結合性,故先算i<=9。不成立,故此值為0。20-0還是20明顯大於0。所以也為假,故值為0

bif括號裡面的是表示式。如果是大於0的數就執行,為0就不執行

c語言題 int a=1,b=2,c=3,d=4,e=5; k=a>b?c:d>e?d:e;求k

8樓:我二次元穿越

k=5k=a>b?c:d>e?d:e;

是說,a>b是否為真,真的話就執行,把c的值賦給k如果a然後跳到下面看d>e是否為真,如果真的話就執行,把d的值賦給k如果d>e為假的話,剩下的就執行e了,把e的值賦k,所以k=5

(c語言題)已知有宣告"int a=12,b=15,c;",則執行表示式"c=(a||(b-=a)

9樓:

選c。"||"是邏輯運算子「或」,即有真則真。

c語言中非0為真,0為假。

a!=0所以(a||(b-=a))為真,後面的b-=a不需判斷被忽略所以b不變,c=1

10樓:匿名使用者

選ab-=a:b=b-a;

因為b與a都不為0 所以c=1

int a,b c; a=20;b=30;c=10; if(a=b)b=c;c=a;c語言求助!

11樓:best通

int main(void)

12樓:矜生為你偷

if(a小於條件成立進入if語句 a=30;

f(a>=b)b=c;c=a;這行注意,if後面如果不跟大括號,只有回算分號前答的一句,後面的無論if條件成不成立逗要執行。a=b成立 b=c=10,後面的c=a不管前面if條件成不成立都要執行c=a=30

13樓:黃川浪子

執行if(a=b)b=c後a=30,b=10,c=10

;執行c=a;後,a=30,b=10,c=30

所以,a=30,b=10,c=30

14樓:雲中鶴隱

首先a

= b;

b=c=10; c=a=30;

15樓:貊馳文桂鑫

if(abai小於條件

成立du進入if語句

a=30;

f(a>=b)b=c;c=a;這行注

zhi意,if後面dao如果不跟大括號,只有版算分號前的權一句,後面的無論if條件成不成立逗要執行。a=b成立b=c=10,後面的c=a不管前面if條件成不成立都要執行c=a=30

c語言題目,求解,C語言題目求解

x就是16進位制的,0就是零字元,一個十六進位制的數佔一個位元組,零字元在算位元組時不佔位元組,之後結果就是佔一個位元組 我就說要點了。1 double x,y x 1 y x 3 2 y的值為什麼是2.0?3 2兩個整型相除得整型1。2 main x 1值為0那麼輸出的應該為0 為什麼答案是1?單...

求解c語言題,c語言題目求解

求一個字串的長度。include void main 將一個字串的內容複製到另一個字串。include void main 將兩個字串連線起來,結果儲存在s1字串中。include void main 搜尋一個字元在字串中的位置,如果沒有搜尋到,則位置為 1 include void main if...

大一C語言題目若有定義語句 int a

核心在於p的型別。定義等效於 int p 3 這裡p是一個陣列,包含三個元素,每個元素型別為int 所以a p為陣列名,不可以賦值。b p 0 為int 而a為二維陣列名,等效於int 型別不匹配。c a 1 2 為a的一個元素,型別是int,所以 a 1 2 是int 和p 0 型別相同,所以這個...