1樓:兄弟連教育北京總校
(1)設int型變數x有初始值3,則表示式x++*5/10的值.
首先,"x++"是後置加加,先使用變數,然後變數再回加1.
所以答,"x++"先使用變數的值3與5相乘,得到15;
由於x為int型變數,所以,15/10之後只取整數部分1.
因此,答案選(b)1.
(2)x = 5;
y = x++ * x++;
首先,"x++"是後置加加,先使用變數,然後變數再加1.
所以,第一個"x++"為5,而x的值則變成了6;
第二個"x++"為6,而x的值則變成了7.
由此可見,到"y=x++*x++"為止,y的值為30.
y = --y * --y;
接著,"--y"是前置減減,先減1,再使用變數.
所以,第一個"--y"為29,而等號右邊第一個y的值則變成了29;
第二個"--y"為28,而等號右邊第二個y的值則變成了28.
由此可見,到"y=--y*--y;"為止,等號左邊的y的值為812.
2樓:匿名使用者
y=5,因此y==3的值為0
字元a在ascii碼錶中對應的數值是65,'a'/10.0=65/10.0=6.5
3+0 -6.5=-3.5
表示式的值為-3.5
c語言:已有定義int x=3,y=4,z=5;則表示式 !(x+y)+z-1&&y+z/2的值是?
3樓:
答案是1。
涉及到的運算子: ! () + - && /運算子優先順序為:() ! / + - &&運算過程:
x=3,y=4,z=5
!(x+y)+z-1&&y+z/2
!(3+4)+5-1&&4+5/2
所以表示式計算步驟為
!(3+4)+5-1&&4+5/2 -> !7+5-1&&4+5/2!7為 0
-> 0+5-1&&4+5/2
5/2 整數除整數得整數 2
-> 0+5-1&&4+2
-> 4&&6
邏輯運算 &&
擴充套件資料c語言運算子的優先順序:
如果同一優先順序的運算子,結合次序由結合方向所決定。
4樓:匿名使用者
只是等於1的,我是經過turbo c2.0編譯過的,答案應該沒什麼問題的,程式是:
main()
答案為什麼會等於1呢?那是因為運算級別的問題,根據運算級別,實現算括號裡面的先,所以程式就變成!7+z-1&&y+z/2;
然後就算!運算,由於7是大於1的,也就是真,所以!真就是假,也就是0,所以函式就變成0+z-1&&y+z/2;
然後再算除號的,由於你這裡兩個都是整形的,所以小數點後面的數忽略,所以就變成0+z-1&&y+2;
接著計算加減運算,也就是變成4&&6;
因為4和6都是大於1的數,所以就是真,由於&&兩邊都是真的話,輸出的就是真,所以結果就是1。
要是還有什麼不明白的話,就mm我吧!嘻嘻~~~~~~
5樓:匿名使用者
1優先順序: 算數》條件》關係》賦值
關係中的優先順序: 非》與》或
6樓:匿名使用者
1,把運算子優先順序搞清楚就好了
7樓:匿名使用者
x等於y加4。四家外加1+3+5+4+1等於三五+4+5+1。
8樓:匿名使用者
!(3+4)+5-1&&4+5/2
=!7+4&&4+2
=!11&&6
所以說那個式子的值是:不是11並且是6
有int x=3,y=4,z=5;則下面表示式中值為0的是
9樓:匿名使用者
a 'x' && 'y'
實際運算的是字母x和y的ascii碼,都不為0,所以視為真,表示式為真c x||y+z&&y-z
||運算子先計算左邊的表示式,若為真右邊的表示式就不再計算,整個表示式即為1
d !((x 先判斷(x 取反為0,所以!((x 10樓:匿名使用者 a: 'x'>0 -> 1(asc碼) 'y'>0 ->1 => 1&&1=1 c:y+z=9>0 ->1 y-z=-1 ->1(轉換後不為0) 3||1&&1=1 d:x1 !z ->0 (x 11樓:是婀樹蘭澤 |運a'x' &&'y' 實際運算的是字母x和y的ascii碼,都不為0,所以視為真,表示式為真 cx||y+z&&y-z ||運算子先計算左邊的表示式,若為真右邊的表示式就不再計算,整個表示式即為1 d!((x 先判斷(x 取反為0,所以!((x 12、設x、y和z是int型變數,且x=3,y=4,z=5,則下面表示式中值為0是 ( ) 。 12樓:墨汁諾 d中,(x的 邏輯值為0,因此,0||1的值為1,!1的值為0其它的a、b、c均為1 比如,a中,回'x'&& 'y',x,y均為字元,其ascii值均不為0,因此,等 答同於邏輯1,1&&1,結果為1。 b中,因為x為3,y為4,所以x<=y成立,結果為1。 c中,x為3,其邏輯值為1(因為不等於0的值其邏輯值為1),在或表示式中,只要第一項為1,就可以不看其他項的值,結果均為1。 13樓:匿名使用者 d中,(x 其他的a、b、c均為1 14樓:黃邦勇帥哥哥 答案a、 其值為0,!((x斷x邏輯運算子是短路運算,因此應先算邏輯運算子左側的表達內式,這裡x容1其值為1。最後再執行!1,因此整個表示式的值為0。 答案b、 其值為1,因為'x'和'y'在ascii碼中其值都為非0值,所以其值為1。 答案c、 其值為1,還是同a一樣,先判斷最左邊的x,其值x為非零,所以整個表示式x||y+z的值為1,再計算y-z=-1,為非零值,因此整個表示式的值為1。 答案d、很明顯為1,不用說了,這個題 c語言中求算術表示式的值:設x=2.5,a=7,y=4.7求x+a%3*(int)(x+y)%2/4的值? 15樓:匿名使用者 ()運算級最高 先做(x+y)結果為7.2 然後做(int)7.2 結果為7* / % 的優先順序相同 結合方向是自左至右 即(((a%3)*7)%2)/4 得出的結果再與x運算 16樓:匿名使用者 x+a%3*( int)(x+y)%2/4運算順序為:a%3a%3*(int)(x+y)a%3*(int)(x+y)%2a%3*(int)(x+y)%2/4x+a%3*(int)(x+y)%2/4*%/為同級,按從左到右 17樓:匿名使用者 #includevoid main() 18樓:匿名使用者 #include void main() (float)(a+b)/2+(int)x%(int)y 設a=2,b=3,x=3.5,y=2.5 求表示式值 19樓:杜xiao若 詳細計算分析過程如下: 1、在該表示式中,分別有以下幾個運算子:圓括號、強制型別轉換、除法、取餘和加法。 根據運算子的優先順序,圓括號優先順序最高,其次是強制型別轉換,然後是除法「/」和取餘「%」,最後是加法運算。因此,首先計算圓括號中的內容,由於a=2,b=3,表示式轉化為:(float)5/2+(int)x%(int)y; 2、進行運算型別強制轉換,(float)5中是將int型別的值轉為float型別,因此整數5轉換為小數5.0,由於x=3.5,y=2. 5,x、y均為小數,強制轉換為int型別時,直接取其整數,捨去小數,(int)3.5轉為3,(int)2.5轉為2,表示式轉化為: 5.0/2+3%2; 3、進行除法和取餘運算,5.0/2=2.5,3%2=1,因此,表示式轉化為:2.5+1; 4、進行加法運算,float型別的值與int型別的值相加,最終結果將輸出float型別的值,因此,加法運算的最終結果為:3.5。即,表示式最終的結果為3.5。 擴充套件資料 1、運算子優先順序存在的必要性:在一個表示式中可能包含多個有不同運算子連線起來的、具有不同資料型別的資料物件;由於表示式有多種運算,不同的運算順序可能得出不同結果甚至出現錯誤運算錯誤,因為當表示式中含多種運算時,必須按一定順序進行結合,才能保證運算的合理性和結果的正確性、唯一性。 2、運算子優先順序的具體操作方式:優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。表示式的結合次序取決於表示式中各種運算子的優先順序。 優先順序高的運算子先結合,優先順序低的運算子後結合,同一行中的運算子的優先順序相同。 20樓:我今天上課了 計算過程: a+b = 5 (float)5 5.0 5.0/2 2.5 (int)x 3 (int)y 2 %取餘 1 最後+ 2.5+1 = 3.5 21樓: 對浮點數強制型別轉換成int型會直接截位,你可以認為是取整也就是(int)x 為3 (int)y為2%是求餘數 所以 3%2是1 (a+b)/2轉成float是2.5 所以是2.5+1=3.5 22樓:匿名使用者 4和float之間什麼運算子? 第一題3 第二題3.5 你要詳細步驟?呵呵 #include #include using namespace std; int main() 23樓:匿名使用者 (float)(a+b)/2=2.5 (int)x%(int)y=1 最後結果為 3.5,因為一個int與一個float型別的數相加結果會自動轉化為float型別 5.寫出下面表示式的值(設a=10,b=4,c=5,d=1,x=2.5,y=3.5) (1) a%=(b%=3) (2) a+=a-=a*=a 24樓:匿名使用者 include main() c語言的優先順序 從上到下依次遞減 醋 初等,4個 指向結構體成員 結構體成員 壇 單目,9個 負號 型別 指標 取地址 sizeof長度 酸 算術,5個 減味 位移,2個 灌 關係,6個 等於 不等於 味 位邏,3個 按位與 按位異或 按位或 落 邏輯,2個 邏輯與 邏輯或 跳 條件,1個,三目 ... 1這就相當於一個邏輯判斷式 左邊是一個邏輯表示式 右邊也是 左右邏輯表示式的值均為1 1 1 所以為真 即1 有int x 3,y 4,z 5 則表示式 x y x z 的值為 x y 結果為1 x z 結果為1 只是認為非0為真值,0為假值。所以結果為1 即真 表示式 x y x z 的值為 1 ... if a return a else if c return a else return d if a else return d 或者 a c語言中設a 4,b 3,c 2,d 1則表示式 a 結果是1 首先判斷條件a b,如果成立則取a的值,不成立則取 c d?a d 的值 對於c d?a d,...定義 int x 3,y 4,z 5則表示式 x y z 1 y z
有intx3,y4,z5則表示式xyxz的值為
設a 1,b 2,c 3,d 4,則表示式 ab a cd a d在c語言裡怎麼編寫