❶ c語言問題,求解釋
for語句中第1個表達式是初始化用的,第2個是循環條件,第3個是循環體執行完成後調用的
比如:for(a;b;c)d;的調用順序是:
a;b是否滿足,滿足開始循環:d;
c;b是否滿足,滿足繼續循環:d;
c;b是否滿足,不滿足結束循環
因此題目中執行順序就是:e1; 無條件循環即while ( 1 ),s; e3; while(1) s; e3; ...,其中s和e3是重復執行的
因此對應的選項是B
❷ c語言問題,求詳細解釋!
答案選B,scanf對於字元串的輸入,會被空格或者回車截斷。
所以第一個scanf對a讀入的其實是how
而gets不會被空格截斷,所以gets對b數組讀入的是" are you ?I am fine"
所以最後輸出這兩個字元串的結果就是B了。
❸ c語言程序問題 判斷對錯,並解釋
1,正確。c語言把文件看作是一個字元(位元組)的序列,即由一個一個字元(位元組)的數據順序組成。
2,錯誤。宏定義是用宏名來代替一個字元串,也就是做簡單的變換。所以這個跟裡面的字元有沒有定義無關。且事先也不做正確性檢查的,只有等完全編譯後才進行錯誤檢查的。更何況未定義只是語法錯誤,跟宏定義無關。
❹ C語言問題解釋
講解如下:
x=sub(p,9,3);
函數調用傳參過程:t=p; x=9; y=3;
由於p是指向funa函數的,那麼t也指向funa函數了,那麼 執行return (*t)(x,y);語句時,實際上是調用了funa函數,那麼返回值是12,x=12。
x+=sun(funb,8,3);
函數調用傳參過程:
t=funb; x=8,y=3;
傳參後,指針t就指向funb函數了,那麼 執行return (*t)(x,y);語句時,實際上是調用了funb函數,那麼返回值是5。所以x+=5,即x=x+5,x=17。
此題主要考察函數指針的相關知識點。