最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【C Primer Plus第六版中文】 課后習(xí)題 第三章 3.11編程練習(xí)(個(gè)人總結(jié)版)

2023-07-30 22:31 作者:Airy-1  | 我要投稿

(前言:,本文章由個(gè)人收集相關(guān)資料且撰寫(xiě)而成,初心是在學(xué)習(xí)中做筆記,供個(gè)人學(xué)習(xí)使用)?

1. 通過(guò)試驗(yàn)(即編寫(xiě)帶有此類(lèi)問(wèn)題的程序)觀察系統(tǒng)如何處理整數(shù)上溢、浮點(diǎn)數(shù)上溢以及浮點(diǎn)數(shù)下溢的情況

這三個(gè)樣例代碼會(huì)因?yàn)榫幾g器和計(jì)算機(jī)硬件的不同而有所不同,但基本概念和現(xiàn)象是相同的。

我用的是VS2022版本,64位windows系統(tǒng)

a.?整數(shù)上溢:


整數(shù)上溢樣例-可運(yùn)行代碼


b.?浮點(diǎn)數(shù)上溢:


浮點(diǎn)數(shù)上溢樣例-可運(yùn)行代碼


c. 浮點(diǎn)數(shù)下溢:


浮點(diǎn)數(shù)下溢樣例-可運(yùn)行代碼

補(bǔ)充知識(shí)點(diǎn):

(一)

?1. **數(shù)據(jù)類(lèi)型大小**:不同硬件平臺(tái)上,數(shù)據(jù)類(lèi)型的大小可能會(huì)有所不同。例如,在32位系統(tǒng)上,整數(shù)數(shù)據(jù)類(lèi)型 int 通常為4字節(jié),而在64位系統(tǒng)上,它通常為8字節(jié)。如果在不同平臺(tái)上使用相同的代碼,但數(shù)據(jù)類(lèi)型大小不一致,可能會(huì)導(dǎo)致數(shù)據(jù)溢出。

?2. **字節(jié)序**:計(jì)算機(jī)硬件有兩種字節(jié)序,即大端序和小端序。大端序是將高位字節(jié)存儲(chǔ)在低地址,小端序是將低位字節(jié)存儲(chǔ)在低地址。如果代碼在一個(gè)平臺(tái)上按照一種字節(jié)序編寫(xiě),然后在另一個(gè)平臺(tái)上運(yùn)行,可能會(huì)導(dǎo)致數(shù)據(jù)在存儲(chǔ)和讀取時(shí)順序不一致,從而導(dǎo)致數(shù)據(jù)溢出。

?3. **浮點(diǎn)數(shù)精度**:不同硬件平臺(tái)上的浮點(diǎn)數(shù)運(yùn)算可能有不同的精度。例如,一些平臺(tái)上使用 IEEE 754 標(biāo)準(zhǔn)來(lái)表示浮點(diǎn)數(shù),而另一些平臺(tái)可能使用其他方法。如果代碼在一個(gè)平臺(tái)上進(jìn)行了浮點(diǎn)數(shù)運(yùn)算,然后在另一個(gè)平臺(tái)上運(yùn)行,可能會(huì)導(dǎo)致精度丟失,從而導(dǎo)致數(shù)據(jù)溢出。

?4. **處理器指令集**:不同的處理器可能支持不同的指令集和指令集擴(kuò)展。如果代碼使用了特定平臺(tái)上的特殊指令或指令集擴(kuò)展,但在其他平臺(tái)上并不支持,可能會(huì)導(dǎo)致代碼運(yùn)行時(shí)出現(xiàn)錯(cuò)誤或數(shù)據(jù)溢出。

?5. **硬件架構(gòu)**:不同硬件架構(gòu)的處理器可能有不同的尋址空間和內(nèi)存管理方式。如果代碼假設(shè)特定硬件架構(gòu)的內(nèi)存地址分布,但在其他硬件架構(gòu)上運(yùn)行,可能會(huì)導(dǎo)致內(nèi)存訪(fǎng)問(wèn)錯(cuò)誤,從而導(dǎo)致數(shù)據(jù)溢出。

?綜上所述,計(jì)算機(jī)硬件在數(shù)據(jù)類(lèi)型大小、字節(jié)序、浮點(diǎn)數(shù)精度、處理器指令集和硬件架構(gòu)等方面的差異可能導(dǎo)致代碼數(shù)據(jù)溢出的不同情況。因此,在開(kāi)發(fā)跨平臺(tái)的代碼時(shí),需要特別注意這些差異,以確保代碼在不同硬件平臺(tái)上都能正確運(yùn)行,并避免數(shù)據(jù)溢出等問(wèn)題。

(二)

解:浮點(diǎn)數(shù)上溢時(shí)輸出結(jié)果為 "inf" 是因?yàn)楦↑c(diǎn)數(shù)的表示范圍是有限的,當(dāng)一個(gè)浮點(diǎn)數(shù)的絕對(duì)值超過(guò)了它所能表示的最大值時(shí),它就會(huì)變成正無(wú)窮或負(fù)無(wú)窮,用字符串表示為 "inf" 或 "-inf"。

