個人筆記:C語言程序
- 函數
- 語句
- 輸入輸出對象
- 標識符
- 關鍵字
函數
一個C語言源程序,是由一個或多個函數定義順序組成的,其中必須有一個函數名為main的主函數。C語言源程序中的函數是指完成特定數據處理任務、功能上獨立的一個程序段。任何一個函數定義都是由函數首部和函數體構成,函數體必須用大括號“{”和“}”括起來,函數體必須緊接在函數首部之后。函數體的成分是由0或多條變量組成的定義序列;1條或多條語句順序組成的語句序列。
函數定義=函數首部+函數體
int main(void)() //函數首部
{ //函數體
.......
return 0; //返回值
}
函數體的主要成分:變量定義序列+語句序列
int r=5;
int f=3;
int s; //變量定義序列
s=r*f //語句序列
語句
1. 表達式語句
表達式語句由表達式加上分號“;”,執行表達式語句就是計算表達式的值。
x=y+z;z=100 //賦值語句
y+z; //加法運算語句,但計算結果不能保留,無實際意義
i++; //先引用變量i,然后變量i進行自加1運算
++i; //變量i先進行自加1運算,然后對變量i進行引用
2. 函數調用語句
函數調用語句由函數名、實際參數加上分號“;”組成。執行函數語句就是調用函數體並把實際參數賦予函數定義中的形式參數,然后執行被調函數體中的語句,求取函數值。通過調用函數printf(),來實現輸出字符串的功能。
形式:函數名(實際參數表);
例:
printf("hello,yinuo!");
3. 控制語句
控制語句是由特定的語句定義符組成,使用控制語句可實現程序的各種結構方式,從而實現對程序流程的控制。
C語言的九種控制語句。可分為以下三類
1)條件判斷語句:if語句、switch語句。
2)循環執行語句:do...while語句、while語句、for語句。
3)轉向語句:break語句、goto語句(盡量少使用,不利於結構化程序設計)、continue語句、return語句。
4. 復合語句
把多個語句用括號“{}”括起來組成的一個語句稱復合語句,復合語句內的各條語句都必須以分號“;”結尾,在括號“}”外不能加分號。復合語句在程序中屬於一條語句,不能將它看為多條語句。
{
k=i+j;
a=b+c;
printf{"%d%d\n",k,a};
}
5. 空語句
空語句是由分號“;”組成,並且是什么也不執行的語句,在程序中空語句可用來作空循環體。
int x=4;
++x;
;
printf("%d",x)
輸入輸出對象
1. 格式化輸入函數
scenf()函數的作用是從輸入設備輸入若干個任意類型的數據。它的函數原型在頭文件<stdio.h>中。
一般形式:
scanf ("格式控制字符串",地址列表);
例如
scanf("%d %c",&a,&b);
該函數主要有如下兩個參數:
1).格式控制字符串:用來指定每個輸入項的輸入格式。格式控制字符串通常由“%”和格式字符組成,如%d、%c、%f等。它的作用是確定輸入數據的格式,格式說明都是由“%”字符開頭的。
常見的scan()函數的格式控制符:
| 格式控制符 | 字符含義 | 格式控制符 | 字符含義 |
|---|---|---|---|
| %d,%i | 輸入十進制帶符合整數 | %f,%e,%E,%g,%G | 輸入實數 |
| %o | 輸入八進制無符合整數 | %c | 輸入單個字符 |
| %x,%X | 輸入十六進制無符號整數 | %s | 輸入字符串 |
| %u | 輸入十進制無符號整數 |
2)地址列表:地址列表給出各變量的地址。地址是由地址運算符“&”后跟變量名組成的。例如,&a表示變量a在內存中的地址,其中&是取地址運算符,其作用是求變量的地址
2. 格式化輸出函數
printf()函數的作用是向終端輸出若干個任意類型的數據。它的函數原型在頭文件<stdio.h>中。
一般形式:
printf(格式控制字符串,輸出列表);
該函數主要有如下兩個參數:
1).格式控制串:用來指定每個輸出項的輸出格式,格式控制字符串由格式說明、轉義字符和普通字符組成。
普通字符:也稱為非格式說明符,按原樣輸出字符、
轉義字符:是以“ \ ”開頭的字符
格式說明:以“%”和格式字符組成
常見的printf()函數中使用的格式控制符:
| 格式控制符 | 字符含義 | 格式控制符 | 字符含義 |
|---|---|---|---|
| %d,%i | 輸出十進制帶符合整數,正數不帶符合 | %g,%G | 輸出%f或%e中寬度最短的單雙精度實數 |
| %o | 輸出八進制無符合整數,無前綴0 | %c | 輸出單個字符 |
| %x,%X | 輸出·十六進制無符號整數,無前綴0x | %s | 輸出字符串或字符數組 |
| %u | 輸出十進制無符號整數 | %p | 輸出指針 |
| %f | 輸出小數形式的實數 | %% | 輸出一個% |
| %e,%E | 輸出指數形式的單雙精度實數 |
2).輸出列表:是要輸出的各項數據,這些數據可以是常量、變量、函數或表達式,其具體類型由格式控制符決定。輸出列表的個數必須與格式控制字符串中規定的字符個數一樣多,各參數之間“,”分開,且順序一一對應。
3. 字符的輸入函數
getchar()函數是字符輸入函數,作用是從標准輸入設備上輸入一個字符,在同一個時間只能讀取一個單一的字符
使用語法:
getchar();
注意
1).使用gatchar()函數輸入時,都是轉換為ASCII碼值來存儲,所以getchar()函數讀取一個字符,返回的是一個整數
2).getchar()函數沒有參數,單括號不能省略。輸入數字也必須按字符處理。當輸入多個字符時,只能接收第一字符。
3).在程序中使用gatchar函數,必須在程序的開頭加上編譯預處理命令,即:#include<stdio.h>
在C程序中,通常把輸入的字符賦予一個字符變量,使其構成一個賦值語句,語句如下:
char x; //定義字符變量x
x = getchar(); //從鍵盤輸入一個字符,然后將字符的值賦給變量x
4. 字符的輸出函數
putchar()函數是字符輸出函數,作用是向標准輸出設備上輸出一個字符,同一時間內只能輸出一個單一的字符。
語法格式:
putchar(ch);
注意:
1).其中的ch可以是常量、變量、轉義字符或表達式等,其數據類型可以是字符型或整形,如果是整形數據,代表的是與一個字符相對應的ASCII碼值
2).在程序中使用putchar函數,必須在程序的開頭加上編譯預處理命令,即:#include<stdio.h>
3).putchar函數只能用於單個字符的輸出,且一次只能輸出一個字符
標識符
在程序中使用的變量名、函數名、標號等統稱為標識符,除庫函數的函數名由系統定義外,其余都是由用戶定義
命名必須遵循以下基本規則:
1.標識符只能是由英文字母“AZ,az”、數字“0~9”和下划線“_”組成的字符串 ,並且第一個字符必須是字母或下划線。
2.標識符不能是C語言的關鍵字
3.在標識符中,大小寫是有區別的。
4.標識符命名盡量有相應的意義,以便閱讀理解。
關鍵字
關鍵字是C程序中的保留字,在C語言的編寫中不允許標識符與關鍵字相同,ANSI C標准一共規定了32個關鍵字。
| 關鍵字 | 用途 | 說明 |
|---|---|---|
| auto | 存儲種類說明 | 用以說明局部變量,默認值為此 |
| break | 程序語句 | 退出最內層循環體 |
| case | 程序語句 | switch語句中的選擇項 |
| char | 數據類型說明 | 單字節整型數或字符型數據 |
| const | 存儲類型說明 | 在程序執行過程中不可更改的常數值 |
| continue | 程序語句 | 轉向下一次循環 |
| default | 程序語句 | switch語句中的失敗選擇項 |
| do | 程序語句 | 構成do...while循環結構 |
| double | 數據類型說明 | 雙精度浮點數 |
| else | 程序語句 | 構成if...eles選擇結構 |
| enum | 數據類型說明 | 枚舉 |
| exterm | 存儲類型說明 | 在其他程序模塊中說明了的全局變量 |
| float | 數據類型說明 | 單精度浮點數 |
| for | 程序語句 | 構成for循環 |
| goto | 程序語句 | 構成goto轉移結構 |
| if | 程序語句 | 構成if...else選擇循環 |
| int | 數據類型說明 | 基本型整數 |
| long | 數據類型說明 | 長整型數 |
| register | 存儲類型說明 | 使用CPU內部寄存的變量 |
| return | 程序語句 | 函數返回 |
| short | 數據類型說明 | 短整型數 |
| signed | 數據類型說明 | 有符號數,二進制數據的最高位為符號位 |
| sizeof | 運算符 | 計算表達式或數據類型的字節數 |
| static | 存儲類型說明 | 靜態變量 |
| struct | 數據類型說明 | 結構類型數據 |
| switch | 程序語句 | 構成switch選擇結構 |
| typedef | 數據類型說明 | 重新進行數據類型定義 |
| union | 數據類型說明 | 聯合類型數據 |
| unsigned | 數據類型說明 | 無符號數據 |
| void | 數據類型說明 | 無類型數據 |
| volatile | 數據類型說明 | 該變量在程序執行中可被隱含地改變 |
| while | 程序語句 | 構成while和do...while循環結構 |
