a 5 1,b 13,則vb表示式int a b 2mod5的值為

時間 2021-08-30 10:54:02

1樓:育知同創教育

對於!(a+b)+c-1&&b+c/2 ,&&前後接兩個表示式,一個是!(a+b)+c-1,另一個是b+c/2 ,第一個表示式結果為c-1即2(因為(a+b)非0,故!

(a+b)結果為0),第二個表示式結果為6,所以這兩個表示式均為非零,所以它們進行邏輯與操作之後的結果為1

對於a || b+c&& b == c,||邏輯或操作符連線兩個表示式,但是第一個表示式為a,非0,故不用求後一個表示式的值,所以該表示式結果為1

在vs2010上執行通過

測試**如下:

int a=3,b=4,c=5 ;

int d = !(a+b)+c-1&&b+c/2;

int e = a || b+c&& b == c;

cout << d << endl ;

cout<< e;

2樓:己曼寒

int(number) 如果 number 為負數,則 int 返回小於或等於 number 的第一個負整數 例如,int 將 -5.1 轉換成 -6

b\2=6 整除

6 mod 5求餘數=1

結果:-6+1=-5

在vb中,若是a=20,b=30,則表示式(a+b)/2+abs(a-b)/2*5mod3^2的值是??求詳細一點的解答!!謝謝!

3樓:陽光的雷咩咩

a+b=50

50/2=25

a-b=-10

abs(-10)=10

10/2=5

5*5=25

3^2=9

25 mod 9=7

25+7=32

設a和b均為double型變數,且a=5.5,b=2.5,則表示式:(int)a+b/b的值是多少,為什麼

4樓:沈偉棟

(int)a+b/b=6.0。

(int)a = 5;對於b/b,因為b是double型別,所以它們的商也是一個double型別,為2.5/2.5 = 1.0(注意要在小數位上加一個0);

最後計算5 + 1.0 = 6.0,因為5是int型別,而1.

0是double型別,它們倆相加時,5將自動轉換成double型別資料5.0,從而實際參加運算的是:5.

0 + 1.0 = 6.0。

在c語言中,將一個double型別的資料強轉成int型別時,將會丟棄該資料的小數部分,而只保留它的整數部分。

強制型別轉換是通過型別轉換運算來實現的。其一般形式為:(型別說明符) (表示式) 其功能是把表示式的運算結果強制轉換成型別說明符所表示的型別。

擴充套件資料

數字資料型別有integer(整型)、long(長整型)、single(單精度浮點型)、double(雙精度浮點型)和 currency(貨幣型)。

型別說明符和表示式都必須加括號(單個變數可以不加括號),如把(int)(x+y)寫成(int)x+y則成了把x轉換成int型之後再與y相加了。

無論是強制轉換或是自動轉換,都只是為了本次運算的需要而對變數的資料長度進行的臨時性轉換,而不改變資料說明時對該變數定義的型別。

5樓:匿名使用者

