A. 在c語言,函數調用printf("%o",023&17)的返回值是多少
023二進制是10111
17二進制是10001
那麼023&17即為10001
化成八進制為21
所以輸出21
&符號意思是都為1則為1,否則為0
%o表示以八進制輸出
滿意請採納
B. C語言 兩個數求或 怎麼求。 為嘛等於21啊。。。
或是||吧 它可能是這么算的 。姑且按8位算吧 int t=20=00010100 與1取或 00000001 所以變成00010101 就是21了
C. 在C語言中表達式21^2值是
21的二進制是 10101
2 的二進制是 00010
^ 位異或是只有1個為真時才為真
所以是 10111
轉為10 進制是 23
希望你能理解
D. 在C語言中為什麼20|1等於21啊
| 代表按位或運算也就是把你運算符前後的數 的二進制形勢對其,然後對應位上面進行或運算任何數字與0或運算是它本身,與1或運算得到1二十的二進制形勢最後一位肯定是0 因為最後一位的權是1 ,而二十又是個偶數,所以不用求到它的補碼就可以知道而1隻有末位是1 其餘位數是0他們按位或運算之後只是改變了二十的最後一位從零變成了一 相當於大了一 於是就是二十一了
E. C語言問題,告訴我C為什麼等於22而不是21
C原來是20,計算表達式(c++) + (++c)前先做++c,使C==21,把21+21==42賦給d後,還要做C++,使C再從21變為22,等到printf時C已經是22了——你可以想一下,如果C是21,那麼寫著C++還有什麼意義?
F. c語言代碼,我認為是21,實際是22想不明白,求大神解答
#include<stdio.h>
intmain(void){
inti=5,j=5,p,q;
p=(i++)+(i++)+(i++);
q=(++j)+(++j)+(++j);
printf("p=%d,q=%d i=%d,j=%d ",p,q,i,j);
return0;
}
q=(++j)+(++j)+(++j),j=5
結果當然是22,從左到右運算啊,先算前兩個加數的和,再和第三個相加。
=> (++j)+(++j)=7+7=14
=> 14+(++j)=14+8=22.
不同編譯器不同。
G. C語言 求解為什麼為21
因為fun函數中的x是靜態變數,所以第一次進入fun函數後使得x=2,那麼第二次再進入時,x的初始值仍是2,不會是1了,所以最後得到的結果是
s=1+2+3+4+5+6=21