c語言的題答案是5634怎麼算出來的a1b2在

2021-04-30 21:22:35 字數 2187 閱讀 4166

1樓:匿名使用者

a=3,b=4為什麼是全域性變數 全域性變數不是a=1,b=2你好~這個理解有誤哦~全域性是a=1,b=2沒有錯的~void fun2()

但是這裡的是給變數賦值,因為賦值語句是選擇最近的變數的~當這裡沒有區域性變數(就是在fun2裡面的a,b,但是這裡沒有定義)它就給全域性賦值了哦

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

2樓: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條件運算子具有右結合性

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

3樓:匿名使用者

結果是4,一會寫出過程

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

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

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

4樓:匿名使用者

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

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

5樓:匿名使用者

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

c語言題 int a=1,b=2,c=3,d=4,e=5; k=a>b?c:d>e?d:e;求k

6樓:我二次元穿越

k=5k=a>b?c:d>e?d:e;

是說,a>b是否為真,真的話就執行,把c的值賦給k如果a然後跳到下面看d>e是否為真,如果真的話就執行,把d的值賦給k如果d>e為假的話,剩下的就執行e了,把e的值賦k,所以k=5

新手c語言問題,a=(b=4)=3;為什麼是錯誤的,而(a=3*5)=3*4;是對的

7樓:匿名使用者

賦值運算子是最典型的右結合性運算。

如x=y=z,由於「=」的右結合性,應先執內行y=z 再執行x=(y=z)運算。容

a=(b=4)=3是錯誤的前提是,你必須先宣告b:

int b = 0;

int a=(b=4)=3;

這條語句的執行順序是:b=4=>b=3=>a=(b=3)後的結果就是a=3, b=3;

同理,(a=3*5)=3*4;括號優先,最後的結果依然是a=12;

8樓:愛恨至冥

a=(b=4)=3,按照運算子優先順序,先執行b=4,再執行b=3,最後執行a=3,所以結果得到a、b都等於3,並沒有內錯。

(a=3*5)=3*4;按照運算子容優先順序,先執行a=3*5,再執行a=3*4,最後的出a等於12.

兩個都沒有錯啊。

你看有沒有可能是中英文輸入法導致的符號的問題。

9樓:匿名使用者

我個人覺得,要養成好的程式設計習慣,就應該少寫這種**,可讀性和維護性太差。實話。

這種**,不同的編譯器結果不一樣,沒必要糾結。

樓主可能會覺得我答非所問,但是這點確實是我所想指出的

10樓:匿名使用者

你這是判等語句還是賦值語句?

c語言問題題,C語言問題答案

沒考慮邊界資料,給你改了下 int prime int p int primesum int m,int n return sum c語言問題答案 9 a 1,b 3,c 2 必須按scanf格式輸入 10 a 1 1 的值是0 初值賦值只給了每行第一個元素,其餘元素未指定值,預設0。11 1 邏輯...

C語言求解,為什麼下面這道題答案是

因為k是int型,所以在k被賦值為3.4的時候,實際上轉換成了3 精度損失了 add並沒有改變 k的值,因為c中的引數傳遞是按照值傳遞的,a實際上等於4了,但在add 執行完之後,a就被釋放掉了,k仍然沒變,所以還是3.因為你那個add函式的引數a是值傳遞的,所以呼叫add k 後不會改變k的值,k...

C語言運算問題,c語言這題怎麼計算?

第一問 假設x為0 則!x為1,而!x 即!1 所以結果為0,反之,x為1時結果也為1,即 是判斷x的值是否為 1等價,所以應該結果為c,布林型的話 答案也可以是b 第二問 這是個優先順序的問題 等符號運算是自右向左執行的,優先順序小於加減乘除,執行後賦值,因此a a a a 為 a為 6 2.a ...