1樓:冉涵陽翁雋
c語言中,整數相除,結果還是整數,取整,不進行四捨五入,直接丟掉小數部分
數學中1/2=0.5,c語言取整為0,同理:
數學中5/2=2.5,c語言取整為2
2樓:仰以彤浦婉
整數除法,0.5捨棄小數,就是0了,如果想得到0.5,那麼在c語言中可以這樣寫1.0/2
這樣就是浮點數除法了
在c語言中,表示式5>3&&2||8<4-!0的值為多少?
3樓:帝鎍
正常思路:由於邏輯運算子優先順序別低於
比較運算子同時這兩種都低於算術運算子,因此先考慮後半部分,4-!0真值為1,而8<1的真值為0.再考慮或左邊的表示式,5>3&&2顯然真值為1最終結果為1||0當然結果為12)有||將表示式分成兩部分左邊的是5>3&&2顯然其真值為1因此1||任意真值都為1不用算後面的了。
真值為1
4樓:奧宇斯汀
你這個看運算子的優先順序以及短路運算。結果是 1
> 的優先順序 高於 && , &&高於 ||
優先順序 運算子 名稱或含義 使用形式 結合方向 說明
1 陣列下標 陣列名[常量表示式] 左到右
() 圓括號 (表示式)/函式名(形參表)
. 成員選擇(物件) 物件.成員名
-> 成員選擇(指標) 物件指標->成員名
2 - 負號運算子 -表示式 右到左 單目運算子
(型別) 強制型別轉換 (資料型別)表示式
++ 自增運算子 ++變數名/變數名++ 單目運算子
-- 自減運算子 --變數名/變數名-- 單目運算子
* 取值運算子 *指標變數 單目運算子
& 取地址運算子 &變數名 單目運算子
! 邏輯非運算子 !表示式 單目運算子
~ 按位取反運算子 ~表示式 單目運算子
sizeof 長度運算子 sizeof(表示式)
3 / 除 表示式/表示式 左到右 雙目運算子
* 乘 表示式*表示式 雙目運算子
% 餘數(取模) 整型表示式/整型表示式 雙目運算子
4 + 加 表示式+表示式 左到右 雙目運算子
- 減 表示式-表示式 雙目運算子
5 << 左移 變數《表示式 左到右 雙目運算子
>> 右移 變數》表示式 雙目運算子
6 > 大於 表示式》表示式 左到右 雙目運算子
>= 大於等於 表示式》=表示式 雙目運算子
< 小於 表示式《表示式 雙目運算子
<= 小於等於 表示式<=表示式 雙目運算子
7 == 等於 表示式==表示式 左到右 雙目運算子
!= 不等於 表示式!= 表示式 雙目運算子
8 & 按位與 表示式&表示式 左到右 雙目運算子
9 ^ 按位異或 表示式^表示式 左到右 雙目運算子
10 | 按位或 表示式|表示式 左到右 雙目運算子
11 && 邏輯與 表示式&&表示式 左到右 雙目運算子
12 || 邏輯或 表示式||表示式 左到右 雙目運算子
13 ?: 條件運算子 表示式1? 表示式2: 表示式3 右到左 三目運算子
14 = 賦值運算子 變數=表示式 右到左
/= 除後賦值 變數/=表示式
*= 乘後賦值 變數*=表示式
%= 取模後賦值 變數%=表示式
+= 加後賦值 變數+=表示式
-= 減後賦值 變數-=表示式
<<= 左移後賦值 變數<<=表示式
>>= 右移後賦值 變數》=表示式
&= 按位與後賦值 變數&=表示式
^= 按位異或後賦值 變數^=表示式
|= 按位或後賦值 變數|=表示式
15 , 逗號運算子 表示式,表示式,… 左到右 從左向右順序運算
c語言,為什麼表示式1/2的值是0
5樓:匿名使用者
整數除法,0.5捨棄小數,就是0了,如果想得到0.5,那麼在c語言中可以這樣寫1.0/2
這樣就是浮點數除法了
6樓:匿名使用者
等於6.為什麼我寫在下面
你有書的話查最後面的優先值表和結合性.記 住有些是從右往左算的
7樓:匿名使用者
以為兩旁都是整數
所以結果為整數
捨棄小數
8樓:匿名使用者
對的...
int 若1.0/2=0.5 c語言中為什麼1.0/2的值為0.5,而1/2的值為0 ? 9樓:匿名使用者 自動轉換功能,第一個1.0是浮點型,第二個1是整形。 10樓:匿名使用者 1.0/2為浮點運算,1/2為整數運算,所以1/2取整為0。 在c語言中怎樣才能讓1/2的結果為0.5,而不是0 11樓:匿名使用者 c語言中如果你將變數定義為int型別,做除法後只會取小數點以前的整數部分,若要顯示為0.5,將其定義為float型別即可,然後用 printf("%f",變數名);輸出其可,還可以在f前面加上數字(小於8)來控制輸出位數。 如果想實現1/2=0.5的話,可以變為1.0/2或1/2.0或1.0/2.0,這些都可以的 樓上的方法我試了,根本不行,會提示錯誤的: printf:floating point farmats not linked abnormail program termination 12樓:匿名使用者 樓上的行,輸出用浮點就行了 13樓:匿名使用者 printf ("%f",1/2); 為什麼c語言表示式中 5+1/2 等於5 14樓:匿名使用者 5+1/2在c語言中確實等於5。 原因如下: 該符號同時具有整數除和實數除的功能,當兩個運算物件都是整數就做整數除,有一個運算物件是浮點數時就執行實數除。 所謂整數除就是捨棄餘數,只留下商;因此5/2的結果是2,而5.0/2的結果是2.5。 顯然1/2是整數除,商位0,所以5+0還是等於5。 15樓:匿名使用者 1/2為整除,值為零,所以式子等價於5+0,結果為5 。 之所以會出現這樣的情況是因為1和2都為整型數,直接相除其結果也為整形,而0.5轉換為整形後為0,所以最終值為5。如果想要得到5. 5這個值的話可以通過一個格式的自動轉換過程,讓除數與被除數中的一個成為浮點型資料,即5 + 1.0 / 2 或者 5 + 1 / 2.0。 16樓:匿名使用者 這個四則運算中,除法的優先順序是高於加法的,先做1/2,由於1和2都是整數,所以除法的結果也是整型,為0. 0+5=5,所以最後的結果是5 17樓:我若在床邊 5+1/2 1/2優先順序高先執行,執行後因為1和2被系統預設整形,隱式轉換0.5->0 5+0=5 18樓:張新香 在這裡5、2、1都是整型、、1/2=0.5,變成整型的話就是0,所以結果為5、、 19樓:匿名使用者 都是整型的,5+1.0/2就可以了.. 在c語言中,為什麼1/2的運算結果為0;1.0/2.0的結果為0.5謝謝了,大神幫忙啊 20樓:白諾大好人 因為除號兩邊都是整數,1/2的結構是0.5,取整數以後就是0 第二個是因為除數與被除數有一個是小數結果不會取整數,就是0.5 21樓:久野杏子 1和2是整型,1/2也是整型,0.5取整為0; 1.0和2.0是浮點型,所以1.0/2.0也是浮點型,等於0.5 22樓:景愉玉幼霜 輸出*#pq 下面為程式,偽碼為解釋 void main() case 2://由於case 1沒有break,故繼續case 2switch(z) //即switch(3) }switch(k) //即switch(1)} 在c語言中,為什麼1/2的運算結果為0;1.0/2.0的結果為0.5 23樓:滑映寒愈霽 因為除號兩邊都是整數,1/2的結構是0.5,取整數以後就是0 第二個是因為除數與被除數有一個是小數結果不會取整數,就是0.5 a 的ascii碼值為97,所以98 a 1,那麼 連線起來的所有值都為真,所有結果為真,也就是為1 這是c語言中的與運算,98 a 1,所以98 8 31 98 a 的值為1 c語言只要數值不為0就是真 那麼 你這裡的答案是 1 答案是1,c語言中 98 8 31 55是什麼意思,其值為多少?等價... 意思是賦值號左側的是隻能是變數,不能是表示式。通過變數名來訪問變數,是一種 相對安全 的方式。因為只有你定義了它,你才能夠訪問相應的變數。這就是對記憶體的基本認知。但是,如果光知道這一點的話,其實還是不知道記憶體是如何存放變數的,因為底層是如何工作的,依舊不清楚。要繼續深究的話,就需要把變數在記憶體... for 單次表示式 條件表示式 末尾迴圈體 其中,表示式可以省略,但是分號不可省略。for迴圈是開界的。它的一般形式為 for 條件表示式 語句 初始化總是一個賦值語句,它用來給迴圈控制變數賦初值 條件表示式是一個關係表示式,它決定什麼時候退出迴圈 增量定義迴圈控制變數每迴圈一次後 按什麼方式變化。...C語言環境中,表示式9883198a的值為
c語言中表示式必須是可修改的左值是什麼意思
c語言中for迴圈中裡的表示式分別省略