3 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個贊
第一題:C,C語言中,struct ST是一個數(shù)據(jù)類型的名字,NEW是對他起的別名,具體參見typedef的定義。所以選擇C。
第二題:C選項(xiàng)中,由于整型數(shù)和浮點(diǎn)型數(shù)內(nèi)存中編碼方式不同,所以輸出肯定不會是5.000000,B選項(xiàng)是對的,因?yàn)閁NION的類型的特征就是這個。
第三題:由于無符號數(shù)和有符號數(shù)的編碼方式不同,對于無符號數(shù)的65535,當(dāng)作有符號數(shù)的時候,會十個負(fù)數(shù),選項(xiàng)D。

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超6個贊
28、C
D是錯誤的,注意前面有typedef,如沒有,D正確。關(guān)于類型名稱這點(diǎn)沒什么具體的說法,非要說struct ST是類型,而ST不是類型,但定義時候應(yīng)使用struct ST,而不是ST。 B也沒什么嚴(yán)格錯誤。
27、C
printf中的格式控制是%f,也就是浮點(diǎn)數(shù),所有輸出肯定不是5,浮點(diǎn)數(shù)內(nèi)存表示方法不是直接映射的。聯(lián)合體占的字節(jié)是聯(lián)合體中最大成員所占字節(jié)數(shù),所以 B是正確的。
7、A
TC整型占2字節(jié),16位,所以無符號最大表示是2^16-1=65535。輸出可能不會是65535,因?yàn)閜rintf是用%d控制,而不是%u。但是題問的是x的值,x值沒有改變。
這些題沒什么意義吧,很不嚴(yán)謹(jǐn),比如27的A,就有不對的可能,涉及到大端小端(big endian little endian)

TA貢獻(xiàn)1793條經(jīng)驗(yàn) 獲得超6個贊
首先,雖然C++是C的超集,但你的問題全都是C的問題,不涉及C++特性。然后,再具體看你的問題:
28:已給出的答案 C 正確。typedef 定義了一個新類型叫做"NEW"。
29:已給出的答案 C 正確(即:該敘述錯誤)。浮點(diǎn)數(shù)在內(nèi)存里的二進(jìn)制表示方法和整數(shù)表示方法完全不同,具體參見IEEE-754標(biāo)準(zhǔn)。同樣的二進(jìn)制內(nèi)容當(dāng)做整數(shù)值是5時,當(dāng)作浮點(diǎn)數(shù)就完全不是5。
7:已給出的答案D正確。它考的是上世紀(jì)90年代TC(Borland Turbo C)那個16位編譯器的東東,所以嚴(yán)格說這是個歷史題不是C或者C++的題。int如果16位長,給出的那個值溢出了,答案是D。但這個年代的機(jī)器基本上都是32或者64位的int,沒有溢出所以答案會是A。由于結(jié)果取決于硬件環(huán)境和軟件(編譯器),如果該題不是問TC這個16位文物的話,答案就是C了。
添加回答
舉報