<source : unsplash>

一、心得分享

自己學程式,總是看了很多,可是實作時,又可能遇到 "書到用時方恨少"的窘況。很明顯的,能是學習方式不恰當,無法將這些知識內化成自己的職能。

於是,向許多程式高手和學習專家請益後,唯有將這些知識反覆的在腦袋中重現,搭配運動,才是現階段最有效的吸收方式。因此,關於C程式語言的資料處理部分中,馬上就落實這套方法,透過 "學習 - 實作 - 回想"的循環方式,逐漸讓這些知識變成一種 "反射動作" 。

二、題目自測與筆記

1.何謂變數 ? 何謂常數 ?

變數 : 在程式設計中,由編譯器所配置一塊具有名稱的記憶體,用來儲存可變動的資料內容。

常數 : 程式在執行過程中,不能被改變的值。
宣告語法
const 資料型態 常數名稱 = 常數值
ex. const int radius=10;

#define 常數名稱 常數值
ex. #define PI 3.14159
 

2.簡述變數命名必須遵守哪些規則 ?

  • 取個比較有意義的名字。
  • 必須由英文字母、數字、下底線所組成。但開頭不能是數字和特殊字元
  • 不可以使用保留字。

3.請將整數值45以C中的八進位和十六進位表示 ?

八進位 : 055
十六進位 : 2d


4.字元資料型態在輸出入上有哪2種選擇 ? 

%c : 可直接輸出字元
%d : 輸出ASCII碼的整數值

5.如何在指定浮點常數值時,將數值轉換成float型態 ?

(float) 運算式或變數

注意事項 :
  • 包含型態名稱的小括號,絕對不可以省略
  • 指定運算子 " = "左邊的變數不能強制資料型態轉換

6.簡述巨集的功用?

巨集 (macro) ,又稱 "替代指令",主要功能是以簡單的名稱取代某些特定常數、字串或函數。不用加上 "=" 。

7.請說明以下跳脫字元的含意 ?

' \t '  : 水平跳格字元 (Horizontal Tab)
' \n ' : 換行字元 (New Line)
' \" ' :  顯示雙引號 (Double Quote)
' \' '  :  顯示單引號 (Single Quote)
' \\ '  :  顯示反斜線 (backslash)

8.請問以下程式碼中 i 與 j 的輸出結果為何 ? 原因為何 ?


輸出結果>>


如上圖所示,輸出結果,i = -2147483648,j = -32768
結果呈現負值,是因為發生了 "溢位" 的現象。

因為在此程式碼中,i 的資料型態宣告為 int,使用 4 Bytes 的記憶體空間,可表達值的範圍為 -2147483648 ~ 2147483647。j 的資料型態宣告為 int,使用 2 Bytes 的記憶體空間,可表達值的範圍為 -32768 ~ 32767。i 與 j 各加1,往右移位已經沒空間,並超出可表示的範圍,故會跳到左邊的最小位數,在此資料型態中也是負值的最小位數。因此,結果就如同上圖所示。

9.請敘述何謂 "signed" 與 "unsigned" ? 而這兩種資料型態又有何不同 ? 

加上 "signed",表示可儲存正值與負值的資料。
加上 "unsigned" ,表示只能儲存正值的資料,就是無號數。

---
參考資料 :










0 留言