Oracle閃回原理測試(三)(r12筆記第16天)
阿新 • • 發佈:2022-05-05
1,程式
(1)程式基本概念
- C語言程式至少由一個 main() 函式組成
- main() 函式是執行 C語言程式的人口函式,程式碼從這裡開始執行
- 如無特殊情況,一般是從上到下依次執行 C語言程式的語句
- main() 函式執行完畢,意味著整個 C語言程式執行完畢
(2)程式基本結構
- C語言程式由一個或多個函式組成,其中至少有一個 main() 函式
- 函式由簡單語句和複合語句構成
- 複合語句由若干個簡單語句組成,例如 if 語句和 while 語句都是複合語句
- 使用關鍵字可以組成語句
- 表示式加上分號 ";" 可以組成語句
- 運算子和運算元可以組成表示式
(3)程式程式碼可讀性
- 水平空白 適當使用空格(用空格鍵或 Tab鍵)以提高程式碼的可讀性
- 垂直空白 適當加入空行(用 Enter鍵)以提高程式碼的可讀性
2,關鍵字
- break 結束迴圈語句或 switch...case 分支結構
- case 可以實現 switch...case 多分支結構
- continue 提前進入下一次迴圈
- default switch...case 多分支結構的 default 部分
- do 可以實現 do...while 迴圈結構
- else 可以實現 if...else 分支結構
- for 可以實現 for 迴圈結構
- if 可以實現 if...else 分支結構
- return 結束一個函式並可以附帶一個整數作為函式的返回值(?)
- sizeof 求出資料型別或變數的儲存空間大小
- struct 定義結構體型別
- switch 可以實現 switch...case 多分支結構
- typedef 定義資料型別的同義詞(別名)
- unsigned 無符號數
- void void 型別,表示通用型別
- while 可以實現 while 迴圈結構
3,基本資料型別
- char 字元型別,本質上是整數型別,sizeof(char) 等於 1
- short 短整數型別,short int 的簡寫,sizeof(short) 等於 2
- int 整數型別,sizeof(int) 等於 2 或 4
- long 長整數型別,long int 的簡寫,sizeof(long) 等於 4
- long long 長整數型別,long long int 的簡寫,sizeof(long long) 等於 8
- float 單精度浮點數型別,sizeof(float) 等於 4
- double 雙精度浮點數型別,sizeof(double) 等於 8
4,ASCII字符集
- 使用7位二進位制編碼,一共有128個字元(95個“可顯示字元”和33個“控制字元”)
5,字串
- 以字元 '\0' (ASCII編號為0的字元)為結束標記的 char型別的陣列
- 藉助字元陣列來實現,沒有專門的關鍵字
6,變數
(1)定義變數
資料型別 變數名;
(2)定義變數並初始化
資料型別 變數名 = 初始值;
(3)一次定義多個變數的格式
資料型別 變數名1,變數名2,······,變數名n;
(4)變數名字的基本要求
- 變數名字的第一字元必須是字母或者下劃線 "_" ,第二個字元起可以是數字、字母或者下劃線
- 變數名是區分大小寫字母的,例如 y 和 Y 是兩個不同的名字
- 關鍵字不能用於變數名
- 變數名最好能表達出變數的功能用途,做到 “見名知意”
- 變數一般是描述事物的名稱,因此變數的名字建議使用 “名詞” 或 “定語_名詞” 的形式命名
7,運算子
(1)算數運算子
- + 加法
- - 減法
- * 乘法
- / 除法(兩個整數相除,結果是整數)
- % 求餘數
(2)關係運算符
- > 大於
- < 小於
- == 等於
- >= 大於或等於
- <= 小於或等於
- != 不等於
(3)邏輯運算子
- && 邏輯與 /且
- || 邏輯或
- ! 邏輯非,屬於一元運算子
(4)賦值運算子
- = 把等號右邊的值儲存到等號左邊的變數
- += 加賦值運算子
(5)成員運算子
- . 結構成員運算子
- -> 間接成員運算子
(6)一元(單目)/三元(三目)運算子
- & 求出變數在記憶體中的地址,屬於一元運算子
- * 引用指標所指物件的內容,屬於一元運算子
- ++ 自增 1運算子,屬於一元運算子
- -- 自減 1運算子,屬於一元運算子
- - 相反數運算子,屬於一元運算子
- ? : 條件運算子,屬於三元運算子
8,運算子優先順序
分為15個級別
9,分支結構
- if 語句的最簡形式
if( 表示式 ){ 語句 }
- if 語句的完整形式
if( 表示式 ){ 語句 1 }else{ 語句 2 }
- if 語句的擴充套件形式
if( 表示式1 ){ 語句 1 }else if( 表示式2 ){ 語句 2 }else if( 表示式n ){ 語句 n }else{ 語句 n+1 }
- switch...case 語句
switch( 表示式 ){ case 整數 1 : 語句 1 break; case 整數 2 : 語句 2 break; case 整數 n : 語句 n break; default : 語句 n+1 }
10,迴圈結構
- while 語句
while( 表示式 ){ 語句 }
- for 語句
for( 表示式1; 表示式2; 表示式3 ){ 語句 }
- do...while 語句
do { 語句 } while( 表示式 );
11,函式
- 函式定義
資料型別 函式名字 ( 資料型別1 形式引數1, 資料型別2 形式引數2, ······) { // 函式體 }
- 函式呼叫
某個變數 = 函式名字( 實際引數1, 實際引數2, ······ );
函式名字( 實際引數1, 實際引數2, ······ );
- 函式原型宣告
資料型別 函式名字 ( 資料型別1 形式引數1, 資料型別2 形式引數2, ······);
12,陣列
- 定義一維陣列
資料型別 陣列名 [ 元素個數 n ];
- 定義一維陣列並初始化
資料型別 陣列名 [ 元素個數 n ] = { 第0個元素, 第1個元素, ······, 第k個元素 };
- 訪問一維陣列的元素
陣列名[ 下標i ]
- 定義二維陣列
資料型別 陣列名 [ 行數量R ][ 列數量C ];
- 定義二維陣列並初始化
資料型別 陣列名 [ 行數量R ][ 列數量C ] = {
{ 第0行0列元素, 第0行1列元素, ······, 第0行n列元素 },
{ 第1行0列元素, 第1行1列元素, ······, 第1行n列元素 },
······
{ 第m行0列元素, 第m行1列元素, ······, 第m行n列元素 }
};
- 訪問二維陣列的元素
陣列名[ 行下標 ][ 列下標 ]
- 變長陣列
使用整數型別的變數定義陣列的大小,並在程式執行時才確定陣列的大小
13,結構體
- 定義結構體型別
struct 結構體名字 { 第1個成員; 第2個成員; ······ 第n個成員; }
- 定義結構體變數
struct 結構體名字 變數名字;
- 定義結構體變數並初始化
struct 結構體名字 變數名字 = { 資料1, 資料2, ······, 資料k };
- 訪問結構體變數的成員
結構體變數名字.成員
- 訪問結構體指標的成員
( * 指向結構變數的指標名字 ).成員
指向結構變數的指標名字 -> 成員
14,指標
- 定義指標
資料型別 * 指標變數 ;
- 定義指標並初始化
資料型別 * 指標變數 =& 其他變數;
- 引用指標所指向物件的內容
*指標變數
15,標準庫函式
(1)< stdio.h >
- fopen() 開啟檔案
- fclose() 關閉檔案
- printf() 輸出資料到螢幕中
- fprintf() 輸出資料到文字檔案中
- sprintf() 輸出資料到字元陣列中
- scanf() 從鍵盤輸入資料
- fscanf() 從文字檔案輸入資料
- fwrite() 輸出資料到二進位制檔案中
- fread() 從二進位制檔案輸入資料
- feof() 檢測是否到達檔案末尾
- fseek() 移動檔案的讀寫 “游標”
(2)< string.h >
- strcmp() 比較兩個字串是否相等
- strcpy() 複製字串
(3)< math.h >
- abs() 求絕對值
- sqrt() 求算術平方根
(4)< stdlib.h >
- rand() 產生隨機數
- srand() 設定隨機數種子
- malloc() 分配記憶體空間
- free() 釋放記憶體空間
- exit() 結束整個程式
(5)< time.h >
- time() 獲取計算機當前的時間
16,函式 printf() 的格式說明符
- %c 輸出 ASCII 碼字元
- %d 以十進位制形式輸出 int 型別的整數
- %lld 以十進位制形式輸出 long long 型別的整數
- %Md 以十進位制形式輸出 int 型別的整數,要求輸出 M 位寬度
- %0Md 以 M 位十進位制形式輸出 int 型別的整數,若位數不足則使用 0 補足
- %o 以八進位制形式輸出 int 型別的整數
- %x 以十六進位制形式輸出 int 型別的整數,字母 a~e 使用小寫形式
- %X 以十六進位制形式輸出 int 型別的整數,字母 A~E 使用大寫形式
- %p 按照 %X的格式輸出十六進位制形式的地址,並使用前導 0 補足不足的位數
- %f 輸出 float 和 double 型別的浮點數
- %.Nf 輸出 float 和 double 型別的浮點數,要求輸出 N 位小數
- %M.Nf 輸出 float 和 double 型別的浮點數,要求輸出 M 位總寬度以及 N 位小數
- %s 輸出字串
- %Ms 輸出字串,並指定寬度為 M 個字元,若寬度不足,則使用空格補足
- %% 輸出一個百分號 “%”
17,函式 scanf() 的格式說明符
- %c 輸入 ASCII 碼字元
- %d 以十進位制形式輸入 int 型別的整數
- %lld 以十進位制形式輸入 long long 型別的整數
- %o 以八進位制形式輸入 int 型別的整數
- %x 以十六進位制形式輸入 int 型別的整數
- %f 輸入 float 型別的浮點數
- %lf 輸入 double 型別的浮點數
- %s 輸入字串
- %Ms 輸入字串,並指定最多輸入 M 個字元
18,換碼序列
- \n 換行符,即 Enter 鍵
- \t 製表符,即 Tab 鍵,可以實現每列資料左對齊
19,預編譯指令
- # include 引用一個檔案
- # define 定義巨集替換
相關/轉載:
1,《C語言程式設計案例教程》附錄 知識點彙總