1樓:
public class t0609
}**********=測試結果**********===2.5
說明:這個關鍵是優先順序問題
1)括號永遠優先順序最高
2)無括號的預設優先順序
* / 運算優先順序最高
% 運算優先順序次高
+ -運算優先順序最低
所以 是 2.5 + 這個式子的結果
2樓:斷崖摩羯
* / 運算優先順序最高
% 運算優先順序次高
+ -運算優先順序最低
%是求餘符號
所以 是 2.5 +
正確答案:2.5
3樓:水de幻想
#include
void main ()
結果為2
若有定義:int a=7;float x=2.5,y=4.7; ,則表示式x+a%3*(int)(
4樓:匿名使用者
一共出現這麼幾個操作符:(),+,*,%,/,()優先順序順序依次為:(分塊),(強制型別轉換),*,+,/,%,其中專 / 和 % 優先順序相同屬
所以運算的順序應該是:
1.執行分塊
(x+y) = 2.5 + 4.7 = 7.2;
2.執行強制轉換
(int)7.2 = 7;
3.做乘法運算
3 * 7 = 21;
4.現在表示式變成了
x + a % 21 % 2 /4;
先做a % 21 % 2/4 = 7 % 21 % 2 / 4= 7 % 2/4 = 1 /4 = 0;
最後執行:x + 0 = 2.5 + 0 = 2.5;
若有以下定義int x=3,y=2,則表示式y+=x–=y後的y值為
5樓:匿名使用者
y = y + (x-=y)
y = y + (x = x - y)
y = y + (x = 3 - 2) 此時,x = 1y = y + 1
y = 2 + 1
y等於3,x等於1
6樓:育知同創教育
一步一步來y+=x是5
5-=y是多少呢就出來了
答案是3。
若有定義:int a=7;float x=2.5,y=4.7;則表示式x+a%3*(int)(x+y)%2/4的值是()。 5
7樓:匿名使用者
x+a%3*(int)(x+y)%2/4
=2.5+7%3*(int)(2.5+4.7)%2/4=2.5+1*7%2/4
=2.5+0
=2.5
若有定義語句int a=7;float x=2.5,y=4.7;則表示式x+a%3*(int)(x+y)%2/4的值為多少 5
8樓:陳開武
由條件可知表示式:x+a%3*(int)(x+y)%2/4的運算結果為2.5。
解答步驟如下:
x+a%3*(int)(x+y)%2/4
=2.5+7%3*(int)(2.5+4.7)%2/4 //將a,x,y的值帶入
=2.5+1*7%2/4 //(int)(2.5+4.7)=(int)7.1=7
=2.5+7%2/4 //運算子優先順序相同,按照從左到右進行計算=2.5+1/4 //%為取餘運算子,7除以2餘數是1=2.
5 //1/4是兩個整型相除,最後得到的型別也是整型0程式執行結果如下圖所示:
9樓:我二次元穿越
看了他們的回答,我覺得少了一點解釋,對於初學者來說,應該是這樣解釋,%只能用於整數運算,所以它們的變數都是整數,所以才會有後面的1/4輸出結果是0而不是0.25,答案並非x+0.25而是x+0=2.5
10樓:匿名使用者
(x+y) = 7.2
(int)(x+y) = 7
a%3 = 1
a%3*(int)(x+y)%2/4 = 1*7%2/4 = 7%2/4 = 1/4 = 0(所有變數均是int型)
x+0 = 2.5
11樓:匿名使用者
這個問題很簡單的,* ,/,%,的優先順序一樣,所以遵循自作至右的原則來運算。
先看a%3*(int)(x+y)%2/4。a=7,所以a%7的值等於1,然後x+y=7.2,因為int型轉換,轉換後為7;1*7依然是7;7%2=1;1/4=0(因為都是整數)。
x+0=x=2.5;
故結果為2.5
12樓:匿名使用者
(x+y) = 7.2
(int)(x+y) = 7
a%3*(int)(x+y) = 1
a%3*(int)(x+y)%2/4 = 1%2/4 = 0/4 = 0(所有變數均是int型)
x+0 = 2.5
若有定義:int a=7;float x=2.5,y=4.7;則表示式x+a%3*(int)(x+y)%2/4的值是?
13樓:匿名使用者
x+a%3*(int)(x+y)%2/4
=2.5+7%3*(int)(2.5+4.7)%2/4=2.5+1*7%2/4
=2.5+7%2/4
=2.5+1/4
=2.5
若有定義:int a=7;float x=2.5,y=4.7;則表示式x+a%3*(int)(x+y)%2/4的值是 請詳細解答,非常感謝
14樓:四舍**入
答案為2.5.
這個關鍵是優先順序
問題1、括號永遠優先順序最高
2、無括號的預設優先順序
* / 運算優先順序最高
% 運算優先順序次高
+ -運算優先順序最低
所以是 2.5 +
15樓:陳開武
由條件可知表示式:x+a%3*(int)(x+y)%2/4的運算結果為2.5。
解答步驟如下:
x+a%3*(int)(x+y)%2/4
=2.5+7%3*(int)(2.5+4.7)%2/4 //將a,x,y的值帶入
=2.5+1*7%2/4 //(int)(2.5+4.7)=(int)7.1=7
=2.5+7%2/4 //運算子優先順序相同,按照從左到右進行計算=2.5+1/4 //%為取餘運算子,7除以2餘數是1=2.
5 //1/4是兩個整型相除,最後得到的型別也是整型0程式執行結果如下圖所示:
16樓:匿名使用者
(x+y) = 7.2
(int)(x+y) = 7
a%3 = 1
a%3*(int)(x+y)%2/4 = 1*7%2/4 = 7%2/4 = 1/4 = 0(所有變數均是int型)
(注意是float)
x+0 = 2.500000
17樓:匿名使用者
一共出現這麼幾個操作符:(),+,*,%,/,()優先順序順序依次為:(分塊),(強制型別轉換),*,+,/,%,其中 / 和 % 優先順序相同
所以運算的順序應該是:
1.執行分塊
(x+y) = 2.5 + 4.7 = 7.2;
2.執行強制轉換
(int)7.2 = 7;
3.做乘法運算
3 * 7 = 21;
4.現在表示式變成了
x + a % 21 % 2 /4;
先做a % 21 % 2/4 = 7 % 21 % 2 / 4= 7 % 2/4 = 1 /4 = 0;
最後執行:x + 0 = 2.5 + 0 = 2.5;
18樓:匿名使用者
(x+y) = 7.2
(int)(x+y) = 7
a%3 = 1
a%3*(int)(x+y)%2/4 = 1*7%2/4 = 7%2/4 = 1/4 = 0(所有變數均是int型)
x+0 = 2.5
19樓:**還有車
這裡有一個語言的隱式型別變換,相當於(int)1/(int)4,可以上網看一下隱式型別轉換就明白了,而且他做錯了,在乘,除,取餘,優先順序相同,左結合性從左往右計算,答案為2.500000,x為單精度實型,隱式變換,保留七位有效數字
20樓:匿名使用者
樓主採納的答案是錯誤的! 我一進來看這麼多人點贊,我以為是對的,也就直接點贊,等我看完才知道是錯的!!
他的最終結果是正確,也是巧合.
% * / 的運算優先順序別是一樣的,而+ - 的優先順序別比剛才那些運算級別低.這裡樓主採納的那個答案在這點上描述錯誤了!
21樓:匿名使用者
a%3=1;
x+a%3=3;
(x+y)%2=1.2/4=0(int)
設int a=7; float x=2.5, y=4.7;, 則表示式x+3%(int)(x+y)/4的值是多少?
22樓:匿名使用者
第一題你的float x=2.5定義就有問題,float x=(float) 2.5 或者 float x= 2.5f ,這樣後的答案2.5
23樓:匿名使用者
第一題:7;第bai二題是有問du題的!在那裡面zhi
執行也是不對
dao的!括號裡面的不能用版那些逗號,權因為他們每個都是單獨的一個表示式!所以必須用分號!
編譯就過不去!第三題:a本身就是一個字元!
你這些問題真的太奇怪了!呵呵!這是什麼的考題啊?
這都沒法回答啊!
c語言:若有定義:int a=7;float x=2.5,y=4.7; 則表示式x+a%3*(int)(x+y)%2/4 的值為 5
24樓:金剛俠
按照加減乘除運演算法則及順序,還有結果轉換型別為float,結果為2.5
25樓:雲中鶴隱
x+a%3*(int)(x+y)%2/4
=x+1*7%2/4
=x+1/4=x
若有定義語句inta10p,q
錯誤的是a a相當於 a 很顯然,p是指標 a是指向指標的指標。兩個無法賦值。若有說明int a 3 4 則對a陣列元素的正確引用為 二維陣列引用基本格式 陣列名 行標 列標 行標和列標都是從0開始,最大下標為行 列 標長度 1。比如 a 0 1 表示第一行第二列的陣列元素。二維陣列 由行和列組成的...
若有定義 float x 1 5 int a 1,b 3,c
解 switch後面的括號內必須為整型或字元型 而你在前邊定義x為實數型的 應該這時錯的 再有後面case後面的常量表示式與switch後面的括號內的表示式型別要相同才能輸出。若有定義 int a,b 則表示式 a 2,b 5,a 2,b a b 的值是?b 的意思是 先將b的原值帶入本條語句執行,...
請教一道C語言的題目若有定義 int a 1,b 2,c 3語句 aba執行後b的值為幾?為什麼?謝謝
b還是2 因為 a b 編譯器會先判斷a 如果a為真就直接跳過b執行下一句了 又因為a 1 a也為真 所有 b不執行 還是2 還是2,因為 運算時只需要有一個為真就是真,a為真,故而 b就不會執行,因此b的值沒變 3因為執行了語句 a b a後b加了1,所以b為3 3 b 執行後就是3 c語言,若有...