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會跳過空白符去讀下乙個字元,所以你必須再輸入乙個數。這裡的空白符包括空格,製表符,換行符,回車符和換頁符。 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的位... 埃德蒙 放後邊 x先參與 運算 計算結果賦給y 之後x值自增1。如果x 3,y x 1 之後y 2 x 4就是要記住一個規則 在變數之前時 值先自增1 再參與其他運算,在變數之後 先參與其他運算 變數值再自增1 關燁韋 先執行x 1,然後再賦值給y,然後再x 如果換成y x 1 就會先自增,再運算。... 預設是int的。對bai於這個 func void 編譯du器會出zhi現如下警告 dao warning return type defaults to int wreturn type 說,你沒有指專定返回型別屬,預設為int。不是,返回值型別是你自己定義函式的時候設定的,比如定義了函式func...c語言中,這個語句是什麼意思啊C語言中For語句後面的括號裡有兩個分號是什麼意思啊?
c語言中語句“y x1”是怎麼執行的
c語言中return語句返回值的型別是不是預設的為整型?請做詳細解答