C語言實訓指導第8講

2022-03-11 13:36:11 字數 1733 閱讀 2865

課程實訓指導

8.1 知識要點

1、總體要求

熟練掌握一維陣列的定義、賦值、輸出等基本操作。;

熟練掌握掌用的演算法,如氣泡排序、選擇排序、折半查詢等演算法;

2、具體要求

(a) 具體要求1

陣列的概念:陣列是相同型別資料的有序集合。

特點: 陣列的長度確定性;

元素相同型別性。

陣列名是陣列的首位址。

定義一維陣列的引用:

注意以下兩種情況:

(b)具體要求2

冒泡演算法

演算法思想:每一次排序過程,通過相鄰元素的交換,將當前沒有排好序中的最大(小)移到陣列的最右(左)端。

氣泡排序的過程(以對陣列a[5]=從小到大進行排序為例)

選擇排序演算法。

演算法思想:每一次排序過程,獲取當前沒有排好序中的最大(小)的元素和陣列最右(左)端的元素交換,迴圈這個過程即可實現對整個陣列排序。

選擇排序的過程(以對陣列a[5]=從小到大進行排序為例)

第一輪:從a[1] 到a[4]中找到值最小的數,然後把這個數與a[0]交換,這樣最小的數就放到了a[0]位置。

第二輪:從a[2]到a[3]中找到值最小的數,然後把這個數與a[1]交換,這樣次小的數就放到了a[1]位置。

第三輪:從a[3]到a[4]中找到值最小的數,然後把這個數與a[2]交換,這樣次小的數就放到了a[2]位置。

第四輪:從a[4]到a[4]中找到值最小的數,然後把這個數與a[3]交換,這樣次小的數就放到了a[3]位置。

折半查詢演算法(適用於已經排好序的陣列)。

演算法思想:將需要查詢的數與中指標比較,如果被查數大,則將頭指標移到目前中指標,向後折半,繼續迴圈;如果被查數小,則將尾指標移到目前中指標,向前折半,繼續迴圈;如果被查數與中指標相等,則找到,輸出並跳出迴圈;如果找不到,則頭會到尾的後面,所以迴圈的條件是頭<=尾。

8.2 基礎技能訓練

1、下面的程式完成如下功能:乙個班級有10名同學,統計這10名同學的數學成績平均分(成績有鍵盤錄入)

2、下面的程式完成如下功能:乙個班級有10名同學,統計這10名同學的數學成績平均分(成績有鍵盤錄入)

請仔細閱讀程式,找出程式中的錯誤並改正,該程式中共有1個錯誤,該錯誤為語法錯誤。

3、下面的程式完成如下功能::乙個班級有10名同學,統計這10名同學的數學成績的最高分和最低分

請仔細閱讀程式,找出程式中的錯誤並改正,該程式中共有2個錯誤,其中乙個為語法錯誤;乙個為邏輯錯誤。

5、程式設計實現:將陣列a[5]=從小到大進行排序。

要求:使用兩種演算法分別實現以上要求。(氣泡排序、選擇排序)

6、程式設計實現:在陣列a[5]=中找到88所在的位置

要求:從順序查詢、折半查詢演算法中任選一種,程式設計實現以上功能。

8.3 拓展訓練

1、掌握以下常用的演算法:

1)氣泡排序法

2)選擇排序法

3)折半查詢

2、掌握一維陣列的用法。

8.4 作業及要求

1、fibonacci數列 ,f1=1,f2=1,fn=fn-1+fn-2(n>=3)

輸出fibonacci數列的前40項。

提示:定義乙個陣列儲存fibonacci數列 ,迴圈賦初值,然後迴圈輸出25分)

2、從鍵盤接受10個學生的英語成績,並使用氣泡排序從高到低進行排序25分)

3、程式設計實現將陣列a[8]=迴圈右移一位,並輸出25分)

4、程式設計實現從陣列a[8]=刪除下標為3的元素,並輸出刪除後的陣列。 (25分)

C語言實訓指導第6講

課程實訓指導 6 1 知識要點 1 break 用於跳出switch語句或迴圈語句 只能跳出其所在的那一層迴圈 2 continue 結束本次迴圈,跳過迴圈體中剩餘的語句,直接執行下1次迴圈。2 break continue 語句的區別 break是結束所有迴圈,跳出到迴圈體的外面 continue...

C語言實訓報告

程式清單 include include include int a 錄入的人數 int j 新增的人數 int pxh 按學號排序 int cj 按成績排序 int cxh 按學號查詢 int nam 按姓名查詢 struct student struct student stu 排序時用到的中間...

C語言實訓報告

hunan university 程式設計訓練 報告 學生姓名黃文倩 學生學號201435010117 專業班級計科1402 指導老師尹庚 2015 年 9 月 6 日 目錄題1 字母排列 id 1013 2 一 問題描述 2 二 問題分析 2 三 演算法分析 2 四 詳細設計 從演算法到程式 2 ...