1樓:匿名使用者
6首先執行的肯定是括號裡的 a>c?a:c如果a大於c的話 結果為 a,
反之則為c, 所以結果是c
然後執行的是 a>b?c:b;
同上 所以結果為6
2樓:¤工藤星一
d的值為6
「條件?語句1:語句2」執行過程:
判斷條件是否正確,如果正確,則執行語句1,否專則執行語句2首先執行「屬a>c?a:c」,4<6,所以返回6則語句變成「d=a>b?
6:b;」
5>4,返回6
所以d的值為6
ps:「d=a>b?(a>c?a:c):b」的後面要加「;」
ps:你可以上機除錯
**:#include "stdio.h"
void main()
3樓:匿名使用者
a>c?a:c 這個結果是c
a>b?c:b 這個結果還是c
d=cd為六。
int a=5,b=4,c=6,d; printf("%d\n",d=a>b?a>c?a:c:
4樓:匿名使用者
printf("%d\n", d=a>b?a>c?a:c:b);這裡會輸出d的值
d=a>b?a>c?a:c:b 加上括號看,方便一些?:是一個運算子,所以加上括號為:
d=a>b?(a>c?a:c):b
這個運算先算a>b
a=5,b=4, a>b為真,所以,取(a>c?a:c)的結果給d賦值
a=5 c=6 a>c為假,所以,取c
因此,d=c=6 ;
5樓:匿名使用者
是少個括號,應該是你說的是對的
main() { int a=5,b=4,c=6,d; printf("%d\n",d=a>b?(a>c?a:c):(b)); }
6樓:匿名使用者
輸出6d=a>b?(a>c?a:c):(b));
首先判斷a>b,為真,所以輸出的是(a>c?a:c)
也就是判斷a>c,為假,所以輸出c,也就是6
7樓:黑色幽默
答案是6 關係到運算的優先順序 先判斷a是否大於b 因為5>4所以在運算a>c?a:c 5<6所以結果是6
c語言 若 int a=4,b=5,c=6,d=7,m=1,n=1,e; 則執行語句 e=(m=a>b)&&(n=c>d) ----問m、n的值分別為?
8樓:墨汁諾
(m=a>b)&&(n=c>d)當執行完m=a>b之後,返回的值是0,也就是false,就不去執行&&後面的表示式,只有m的值發生了改變n的值不變,所以是m=0.n=1。
**:#include "stdio.h"
void main()
9樓:刀無極啊
e=(m=a>b)&&(n=c>d),&&結合性從左往右,先計算(m=a>b),而》大於號的運算優先順序比賦值號=的優先順序高,先計算a>b的結果,a=4,b=5,所以a>b為假,結果為0,m=0,(m=a>b)的結果為0,襾&&邏輯與一旦發現表示式為假,整個表示式的結果就為假,後面的表示式不再計算,也就是說:表示式1&&表示式2,如果表示式1為假,整個邏輯表示式為假,不計算表示式2的值,所以m=e=0,而n的值沒有改變,為1
10樓:
&&執行一個判斷再執行下一個判斷,有一個是false就會停止。
m=a>b,m=0,所以就停止了,不會執行n=c>d
已知int i,a;執行語句「i=(a=2*3,a*5),a+6;」後,變數 i 的值是( ) a 6 b 12 c 30 d 36
11樓:多xdl點事
30。這裡考察的是c語言中運算子的優先順序,先執行括號的程式,然後執行逗號運算子,先執行a=2*3,再執行a*5,取右運算元,然後賦值給i,就是30。
**如下:
#include
int main()
程式執行結果:
擴充套件資料c語言中,逗號運算子確保運算元被順序地處理:先計算左邊的運算元,再計算右邊的運算元。右運算元的型別和值作為整個表示式的結果。
左運算元只是為了***需要而被計算,它其值會被丟棄。逗號運算子的優先順序是所有運算子中最低的。
12樓:匿名使用者
這個應該是選c。已經給你執行了,截圖了。你看看。
原因如下:先執行a=2*3,a=6,然後再a*5=30,注意此時有一個括號,說明前面這個逗號表示式的值為30.後面再接著一個逗號表示式。
因為賦值符號 = 的優先順序比逗號的高,所以直接把30賦值給了i。
如果把這題的括號去掉的話,結果就是6了。同樣根據優先順序的方法,i直接就等於a=2*3了。但是如果把題換成i=(a=2*3,a*5,a+6);後,答案就是12了。
根據逗號表示式的特點,就可以得出答案。
這題主要考優先順序關係。要學好c語言,這個一定要會哦。如果還不懂可以追問我哦。呵呵。逗號表示式的特點不知道的話可以去書上查下。
13樓:匿名使用者
選c 30,這個結果i=30,a=6。像這種並列逗號什麼的,賦值是取第一個的。
14樓:
30 c
首先a=2*3=6 然後a*5 =30i=30
我執行過程式了 沒錯的 ^ _ ^
15樓:卡卡斬
逗號表示式,括號裡從左到右,而且a的值是傳遞的。故為30
16樓:匿名使用者
12,因為,運算子是從左到右呀6+6=12
c語言中有一道題目:已知"int a=4,b=5,c;",則執行表示式"c=a=a>b後變數a的值為( ) a 0 b 1 c 4 d 5
17樓:匿名使用者
這個涉及到c語言的單目運算子優先順序與結合性的知識:
62616964757a686964616fe59b9ee7ad9431333330356165
優先順序:
在表示式中,優先順序較高的先於優先順序較低的進行運算。而在一個運算量兩側的運算子優先順序相同時,則按運算子的結合性所規定的結合方向處理。
結合性:
c語言中各運算子的結合性分為兩種,即左結合性(自左至右)和右結合性(自右至左)。例如算術運算子的結合性是自左至右,即先左後右。如有表示式x-y+z 則y 應先與「-」號結合,執行x-y 運算,然後再執行+z 的運算。
這種自左至右的結合 方向就稱為「左結合性」。而自右至左的結合方向稱為「右結合性」。
在你的問題中,"="在表示式中是賦值運算子,而在c語言中,賦值運算子是典型的右結合性運算子。如x=y=z,由於「=」的右結合性,應先執行y=z 再執行x=(y=z)運算。
所以,本例就是先計算雙目運算子「>」:a>b,因為a=4,b=5,a是小於b的,所以式子計算就變成了c = a = 0,然後再計算a = 0(即a = (a > b)),最後式子就是c = 0, 所以答案選a
具體運算子優先順序和結核性請參考:
18樓:0冷雨
答案是a;因為a=a>b意思為把波爾值a>b賦值給a,因為a大於b,a>b等於0,所以a為0.望採納~
19樓:匿名使用者
a, a=0
= 是由du右向zhi左運算的,
a>b值為daofalse,值為0
所以c=a=0
另外也可以專寫程式屬驗證:
#include
int main(void)
c語言環境中,設a=1,b=2,c=3,d=4,則表示式:a>b?a:c>d?a:d的結果為( )
20樓: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條件運算子具有右結合性
當一個表示式中出現多個條件運算子時,應該將位於最右邊的問號與離它最近的冒號配對,並按這一原則正確區分各條件運算子的運算物件。例如:
21樓:匿名使用者
結果是4,一會寫出過程
「?:" 這是一個三目運算子,以 「c>d?a:
d」這個**為例,程式會首先判斷「c>d」是否為真,若為真則執行冒號前的語句,即其結果為」a「的值;若為假,則執行冒號後的語句,即其值為"d"的值。
一般遇到這樣的題要拆分著做,首先判斷最左邊的「a>b」,這個結果為假,根據條件判斷運算子的性質,所以接下來執行第一個冒號後的語句「c>d?a:d」,接著判斷「c>d」,結果為假,所以最終取值為第二個冒號後的值,即為d的值,也就是4。
22樓:匿名使用者
答案為4,「a?b:c」是從右向左執行的,也就是說a為真的話,這個式子就可以看做b,否則可以看做c;c大於d麼,不是,則變成了a>b?
a:d,a大於b麼,不是,則為d,d=4.
23樓:匿名使用者
答案是4.三目運算子就可求得
#include 」stdio.h」 main() { int a=5, b=4, c=6, d; printf(」%d\n」, d=a>b? a>c?a:c :b); }
24樓:匿名使用者
d=a>b? a>c?a:c :b這個式子可解釋為d=(a>b?(a>c?a:c):b);
這裡的?:是一個三目運算子
a?b:c如果a為真,則返回b表示式的值,否則返回c表示式的值a>b為真,所以返回a>c?a:c
a>c為假,所以返回c的值,即6
設有inta1b2c3d4m2n2執行
這是邏輯運算,n的值為2 m a b 是賦值表示式,若a大於b則m得真,否則m得假回。答 a 1,b 2,a b 為假,故 m 假。賦值表示式 m a b 為假。m 0。在邏輯與 運算中,如果第一個運算元為假,則結果是假,後面的運算元不參與運算,本題中因為第一個運算元 m a b 為假,所以第二個運...
a 1,b 2,c 3,d 4,e 5 k ab?c de?d e kC語言題目,馬上要
表示式 條件e b c 如果條件e滿足,那麼這個表示式的結果是b,否則是ck a b?c d e?d e 這是巢狀的表示式 1.首先是 a b c d e?d e 2.由於a b為false,所以上面表示式的結果是 d e?d e 3.由於d e為false,所以結果為e 所以k 5 k e 5 運...
若a6,b4,c5,則表示式abcb
查手冊上的優先順序,5種運算 的優先順序哪個在前,優先順序高的先計算。除法回最高,所以先算2 c,因答為是整型,2 c的結果是0。其次是加法,b c結果為9。然後是 a b c,即6 9,即1。然後是 比 優先順序高 a b c b,即1 b,即1 這裡發生了邏輯短路,不需要知道b是多少就能算出表示...