1. 程式人生 > >學習筆記-C語言1(程式設計入門)

學習筆記-C語言1(程式設計入門)

C語言和C++是作為一名程式設計師必備技能,非科班出身的我對這些語言一直是一知半解,後來更是直接使用簡單易上手的python,matlab語言。今天終於開始系統的學習了C了,記錄一些學習筆記,方便後面檢視,如有不妥,還請幫忙指正。

1. 檔案開頭

檔案開頭要加入:# include<stdio.h>,表示引入標準的C語言庫,如果需要其他的庫,則同樣這樣新增,如: # include<math.h>。程式的入口為main函式,寫法如下:

int main(){

    ...
 
    return 0;

}

2. 輸入輸出

輸入用scanf,變數傳入要用:&;輸出用printf,直接用變數名。如:

scanf('hello,world! I am %d years old', &a)

printf('hello,world! I am %d years old', a)

3. 定義常量

定義常量有兩種方式。兩者子在使用時候沒有什麼不同,只不過早先時候為了節省記憶體,常用define(define其實就是預處理,只有在程式編譯的時候才處理,這樣記憶體的使用較低)。現在則更多使用const(因為預處理其實就是巨集,當程式比較大的時候經常會出現各種奇怪的問題)

  • #define Pi 3.1415926
  • const double Pi=3.1415926

4.  變數的型別和轉換說明符

 

5.  關係運算符和邏輯運算子及優先順序

6. if 語句、switch語句、for 語句

if語句:

if(表示式){

    語句1;
    語句2;
    ...
    語句n;

}

else{

    語句;
}

switch語句:

switch(integer_expression){
case constant_1:
    ...
    break;
case constant_2:
    ...
    break;
    ...    
default:
    ...
    break;
}

for 語句:

for迴圈中的(迴圈開始時執行1次,迴圈條件,每次迴圈結束後執行),均可以不寫在(;;)中。

例如:

#include<stdio.h>
int main(){
    //方法1
    int sum;
    int i;
    sum=o;
    for(i=1;i<=100;i++){
        sum=sum+i;
    }
    printf("sum= %d",sum);
    
    //方法2
    sum=0;
    i=1;
    for(;i<=100;i++){
        sum=sum+i;
    } 
    printf("sum= %d",sum);

    //方法3
    sum=0;
    i=1;
    for(;i<=100;){
        sum=sum+i;
        i++;
    }
    printf("sum= %d",sum);

    //方法4
    sum=0;
    i=1;
    for(;;){
        sum=sum+i;
        i++;
        if (i>100){            
            break;
        }
    }
    printf("sum= %d",sum);

    return 0
}

7.遞增與遞減雲演算法

a++: 自加運算後算,再算表示式的值

++a:自加運算先算,再算表示式的值

8. 演算法設計入門

  • 有窮性:演算法必須能在執行有限個步驟之後終止。
  • 確切性:演算法的每一步驟必須有確切的定義。
  • 輸入項:如鍵盤輸入、檔案輸入的資料或演算法本身定義的初始條件,以刻畫運算物件的初始情況
  • 輸出項:即程式對於輸入資料加工後的結果,沒有輸出的演算法是毫無意義的
  • 可行性:演算法中執行的任何步驟都是可執行的操作步,即每個計算步都可以在有限時間內完成

9. 哥德巴赫猜想