1樓:
樓上貌似b的選項我覺得說的不對
逗號表示式的運算順序:
a=表示式1,表示式2;
從左往右運算,但是是把最右邊的值賦給a,而不是第一個值。
2樓:匿名使用者
沒有一個是正確的,因為c語言規定表示式必須以分號結尾。如果說是漏打只有a是正確的,b中每個表示式佔一行不能以逗號隔開c,d就不用說了,根本沒有這種表達
3樓:
對 a是把a+7的值賦給a
對 b是把7+b+c的值賦給a,然後再a++(逗號表示式)錯 c強制型別轉換,但是12.3不能用於求餘錯 d等價於a=a+(7=c+b)但7不是變數(右結合性)還有表示式是沒有分號的,有分號的叫語句
還有算出結果後不賦給任何變數也是可以的,也是表示式,比如if(i+7)你不能說if()中的不是表示式吧
4樓:匿名使用者
a對b中間那裡應該用分號!
c那裡實型不能求餘!
d第二個等於號不能怎麼弄!
5樓:別動隊領導
選aba沒有爭議。
b中的","沒錯,那是順序求值運算子。但樓上好像解釋的不對,他的功能是按順序的執行每一個表示式,而不是把最右邊的值給a。因為","的優先順序低於“=”,所以要想把最右邊的值付給a,應用“a=(7+b+c,a++)”
c中%只能用於整數之間。
6樓:匿名使用者
d的問題在於a+7不是變數不能被賦值
7樓:夏天的泡子
a對,表示的是,(給a的值加7),再把這個值賦值給a;
b錯,表示,先把(b+c+7)的值賦給a。然後a自增(即等價於a選項那樣,a=a+1);我看有回答說是錯誤,說什麼第一個表示式和第二個表示式之間應該是分號,其實不對,這個整個是運用了逗號運算,自左向右運算;
c錯,%是取整,只能用於整數之間,
我想正確的表達應該是(int 12.3)%4;
d錯,在c語言中,賦值的一個規則就是不能連續賦值,正確的表示式應該是a=a+7;a=c+b
8樓:
ab都對吧。。。
a是把a+7的值賦給a
b是把7+b+c的值賦給a,然後再a++ 這是逗號表示式c強制型別轉換,但是c沒有變數,轉換出來的值沒地方放。。。
d不能這樣賦值,需要分開
9樓:匿名使用者
選ab中間要是分號就對了;c,%取整運算必須是整數之間;d.....不能那麼連續賦值,具體為什麼我也不知道,就是規定吧
10樓:匿名使用者
沒有一個是對的。變數在沒有賦初值,是不能出現在等式右邊賦給別的變數的!如a。a沒初值又怎能把a+7給a呢?同理b,d。
c。中根本沒變數,而且%運算兩邊要是整數!
是不是題抄錯了!
11樓:提瑞斯法の殤
ab a:沒啥說的
b:逗號表示式,從左往右運算,把最右邊的值賦給ac:只有整數才能取餘
d:賦值號的左值,也就是=左邊的必須是變數而這裡是7常量,所以d也錯了
C語言問題,C語言問題C語言問題
選a首先,空格也是一種字元,b d選項分別把空格賦給了c1,c1 其次,c選項不完整,排除 不僅a這樣,10a20b也是可以的。 聽不清啊 答案a 10a 20b cr 是正確的。因為scanf d c 時,會忽略數字前面的空格,遇到非數字字元就會結束讀取 非數字字元會留待下一次讀取,即被後面的 c...
c語言的問題,C語言問題?
魘傳說 這個 的作用就是利用do while將陣列算出來,然後利用for迴圈遍歷,倒序輸出陣列。我感覺很奇怪,devc 出來的結果是10010。我算出來的結果應該是00010,因為強轉int型別應該是取0的,而不是取1.然後我用c 試了多個數字,發現所有的結果都是以1開頭,至於為什麼我也不知道,希望...
C語言的問題,C語言的問題
布什不死 在vc 下沒有問題 改過你存在的問題後 include void main 你的程式 錯誤地方太多,當然得不到正確 結果你能通過 編譯?你在什麼 環境下執行的?正確的應該是 include int main scanf 是輸入函式,n換行符是針對輸出函式 printf來說的! 浩星浦秋梵 ...