C語言中 a b 1和a a 7 c b 語法分別錯在哪裡

2025-07-14 20:15:12 字數 3952 閱讀 7866

1樓:記住一座城

:必須和?一起作為三目運算子用,不能單獨用。

c語言新手求教幾個問題: 1、a=a+7=c+b為什麼語法錯誤?

2樓:龔煒林

你好!1、等號是賦值運算,這就意味著等號左邊必須是被賦值的變數,顯然a+7是表示式,而不是變數。

2、整形運算是隻取整數部分的,你定義的c1,c2,c3均是整數,所以;c3=;進行的是整形運算,那麼只取整數部分就是0.

3、注意:在浮點型與整形等混合運算時,系統會將所有型別的資料轉化成double型的來運算,然後把結果再根據需要賦給響應變數。

對於你的表示式,c是float的,所以最後結果是要被轉化成float賦值給c。

4、逗號運算子,又稱順序求值運算子,但是要區分這個順序,這裡的順序指的是表示式,逗號運算子使用形式是:表示式1,表示式2,..

這就是說逗號隔開的是表示式,那麼對於i=(a=2*3,a*5),a+6;就可以理解了:i=(a=2*3,a*5)是乙個表示式,a+6是另外乙個表示式。

3樓:校花丶窼頿齔

這個式子會從右到左依次賦值。

c語言賦值語句"a=(7+b,b++,a+7)"語法錯在**?

4樓:黃邦勇帥哥哥

少個分號也是乙個錯誤,但可能不是。

樓主真正想問的錯誤。

依樓主題意,這是乙個賦值專語句,屬既然是賦值語句,那麼也就是說變數a還沒有初始,因此你的這個語句就是錯誤的。解釋如下。

a=(7+b,b++,a+7) 假設b是有初值的,因此7+b;和b++都沒有錯誤,但是a是正在被初始化的變數,因此a還沒有初值,因此a+7就是錯誤的,因為a還沒有初值,所以在進行初始化之前不可以進行運算。所以這裡是錯誤的。

5樓:網友

後面缺少分copy號來結束這個賦值語句bai。

a=(7+b,b++,a+7);

其實這個賦值語句相當du於先後執行以下zhi語句:

7+b; //這個語句無意義。

b++;a=a+7;

也就是將最後dao乙個a+7的值付給a。

因為連續用逗號分割的若干個表示式的值等於最後乙個表示式的值。

6樓:網友

這是乙個用逗號表示式賦值的語句,表意不明確。

因為c標準並沒有規定逗號表示式的求值順序,所以可能先計算b++,也可能先計算7+b,所以此語句意義是編譯器有關的。

7樓:網友

他是乙個語句,那麼就該以分號結束(;)

a=(7+b,b++,a+7);

8樓:**

少個;號 這是個語句 語句必須以;號結束。

在c語言中,若變數已正確定義並賦值,則該表示式 a=a+7=c+b 有誤嗎?怎麼解釋。

9樓:網友

#include

int main(void)

如果如上編寫程式,則無輸出;

a=a+7;語句為正確的。

而a+7=b+c;語句為錯誤的。

如果寫成a=a+7=c+b;同樣也會出現錯誤若改為#include

int main(void)

則結果為:10 6 9

10樓:星語心願

這種寫法相當於: a+7=c+b;

a=a+7;

第一句肯定不對。

11樓:

有誤,a+7是表示式,屬於右值,不能在等號左邊。

12樓:網友

當然有問題,第二個等號左邊是乙個運算,那麼右邊的值要給誰呀,所以左邊一定是乙個變數,不能是乙個運算。

13樓:

錯了,賦值運算是右結合(從右到左),等號右邊只能常量或是常量表示式。

c語言題目:若變數已正確定義並賦值,為什麼「a=a+7=c+b」不符合c語言語法的表示式?

14樓:網友

a+7=c+b是錯的。

等號左邊只能是變數,不能有常量。例如:7=b; 這樣賦值是錯的。

15樓:天地梅花開趙

是錯的。

等號左邊只能是變數,不能有常量。

c語言的問題

16樓:網友

