《C語言程式設計 問題與求解方法》 2 9節常量

2021-09-23 09:18:51 字數 1519 閱讀 7631

2.9 常量

c語言源程式中,可以使用的運算量有兩大類:常量和變數。在程式執行過程中,其值不能被改變的量稱為常量。

c語言中常量又分為數值常量和符號常量兩大類。程式中應當多使用含義比較清楚的符號常量,盡量不要用意義不太明確的數值常量。

2.9.1 數值常量

前面所講的都是數值常量(c語言中字元常量也是數值常量中的一種)。而符號常量是用符號在源程式中表示乙個數值常量。符號常量一般由大寫英文本元組成的識別符號構成,用編譯預處理命令#define將符號常量與某個數值常量關聯起來。 比如:

#define  pi  3.14
這樣一來,在進行編譯之前,源程式中所有出現的符號常量pi都會被編譯預處理程式用 3.14 替換掉。

使用符號常量會使得修改常量的值變得非常方便。對於上例,只要將 #define pi 3.14 修改為#define pi 3.1416 ,則源程式中多處出現的pi便都會被編譯預處理程式替換成 3.1416,程式的可讀性也更好。

對於字元常量和整型常量,也都可以用符號常量來表示,比如:

#define  add    '+'

#define days 31

2.9.3 資料的機內形式和機外形式

源程式中(或輸入輸出時),常量(或變數)值的形式(比如十進位制形式)稱為資料的機外形式;而計算機內部儲存(和傳輸)的二進位制資料形式稱為資料的機內形式。乙個機內形式的資料常常可以表示為多種等值的機外形式的資料。

我們在編寫c語言源程式和執行程式輸入資料時,只能使用資料的機外形式,不能使用二進位制資料。將機外形式資料轉換成機內形式資料是由系統(編譯程式、輸入輸出庫函式等)自動進行的。但是在遇到了一些疑難程式設計問題(溢位、型別轉換或進行嵌入式程式設計和系統程式設計)時,往往需要了解和掌握資料的機內形式,才能找到較好的解決方案。

延伸與拓展:資料的機內儲存形式

整型量在計算機內部的儲存方式

整型量在計算機內部的儲存方式有兩類:無符號整型和有符號整型。無符號整型就是用一定長度的二進位制位串直接表示的非負整數。有符號整型就是用一定長度的二進位制位串作為編碼,來間接表示乙個有符號整數。通常用最高位表示數的符號,最高位為0表示正數,最高位為1表示負數。在絕大多數計算機中,使用補碼來表示有符號整數。

實型量在計算機內部的儲存方式

在計算機內部,實型量的儲存方式與整型量的儲存方式全然不同。它們通常是以規範化的指數形式來儲存的(即小數點前面只有一位非負整數的指數形式,在二進位制中,這個非負整數必定是1)。一般是用記憶體中位址連續的幾個位元組(比如4個位元組一共32位)中的最高位表示數的正負號、若干位表示數的指數部分、若干位表示數的小數部分(即除去一位非零整數部分後的小數部分),見下表。

符號位(佔1位) 指數部分(若干位) 小數部分(若干位)

指數部分的符號通常隱含在指數部分的資料位串中,這是由於指數部分通常採用餘碼表示法,進一步的討論請參見第3章。

【過關測試】指出例題2.2中,哪些是程式的正文部分?哪些是關鍵字?哪些是識別符號?哪些是數值常量?哪些是符號常量?

問題求解與程式設計

問題提出時,想要利用計算機進行求解,而一般計算機不會分析問題並直接給出解決問題的方案,故我們個人需要分析問題並給出問題的解決方案,再將其描述成計算機能識別的指令 程式 讓計算機進行複雜處理,最終得到問題結果,在這一過程中,計算機確起著非常重要的作用,但是要是沒有前面的一系列步驟,也不能解決問題 程式...

C語言遞迴方法求解揹包問題

十 揹包問題的求解 假設有乙個能裝入總體積為t的揹包和n件體積分別為w1 w2 wn 的物品,能否從n件物品中挑選若干件恰好裝滿揹包,即使w1 w2 wn t,要求找出所有滿足上述條件的解。例如 當t 10,各件物品的體積時,可找到下列4組解 1,4,3,2 1,4,5 8,2 3,5,2 incl...

問題求解與程式設計 實驗四 C食堂排隊

描述 某日,食堂視窗推出一款新美食,每個班的同學都想去嚐一嚐。於是,很多人都去這個視窗排隊,但是,隊伍中如果同班同學相鄰站著的話,他們就只需要乙個人排在隊伍中就行了。例如某次隊伍情況 12221133345678899,那麼就會變成一條新的隊伍 1213456789。輸入 輸入有多組資料,對於每組資...