一道C語言的題目定義int a 5,b則執行表示式b

2021-08-29 09:37:34 字數 2518 閱讀 5000

1樓:匿名使用者

1級優先順序(左結合) () 圓括號;下標運算子;->指向結構體成員運算子;. 結構體成員運算子。

2級優先順序(右結合) !邏輯非運算子;~按位取反運算子;++字首增量運算子;--字首減量運算子;+正號運算子;-負號運算子;(型別)型別轉換運算子;*指標運算子;&地址運算子;sizeof長度運算子。

3級優先順序(左結合) *乘法運算子;/除法運算子;%取餘運算子。

4級優先順序(左結合) +加法運算子;-減法運算子。

5級優先順序(左結合) 《左移運算子;>>右移運算子。

6級優先順序(左結合) <、<=、>、>=關係運算子。

7級優先順序(左結合) ==等於運算子;!=不等於運算子。

8級優先順序(左結合) &按位與運算子。

9級優先順序(左結合) ^按位異或運算子。

10級優先順序(左結合) |按位或運算子。

11級優先順序(左結合) &&邏輯與運算子。

12級優先順序(左結合) ||邏輯或運算子。

13級優先順序(右結合) ? :條件運算子。

14級優先順序(右結合) =、 +=、 -=、 *=、 /=、 %=、 &=、 ^=、 |=、 <<=、 >>=賦值運算子。

15級優先順序(左結合) ,逗號運算子。

2樓:匿名使用者

b=5*5=25

a=a+1=6

a=a-1=5

3樓:永星天恆

a=a+1=6

a=a-1=5

b=a*a=5*5=25

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

4樓:匿名使用者

這個涉及到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

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

5樓:0冷雨

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

6樓:匿名使用者

a, a=0

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

a>b值為daofalse,值為0

所以c=a=0

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

#include

int main(void)

設int a=5,b=6,表示式(++a==b--)?++a:--b的值是

7樓:匿名使用者

結果為bai7。

條件表示式

du為:表

zhi達式1?表示式2:表示式3。先求解dao表示式內1,若其值為真(非容0)則將表示式2的值作為整個表示式的取值,否則(表示式1的值為0)將表示式3的值作為整個表示式的取值。

先判斷++a==b--是否為真,++a表達的值為6,b--表達的值為6,兩者相等,為真。則將表示式++a的值作為整個表示式的取值,因為在此之前a的值已經自增變成6,再進行++a表示式的值為7。

8樓:匿名使用者

最後值為7,這是一個if語句,就是

int a=5,b=6;

if(++a==b--) ++a;

else --b;

++ar的規則

是先運算,所以括號中左值++a=6,a=6;

==的優先順序低版過--,所以先計算權b--b--的規則是先賦值,所以括號中右值b--=6,b=5;

左值6==右值6,即條件為真,執行++a,因為a值已是6, 所以加1操作後,

結果為 7

9樓:烏石

7,條件表示式條件為真,取值為++a;原來為6,執行++a後為7

求教!一道C語言題目,求教一道C語言的題目!

你主函式裡m肯定還是1,func函式中的靜態變數應該是8了吧。你檢視變數值的位置是什麼樣的,如果在主函式裡檢視肯定是主函式中的m,即為1,因為發生作用域覆蓋了。你是第二次進入func後設定斷點,檢視m數值的可定為8。由程式執行結果為8 此時i 3,m 3 1 4,因此返回值為8 17 此時i 3 8...

誰能幫我解決一道C語言題目C語言一道題目,誰能幫我解得

include include include include define eps 1e 6 用於控制商的精確度 main else printf 回答錯誤 n break case 2 for i 1 i 10 i while c 0 printf d.d d n i,a,b scanf d d...

一道C語言題目

你那個fun函式寫錯了,因為你用的是指標,你這樣指來指去根本就沒有達到交換的目的,應該為 void fun int a,int b 具體解答在c程式課本里面有的!不能通過呼叫函式來改變實參指標變數的值,但可以改變指標變數所指變數的值 fun 函式做的是交換指標,在主函式中被呼叫的時候,將原來分別指向...