(int)a+b/b=6,應為(int)a就是將a取整,a取整後就是5(這裡不能用四捨五入取整,捨棄小數部分取整,然後b/b就是2.5/2.5等於1,故(int)a+b/b=6。

下圖是用python計算的結果。

6樓:匿名使用者

我這麼跟你解釋:

這個涉及到c語言中強制型別轉換的知識。

在c語言中,將一個double型別的資料強轉成int型別時,將會丟棄該資料的小數部分,而只保留它的整數部分,因此(int)a = 5;對於b/b,因為b是double型別,所以它們的商也是一個double型別,為2.5/2.5 = 1.

0(注意要在小數位上加一個0);最後計算5 + 1.0 = 6.0,因為5是int型別,而1.

0是double型別,它們倆相加時,5將自動轉換成double型別資料5.0,從而實際參加運算的是:5.

0 + 1.0 = 6.0.

最後告訴你一個轉換的法則:

double ←── float 高

↑long

↑unsigned

↑int ←── char,short 低

7樓:蟬鳴幽靜

答案是d,因為(int)a 是強制將a轉換為int型,可以得到(int)a=5; b是double型,b/b=1.000000;由於是int與double型相加,會將int型轉換為double型再相加,最終得到的答案是6.000000。

8樓:匿名使用者

(int)a+b/b

=5+1.0

=6.0 -------->結果是double型的。

9樓:匿名使用者

答案是d b/b=1.0 (int)a=5

(int)a+b/b=5+1.0=6.0

(int)只是作用於a,與b無關

10樓:匿名使用者

應該為6.000000,因為它是double型的。

11樓:匿名使用者

5+2.5/2.5=6

12樓:匿名使用者

因為:(int)a=5(強制型別轉換,抹去小數點後面的數),b/b=2.5/2.

5=1.0(double型)5+1.0=6(隱式型別轉換,講double 隱式轉換為 int型的1)

所以:(int)a+b/b=6

13樓:超越說

(int)a+b/b 的值是6 ,

優先順序:(int)強制型別轉換 > / 除號 > + 加號,先算(int)a,c語言不四捨五入,直接抹去小數部分,得到整數值5,然後算b/b,得值1,這個小學生都知道,

加起來就是6了。

14樓:匿名使用者

b/b=1,int a=5,5+1=6

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

15樓:匿名使用者

結果為bai7。

條件表示式

du為:表

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

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

16樓:匿名使用者

最後值為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

17樓:烏石

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

設a和b均為double型變數,且a=5.5,b=2.5,則表示式(int)a+b/b的值是多少?

18樓:匿名使用者

答案應該是double型別。

(int)a+b/b等價於((int)a)+(b/b),這個根據運算的優先順序別可以得到。

(int)這個是強制型別轉換,強制轉換之後((int)a)就是整型。一般這個double轉化為int型別時多數平臺下是按照向零取整的方法,於是這一步強制型別轉化後,得到5.

b/b,除號兩邊都是double型別,得到的結果也是double型別。也就是1.000000;

第一步得到的5是int型別,int型別和double型別進行相加運算時,int型別會自動轉化為double型別再進行加法運算。

綜上所述有,整個表示式的結果是6.000000.

注意:在強制型別轉化時,a的型別還是double型別,保持不變。(int)這個強制轉化會產生一個新的中間變數,利用這個int型別的中間變數去進行接下來的運算。

以下是程式:

#include "stdio.h"

#include "stdlib.h"

int main()

程式結果是:

...c

86.000000

...a8

19樓:匿名使用者

是整形的,因為(int)a+b/b中/的優先順序比+高所以所以是先運算b/b結果是1,然後在加上(int)a最後結果是6

20樓:匿名使用者

先算b/b=1,a+b=6.5,結果應該是doubie…型別轉換…

21樓:匿名使用者

結果是6.0

是double型

22樓:穆璟褒悅可

首先考慮的是運算子的優先順序,“(int)”的括號屬於型別轉換運算子,它的優先順序高於“/”和“+”所以先運算“(int)a”結果是變數a強制轉換為int型,也就是由5.5變成5,然後“/”的優先順序高於“+”所以先算“b/b”得到一個double型的1.0000……值,剩下就是運算“+”,“+”左邊的資料型別為int型,右邊的資料型別為double型(不同型別的資料進行運算是要轉換成同一型別,然後再開始運算,起規則為:

char,short

->int->

unsigned

->long

->double

<-char

箭頭指向的方向是必定的轉換),所以是將“+”左邊的int型轉換為double型進行運算,結果為double型

a=-5.1,b=13,則vb表示式int(a)+b\2mod5的值為

23樓:育知同創教育

對於!bai(a+b)+c-1&&b+c/2 ,&&前後接兩個表達du式zhi,一個是

dao!回(a+b)+c-1,另一個是b+c/2 ,第一個表示式結果為c-1即2(因為(a+b)非0,故!(a+b)結果為0),第二個表示式結果為6,所以這兩個表示式均為非答零,所以它們進行邏輯與操作之後的結果為1

對於a || b+c&& b == c,||邏輯或操作符連線兩個表示式,但是第一個表示式為a,非0,故不用求後一個表示式的值,所以該表示式結果為1

在vs2010上執行通過

測試**如下:

int a=3,b=4,c=5 ;

int d = !(a+b)+c-1&&b+c/2;

int e = a || b+c&& b == c;

cout << d << endl ;

cout<< e;

若有定義:int a=5,b=2; 則表示式b= (a!=5)的值為?

24樓:眾裡尋他

a=5 b=2

!a --> 非a 為0

a!=5 為0

a!沒有這個操作

!=是一起的

25樓:程式猿3號

1最後的結果相當於

b=x是一個賦值操作,表示式肯定為真,所以是1

26樓:匿名使用者

a!=5為假,當然是b=0

27樓:匿名使用者

邏輯值 0

假定int a 0,b 1,表示式a

節俊智雲旋 最後值為7,這是一個if語句,就是 inta 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操作...

若有定義int a 10,則表示式a a a a的值是多少啊

a a a a的值為0 解析 左結合 先做a a,因為a 10,a 可寫為a a a 100 此時a的值為100 a a 可寫為a a a 0,此時a 的值為0a a可寫為a a a 0 綜上 a a a a的值為0 include int main 顯示的答案是 0 連續賦值 的規則 是從右到左 ...

已知定義int a 2,則表示式a a a a a的值是

這個表示式無意義,編譯器會給出警告資訊。該表示式的值與編譯器相關 非要執行,看一下這句在gcc給出的反彙編 0x401476 mov eax,0x1 0x40147b sub eax,dword ptr esp 0xc 0x40147f mov edx,dword ptr esp 0xc 0x401...