1. 程式人生 > >9月26日-高階語言程式設計-課程內容(5)

9月26日-高階語言程式設計-課程內容(5)

9月26日第四次上課記錄



1,程式設計補充

程式設計錯誤:

  1. 語法錯誤
  2. 執行錯誤
  3. 邏輯錯誤

除錯程式:

  • 單步追蹤:除錯工具逐句執行語句檢視結果。
  • 進入或跳過一個函式:可進入一個函式進行單步追蹤或跳過函式。
  • 設定斷點:可在特定位置設定斷點暫停程式。
  • 顯示變數值:除錯工具可顯示一些選定的變數的值,使用單步追蹤時這些值會不斷變化方便查詢bug。
  • 顯示呼叫棧:除錯工具跟蹤函式條用並列出執行中的函式。
  • 修改變數:除錯工具可以在除錯過程中修改變數。

2,邏輯運算

運算子 作用 運算數 結合性 優先順序
&& 邏輯與 雙目 左結合 5
ll 邏輯或 雙目 左結合 4
! 邏輯非 單目 右結合 14

C語言不能進行兩個以上的判斷,要用邏輯運算子來進行。

C語言中的短路原則:條件判斷從左到右,遇到能確定結果的條件,就不再繼續判斷。

3,選擇結構

  1. 單分支if

    語法格式:

if(表示式)
語句;


如果表示式成立(非0值),則執行語句。

  1. 雙分支if
    語法格式:

if(表示式)
語句1;
else
語句2;


  1. 巢狀if
    1)
    if(條件1)
    if(條件2)
    語句1;
    else
    語句2;
    else
    語句3;
    2)
    if(條件1)
    語句1;
    else if(條件2)
    else if(條件3)

    使用多個if和else時,else會匹配上一個未配對的if。
  2. switch語句
    語法格式:

switch(表示式)
{
case 常量1:語句或語句組1;
case 常量2:語句或語句組2;

case 常亮n:語句或語句組n;
default:語句或語句組n+1;
}


先判斷表示式,如果有符合的,就從第一個case開始往下執行全部,如果沒有就執行default。

  1. 條件運算子
    語法結構:

表示式1?表示式2:表示式3;


4,隨機數

rand函式會產生一個隨機數,如果種子不變,產生的隨機數就一樣。
srand函式可以用於改變隨機數種子:void srand(unsigned int seed)
為了保證每次的種子不同,可以使用系統時間作為隨機數的種子。time(0)包括在標頭檔案time.h中,rand和srand包含在標頭檔案stdlib.h中。

5,迴圈結構

  1. while語句
    語法結構:

while(表示式)
語句;


當表示式中為真時,執行後續語句,再次進入迴圈,如果表示式中為假,則結束迴圈。
迴圈體只能包含一條語句,當迴圈體需要更多的時候使用複合語句。
如果條件一直為真,會出現死迴圈。
while先判斷表示式,再執行語句,所以語句可能一次都不被執行。

  1. do-while語句
    語法結構:

do
{
語句;
}
while(表示式);


需要多條語句時,要用複合語句。
do-while先執行再判斷,所以至少會執行一次

  1. for語句
    語法結構:

for(進行初始化;控制迴圈條件;執行完後計算)
語句;


需要多條語句時,要用複合語句。
for語句時先判斷再執行,所以可能一次也不執行。

  1. 迴圈語句使用要點:
    1)如果迴圈次數已經知道,使用for。
    2)迴圈次數不確定使用while。
    3)如果需要檢查迴圈前執行一次,用do-while。

  2. 改變迴圈流程的方法
    1)break語句
    break語句可以用於跳出switch,while,do-while和for。它用於結束直接包含它的最內層的迴圈語句。
    2)continue語句
    continue語句可以用於結束switch,while,do-while和for的本次執行,轉去再次判定迴圈條件

  3. goto語句
    goto也稱為無條件轉移語句,語法格式


goto 語句標號;


語句標號的作用類似識別符號,標號後加冒號,用於標識語句。
因為goto容易造成程式混亂,所以一般不推薦使用。

6,陣列

陣列是一組有序資料的集合,這組陣列擁有同一個名字,即陣列名。陣列中的一個數據稱為陣列元素,每個元素都有一個唯一的編號,稱為下標。每個陣列元素的資料型別都是相同的,不能錯誤擺放。
語法格式


資料型別說明符 陣列名[整型表示式]


1)資料型別說明符制定了陣列中存放資料的資料型別。
2)陣列名的命名規則和變數一樣。
3)陣列名後面方括號中說明了可以存放的元素個數。
4)資料存放超出空間並不會報警,但是會對儲存造成影響。這種行為稱為越界,C不能識別。
引用陣列時,語法格式


陣列名[下標]


1)下標如果是浮點數系統會去掉小數部分。
2)下標範圍要合理,超出稱為下標越界。
3)一個數組元素的使用方式與同類型的變數一樣。
陣列的初始化,語法格式


int a [10]={1,2,3,4,5,6,7,8,9,10}


上面是給全部元素賦值,也可以只輸入一部分,給前幾個賦值。對陣列初始化的時候,可以不用寫下標,系統會根據所需要的元素自動分配空間