c語言中。d a 30?b c 這個語句是什麼意思

2021-12-22 19:10:45 字數 4700 閱讀 2635

1樓:孫毅超

x?y:z這個是c語言中唯一的三目運算子,這個運算子的運算規則是,先判斷x的真假,如果是真,則整個表示式的值為y;如果是假,整個表示式的值為z。

因此,你的題目中,若a>30為真,則d被賦予為b值;若a>30為假,則d被賦予為c值~

2樓:金色潛鳥

式子是否寫錯了,是 == 不是 =?

(1) 如果是 = , 後有分號;

是賦值語句 d=a>30? b:c; 的意思 是

如果 a > 30 則 d 賦予 b.

如果 a <= 30 則 d 賦予c

(2) 如果是 ==

表示式 d==a>30? b:c 的意思 是

如果 a > 30 , (a>30) 得 1, 否則 (a>30) 得 0

接著 用它 同 d 比較,如果 與 d 相同,表示式 的 最終值 等於 b,

如果 與 d 不同,表示式 的 最終值 等於 c.

---式子? b:c 是 3 目運算。

如果 式子 為真, 表示式 的 最終值 等於 冒號前 的 式子( b)

如果 式子 為假, 表示式 的 最終值 等於 冒號後 的 式子( c)

3樓:溫特

主要是要看清運算子的優先順序和他的結合方向 這句意思是 a如果大於30的話就把b值賦給d

如果小於等於30就把c值賦給d

4樓:悍將劉刕

字面意思就是:

給d賦值

怎麼賦呢?做個判斷

a 大於30 嗎?

大於的話用b, 不然的話用c

含義就是 if a > 30 then d = b else d = c

c語言中a

5樓:勞資字易巧

這個是復合的三目運算

例如x=a思就是如果a小於b,x就等於c,否則x=da專白了

