Programming
[ 運算思維與C程式設計 ] 關於資料處理的那些必備觀念
<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" ,表示只能儲存正值的資料,就是無號數。
---
參考資料 :
- <運算思維與C程式設計> 陳德來 著。
0 留言