哪個(gè)網(wǎng)站可以做信用社的題百度宣傳廣告要多少錢
char int long float double運(yùn)算的時(shí)候是從低轉(zhuǎn)到高的,表達(dá)式的類型會(huì)自動(dòng)提升或者轉(zhuǎn)
換為參與表達(dá)式求值的最上級(jí)類型.
關(guān)于代碼的說法正確的是( )
#include <stdio.h> int main() {int x = -1;unsigned int y = 2;if (x > y){printf("x is greater");}else{printf("y is greater");} return 0; }
A: x is greater B: y is greater C: 依賴實(shí)現(xiàn) D: 隨機(jī)
答案:A
x是有符號(hào)數(shù)-1,內(nèi)存中是全1,當(dāng)有符號(hào)的x和無符號(hào)數(shù)進(jìn)行比較時(shí),x會(huì)隱式類型轉(zhuǎn)換被當(dāng)做無符號(hào)數(shù),是一個(gè)很大的數(shù)
取余操作兩邊必須是整數(shù) 6.1%2是不行的
下面函數(shù)的輸出結(jié)果是( )
void func() {int k = 1^(1 << 31 >> 31);printf("%d\n", k); }
A: 0 B: -1 C: -2 D: 1
答案:C
😵(1 << 31 );左移31位,并在右側(cè)填充0,得到0x80000000,即符號(hào)位為1,其他為0,即-2147483648int k = 1^(1 << 31 >> 31);注意,這里在右移的時(shí)候,符號(hào)位保持為1,右移后填充1,結(jié)果為0xFFFFFFFF,即-1,0x00000001^0xFFFFFFFF,即0xFFFFFFFE(-2)
如下代碼的輸出結(jié)果是( )
#include <stdio.h> int main() {int i = 1;sizeof(i++);printf("%d\n", i);return 0; }
A: 1 B: 4 C: 2 D: 8
答案:A
一般表達(dá)式的運(yùn)算是在運(yùn)行時(shí)執(zhí)行的,而sizeof是一個(gè)編譯階段就執(zhí)行的運(yùn)算符,在其內(nèi)的任何運(yùn)算都不執(zhí)行,只推測(cè)出其中表達(dá)式結(jié)果的類型求其大小,故前后i的值不變。
-The End-