1樓:匿名使用者
第一題:d 。
++是一個運算子,運算子的左邊需要一個左值,即可定址的值。而(-a)是一個表示式,該表示式返回的是一個右值,++運算子不能作用在一個右值上。
但並不是所有表示式都返回右值。賦值表示式返回的就是左值,如果這樣寫:(a=3)++; 這句程式是正確的,可以通過編譯。
因為(a=3)是賦值表示式,返回左值,而++運算子正好作用於一個左值。
第二題:b 。
c++的意思是先返回c的值,然後再將c加1。
2樓:
借用一下,第一題 選d "++"需要一個左值,而-a系統無法定為左值
第二題 選b a!=b推出f=c++=3補充一下:
最後執行語句涉及到一個執行順序問題,你可以查一下書,=優先順序最差,所以上述語句等價於:
f=((a!=b)?c++:d++); 而(a!=b)?c++:d++;表示如果a不等於b,那麼返回值是c++,即是f = c++;否則f = d++
++運算子在變數前及後的情況如下:
int a = 1;
那麼++a的值為2,立即生效;
a++的值仍為1,但是遇到;後a的值變為2,即:
int a = 1,b;
如果b = ++a;則b = 2;
如果b = a++;則b = 1;
但是不論經過其中任何一條語句後,a的值都會變為2.
3樓:代號而已
第一題 選d "++"需要一個左值,左值只能是變數,不能是常量。
第二題 選b a!=b推出f=c++=3
4樓:匿名使用者
c,2.b括號內為真是c++,c++為後加加。f=3
C語言題求執行結果給出解釋 下列程式段執行後的輸出結果
這段 最抄後輸出的是 4,ps n應該是 n a?b c語句的意思是 1.假如a 邏輯表示式或0 1 的邏輯值為0,則語句的值為b b為表示式則取最後的值 2.假如a的邏輯值為1,則取c的值。在你的語句中a對應的為 k 不懂可追問 k 判斷 k 答案d應該是 4 而不是4 選a 條件運算子,右結合性...
c語言題目,求高手,一道c語言題,求高手解釋下這題!
3.程式設計判斷m是否為素數,已知0和1不是素數。include int isprime int m main 4.輸入一行字元,統計其中的英文字元 數字字元 空格及其它字元的個數 include include define arr size 80 main printf english char...
c語言 解釋下第八題,c語言題目。解釋下第八題
考驗運算子優先順序和結合順序,現實生活用不到 括號打敗一切 c語言題目。解釋下第八題 c 語言規定非 0 即真 實際上很多語言都這樣 x 假。y是真。y 是後 本次y應該算1。0 1 為真 本次應該是真,我覺得應該是 1 求第八題解 c語言 1 i 2,滿足 條件,s s 1 i i 1 0 1 3...