第一題,你的**輸入有問題,你有兩個回大括號}而只有乙個大括號{,所以我無法判斷你的if在**結束,這樣的**是不對的,請你查閱你的題目吧**補充完整,另外,如果在if裡面巢狀if,請使用縮排格式,否則的話**不清晰會讓人無法搞清楚你的if之間的關係,請你修改第一題的**,第二題的輸出是:

你的printf函式中的**的意思是,將abc三個變數以float型別輸出,小數點後有兩位,同時每個資料佔據五個空位,整段**是對abc進行了乙個排序。

17樓:p白馬公主

1.一樓說的不無道理 但是第乙個**並無語法錯誤。如果確定沒寫錯的話,結果應該是5,因為第二個if跟else匹配。

第乙個if包括了第二個if和else。所以不滿足條件,結果是5.

2.第二道題,顯然是三個數的重新排序,a,b,c分別從小到大排,結果是 1 3 7

c語言賦值語句 a=7+b,b++,a+7; 這條語句合法嗎

18樓:網友

如果題目本身已經對b賦初始值,那麼這條語句就是正確的。如果題目並沒有事先對b賦初值,那麼這條語句就是錯誤的。所以不要斷章取義。

19樓:網友

不會法呀!變數要在用之前定義,a,b你都沒定義,肯定不合法呀!

int a=0,b=0;a=7+b;b++;這樣就合法啦;

20樓:淦海瑤

這是考驗逗號運算子,這個合法。

21樓:

如果之前定義了a 和 b 的屬性 就是合法語句。

若變數已經正確賦值,以下符合c語言語法的表示式是:1,a=b+1;2,a=b=c+2 3,int18.5%3 4,a=a+7=c+b

22樓:網友

不考慮分號的話,1和2是對的。1不用說了,2是可以的,2的執行順序是將c+2的值賦給b,然後將b賦值給a,這樣連續賦值是可以的。4不可以是因為表示式a+7返回的不是左值。

23樓:認不倒你

答案是1。

2:少「;」

3:少「()

4:a+7不能被賦值。

c語言中,是如何賦值的?a=b+c=1為什麼是錯的?

24樓:剛哥不會文明

賦值端左面只能是乙個儲存資料的符號。。你這裡1賦值給b+c,這是不行的。b+c不是乙個儲存資料的符號。

我建議你買本清華大學c++版的工具書,譚浩強出的。。那本書裡比較詳細。

25樓:上虞潘永傑

在c語言中只能給變數賦值,不能給表示式賦值,你這個式子的運算順序是從右到左,1是不能賦值給表示式b+c的。

26樓:網友

a=7+b+c=a+7; //不符合,因來為7是const也就是源常量型別,不可以bai對其賦du值,zhi7+b+c含有常量,對其賦值也是錯誤的。

daoc=7+b++=a+7; //同上。

a=a+7;//可以。

b++=7是可以運算的,先賦值b=7,再加1

27樓:蛇的獨孤

因為賦值是賦值給變數的,而b+c不是變數……a=b+c是對的,但是b+c=1是錯誤的。

28樓:網友

vb中賦值的話,應該是"變數=值"的形式,只能是"a=1"

c語言中ab怎麼算,在C語言中ab是什麼意思啊

表示異或,就是對應的bit如果不相同,則結果為1 a b的含義就是把a和b轉換成2進位制的bit,然後按位異或 例如 3 5 00000011 00000101 00000110 6 如果資料小 加入 include int pow a,b 就是a b的值 如果資料大 用高精度乘 b a 1 a 1...

請問C語言中,1,請問C語言中,

是求餘數的意思,a b也就是a除以b餘幾 1 2 0餘1,那1 2 1 這裡 是取餘數的意思 1除以2 餘數就是1咯 計算步驟的話。cpu有直接的整數除法指令,商和餘數分別放在不同的暫存器裡。這些都交給編譯器了,我們不用理了 取模運算。也就是1除2的餘數?結果 1 除數是2的時候很特殊.a 2 等同...

c語言中語句ab是什麼意思C語言中語句ab是什麼意思

先解釋一下 和 是 什麼意思 的意思是 左值和右值相加結果賦值給左值如 a 1 b 2 a b 後,a 3 b 2。的意思是變數自加1,如a 1 a a的值是2,在c中,有前置和後置如 a a 單獨使用的時候是沒有區別的,都是自加1,在有運算時就有區別了,前置的 是自加後才參與運算,後置的 是參與運...