?在C語(yǔ)言中,浮點(diǎn)數(shù)上溢的情況通常用 IEEE 754 標(biāo)準(zhǔn)中定義的特殊值來(lái)表示,它表示無(wú)窮大。IEEE 754 標(biāo)準(zhǔn)規(guī)定,當(dāng)一個(gè)浮點(diǎn)數(shù)的指數(shù)部分超過(guò)浮點(diǎn)數(shù)表示范圍時(shí),這個(gè)浮點(diǎn)數(shù)就被認(rèn)為是無(wú)窮大。

?在例子中,我們將一個(gè)很大的浮點(diǎn)數(shù) `3.4e38` 乘以2,這超過(guò)了浮點(diǎn)數(shù)表示范圍,因此結(jié)果變成了正無(wú)窮,用字符串 "inf" 來(lái)表示。實(shí)際上,"inf" 是一個(gè)特殊的浮點(diǎn)數(shù)值,代表正無(wú)窮大。

?需要注意的是,由于計(jì)算機(jī)對(duì)浮點(diǎn)數(shù)的表示是近似的,所以正無(wú)窮也可能用其他表示形式,例如 "INF" 或 "Infinity",具體表現(xiàn)取決于編譯器和計(jì)算機(jī)系統(tǒng)的不同。但無(wú)論如何,它們都代表了浮點(diǎn)數(shù)上溢的情況。


2. 編寫(xiě)一個(gè)程序,要求提示輸入一個(gè)ASCII碼值(如66),然后打印輸入的字符。

樣例代碼

3. 編寫(xiě)一個(gè)程序,發(fā)出一聲警報(bào),然后打印下面的文本:

Startled by the sudden sound, sally shouted,

“By the Great Pumpkin, what was that!”


目的就在于簡(jiǎn)單使用蜂鳴警報(bào) \a

樣例代碼


4. 編寫(xiě)一個(gè)程序,讀取一個(gè)浮點(diǎn)數(shù),先打印成小數(shù)點(diǎn)形式,再打印成指數(shù)形式。然后如果系統(tǒng)支持,再打印成p計(jì)數(shù)法(即十六進(jìn)制計(jì)數(shù)法)。


樣例代碼


#include <stdio.h>

int main() {

??? double num;

??? printf("請(qǐng)輸入一個(gè)浮點(diǎn)數(shù):");

??? scanf("%lf", &num);

??? // 打印成小數(shù)點(diǎn)形式

??? printf("小數(shù)點(diǎn)形式:%f\n", num);

??? // 打印成指數(shù)形式

??? printf("指數(shù)形式:%e\n", num);

??? // 打印成p計(jì)數(shù)法(十六進(jìn)制計(jì)數(shù)法)

??? printf("p計(jì)數(shù)法:%a\n", num);

??? return 0;

}


5. 一年大約有3.156×107秒。編寫(xiě)一個(gè)程序,提示用戶(hù)輸入年齡,然后顯示改年齡對(duì)應(yīng)的秒數(shù)。


個(gè)人編寫(xiě)代碼初始版本


這是我編寫(xiě)的相關(guān)代碼,經(jīng)過(guò)AI修改后,下方為修改補(bǔ)充的代碼。


修改后代碼

在使用 scanf_s 函數(shù)時(shí),需要指定 %d 的寬度為 sizeof(ages),因?yàn)?scanf_s 是安全的輸入函數(shù),需要確保輸入的數(shù)據(jù)不會(huì)導(dǎo)致緩沖區(qū)溢出。


6. ?1個(gè)水分子的質(zhì)量約為3.0×10-23克。1夸脫水大約是950克。編寫(xiě)一個(gè)程序,提示用戶(hù)輸入水的夸脫數(shù),并顯示水分子的數(shù)量。


樣例代碼


7. ?1英寸相當(dāng)于2.54厘米。編寫(xiě)一個(gè)程序,提示用戶(hù)輸入身高(/英寸),然后以厘米為單位顯示身高。

樣例代碼

8. 在美國(guó)的體積測(cè)量系統(tǒng)中,1品脫等于2杯,1杯等于8盎司,1盎司等于2大湯勺,1大湯勺等于3茶勺。編寫(xiě)一個(gè)程序,提示用戶(hù)輸入杯數(shù),并以品脫、盎司、湯勺、茶勺為單位顯示等價(jià)容量。(思考對(duì)于該程序,為何使用浮點(diǎn)類(lèi)型更合適?)

樣例代碼


【C Primer Plus第六版中文】 課后習(xí)題 第三章 3.11編程練習(xí)(個(gè)人總結(jié)版)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
宜兴市| 温泉县| 清远市| 文成县| 池州市| 高淳县| 兴文县| 邵阳市| 金寨县| 昌都县| 牟定县| 衡阳县| 庐江县| 浑源县| 庆阳市| 交口县| 元谋县| 武清区| 中宁县| 衡山县| 峨眉山市| 额尔古纳市| 高州市| 普陀区| 庄浪县| 景德镇市| 宜川县| 庆云县| 凤山市| 临邑县| 华池县| 台南市| 池州市| 金坛市| 永和县| 洛阳市| 叙永县| 海原县| 宁城县| 桓仁| 双辽市|