如果a屬表示式的值就是b,如果a不小於b,那麼表示式的值就是(c

c

6樓:專治八阿哥的孟老師

這個是復來合的三目運算

例如自x=a於b,x就等於c,否則x=d

a樣就明白了

如果a的值就是b,如果a不小於b,那麼表示式的值就是(c

c

7樓:鈍角111度

這是乙個三目運算子,先判斷?前面的語句,如果為真取分號前面的值,否則取後面的值。如果a小於b,結果為分號前面的b,如果大於b,去分號後面的,在c與d如果小於d去取d,如果大於d,取分號後面的e。

8樓:何遠宇

這是乙個三目運算子,先判斷?前面的語句,如果a

a

9樓:匿名使用者

想當於if(a

else if(c

else返回值為d

也就是說,先判斷a

10樓:匿名使用者

d=a|b:將a和b的二進位制值,逐位取或,結果存入d中;

d&=c:將d和c的二進位制值,逐位相與,結果存入d中

c語言中,d=a>30?b:c 這個語句是什麼意思?

請問一下c語言中(m=a>b)&&(n=c>d)a=1b=2c=3d=4是什麼意思?詳細一下謝謝

11樓:匿名使用者

(m=a>b)&&(n=c>d)

a>b的布林值賦值(1或0)給m,如果為真,繼續執行n=c>d.如果a>b為假,則不執行c=c>d

a=1b=2c=3d=4

這表示式有問題

12樓:匿名使用者

&&是條件與,表示只有前後兩個判斷語句的布林值都為1(判斷結果都為真)的時候才滿足條件。按初a=1b=2c=3d=4來看,&&前後的條件都為假,所以就是 0&&0,最終結果為假。

13樓:手動閥隧道

m=a>b就是把a>b的比較結果賦給m,即a>b成立時,m=1否則m=0

同理n=c>d也是一樣

那麼(m=a>b) && (n=c>d)的意思就是(a>b)&&(c>d),同時把a>b的結果賦給m,c>d的結果賦給n

a=1b=2c=3d=4這個不符合語法規則啊??是不是a=1;b=2;c=3;d=4?

c語言環境中,設a=1,b=2,c=3,d=4,則表示式:a>b?a:c>d?a:d的結果為( )

14樓:lovefree隨風

表示式:a>b?a:c>d?a:d的結果為4。

解析:1、由於c語言的相同優先順序運算子運算規則為從左至右依次運算,而條件運算子具有右結合性,所以表示式:a>b?

a:c>d?a:

d優先運算c>d?a:d,得出的結果為4;

2、再運輸a>b?a:4,得出的結果為4。

所以最終得出的結果為4。

擴充套件資料表示式為:表示式1?表示式2:表示式3

先求解表示式1,

若其值為真(非0)則將表示式2的值作為整個表示式的取值,否則(表示式1的值為0)將表示式3的值作為整個表示式的取值。

例如:1、max=(a>b)?a:b,就是將a和b二者中較大的乙個賦給max。

2、min=(a條件運算子具有右結合性

當乙個表示式**現多個條件運算子時,應該將位於最右邊的問號與離它最近的冒號配對,並按這一原則正確區分各條件運算子的運算物件。例如:

15樓:匿名使用者

結果是4,一會寫出過程

「?:" 這是乙個三目運算子,以 「c>d?a:

d」這個**為例,程式會首先判斷「c>d」是否為真,若為真則執行冒號前的語句,即其結果為」a「的值;若為假,則執行冒號後的語句,即其值為"d"的值。

一般遇到這樣的題要拆分著做,首先判斷最左邊的「a>b」,這個結果為假,根據條件判斷運算子的性質,所以接下來執行第乙個冒號後的語句「c>d?a:d」,接著判斷「c>d」,結果為假,所以最終取值為第二個冒號後的值,即為d的值,也就是4。

16樓:匿名使用者

答案為4,「a?b:c」是從右向左執行的,也就是說a為真的話,這個式子就可以看做b,否則可以看做c;c大於d麼,不是,則變成了a>b?

a:d,a大於b麼,不是,則為d,d=4.

17樓:匿名使用者

答案是4.三目運算子就可求得

c語言中a=++b,c--,d+3是什麼意思

18樓:匿名使用者

相當於:

++b;

c--;

a=d+3;

在c語言中 若有說明語句:int a,b,c,*d=&c;,則能正確從鍵盤讀入三個整數分別賦給變數a、b、c的語句是?

19樓:匿名使用者

scanf函式中格式控制後面應為變數位址列表,因此選項c和選項d都錯誤,選項b中「&d」是指標變數d的位址,與題目不符。由題目可知指標變數d中存放的是變數c的位址,所以正確答案為選項a。

20樓:

a.scanf(%d%d%d」,&a,&b,d);

對於int c,*d=&c;,c是一整

抄型資料,d是一指標,它指向變數c(即d=&c,*是指標型別的說明符),所以,輸入c的值可以用scanf("%d",&c); 也可以用scanf("%d",d);

21樓:匿名使用者

scnaf("%d%d%d",&a,&b,%c)

22樓:

在c語言中,若有說明語句:int a,b,c,*d=&c:,則能正確從鍵

盤讀入三個整數分別賦給變回量a、b、c的語句是答scanf("%d%d%d"&a,&b,)。

seanf()函式有兩個引數,第乙個引數是輸入格式字串,第二個引數是輸入變數位址列表。輸入格式字串主要由「%」符號和格式字元組成,位址列表是由多個位址組成的。

擴充套件資料

scanf用法的一些注意點

1、函式原型:

# include ;

intscanf(constchar*format,...);

函式scanf()是從標準輸入流stdin中讀內容的通用子程式,可以讀入全部固有型別的資料並自動轉換成機內形式。

在c99中,format用restrict修飾。

format指向的控制串由以下三類字元組成:格式說明符、空白符、非空白符。

2、在scanf()中最好不要加換行符\n,即最好不要寫成這樣,會提醒讓你輸入兩次。

因為用空白符結尾時,scanf會跳過空白符去讀下乙個字元,所以你必須再輸入乙個數。這裡的空白符包括空格,製表符,換行符,回車符和換頁符。

c語言中,這個語句是什麼意思啊C語言中For語句後面的括號裡有兩個分號是什麼意思啊?

tp a a b b tp是交換了ab的指向,不影響主函式,t a a b b t是改變了位址上的值,也就是把i和j的值互換。所以函式中 a b的輸出對應是j 3,i 7,主函式輸出ij這個沒什麼好說的,p和 q還是ij的值。1 加 交換的是位址,會改變主函式中i和j的值,swap交換的是i和j的位...

c語言中語句“y x1”是怎麼執行的

埃德蒙 放後邊 x先參與 運算 計算結果賦給y 之後x值自增1。如果x 3,y x 1 之後y 2 x 4就是要記住一個規則 在變數之前時 值先自增1 再參與其他運算,在變數之後 先參與其他運算 變數值再自增1 關燁韋 先執行x 1,然後再賦值給y,然後再x 如果換成y x 1 就會先自增,再運算。...

c語言中return語句返回值的型別是不是預設的為整型?請做詳細解答

預設是int的。對bai於這個 func void 編譯du器會出zhi現如下警告 dao warning return type defaults to int wreturn type 說,你沒有指專定返回型別屬,預設為int。不是,返回值型別是你自己定義函式的時候設定的,比如定義了函式func...