1.1 計算機與程式語言
- 設計演算法 -> 編寫程式 -> 計算機執行
- 程式執行的兩種方式
1.解釋:藉助一個程式(直譯器),那個程式能試圖理解你的程式,然後按照你的要求讓計算機執行
2.編譯:藉助一個程式(編譯器),把你的程式翻譯成機器語言,然後讓計算機執行
程式語言本身沒有解釋型和編譯型之分,任何一段程式既可以解釋執行,也可以編譯執行
1.2 C語言
- C語言標準:C89 -> C95 -> C99 -> C11 -> C17
2.1 變數
- 整數的運算結果還是整數
- 整數int的輸入輸出:printf("%d",xxx);scanf("%d",&xxx);
- 浮點數double的輸入輸出:printf("%f",xxx);scanf("%lf",&xxx);
2.2 表示式
- 程式就是資料加計算
- 賦值運算也是有結果的:a=6表示a被賦予了6這個值,同時也表示a=6這個表示式本身的運算結果為6
- 賦值運算是自右向左結合的:a=b=6等價於a=(b=6),a和b的值都為6
3.1 判斷
- 關係運算的結果只有0和1
- 所有關係運算子的優先順序低於算數運算子,但是高於賦值運算子
3.2 分支
- if語句只要求()裡的值是零或非零
- switch語句的控制表示式只能是整數型的結果
4.1 迴圈
- 迴圈體內要有改變條件的機會
4.2 迴圈應用
- x%n的結果是[0,n-1]的一個整數
- 對整數做%10的操作,就得到了它的個位數;對整數做/10的操作,就去掉了它的個位數
5.3 迴圈應用
- 求兩個數的最大公約數:輾轉相除法(兩個整數的最大公約數等於其中較小那個數和兩數相除的餘數的最大公約數)