一、實驗結論:
1. 二分查詢:
補足程式ex1_1.cpp
//練習:使用二分查詢,在一組有序元素中查詢資料項
//形參是陣列,實參是陣列名
#include const
int n=5
;int binarysearch(int x, int n, int
item);
intmain() ;
inti,index, key;
printf(
"陣列a中的資料:\n");
for(i=0;i)
printf(
"%d
",a[i]);
printf("\n
");printf(
"輸入待查詢的資料項: ");
scanf("%d
", &key);
//呼叫函式binarysearch()在陣列a中查詢指定資料項item,並返回查詢結果給index
//補足**①
//×××
index=binarysearch(a,n,key);
if(index>=0
) printf(
"%d在陣列中,下標為%d\n
", key, index);
else
printf(
"%d不在陣列中\n
", key);
return0;
}//函式功能描述:
//使用二分查詢演算法在陣列x中查詢特定值item,陣列x大小為n
//如果找到,返回其下標
//如果沒找到,返回-1
補足程式ex1_2.cpp
//練習:使用二分查詢,在一組有序元素中查詢資料項
//形參是指標變數,實參是陣列名
#include const
int n=5
;int binarysearch(int *x, int n, int
item);
intmain() ;
inti,index, key;
printf(
"陣列a中的資料:\n");
for(i=0;i)
printf(
"%d
",a[i]);
printf("\n
");printf(
"輸入待查詢的資料項: ");
scanf("%d
", &key);
//呼叫函式binarysearch()在陣列a中查詢指定資料項item,並返回查詢結果
//補足**①
//×××
index=binarysearch(a, n, key);
if(index>=0
) printf(
"%d在陣列中,下標為%d\n
", key, index);
else
printf(
"%d不在陣列中\n
", key);
return0;
}//函式功能描述:
//使用二分查詢演算法在x指向的資料項開始的n個資料中,查詢item
//如果找到,返回其位置
//如果沒找到,返回-1
2. 選擇法排序
補足程式ex2_2.cpp
//練習:使用選擇法對字串按字典序排序
#include #include
void selectsort(char str[20], int n ); //
函式宣告,形參str是二維陣列名
intmain() ;
inti;
printf(
"輸出初始名單:\n");
for(i=0; i<6; i++)
printf(
"%s\n
", name[i]);
selectsort(name,
6); //
呼叫選擇法對name陣列中的字串排序
printf(
"按字典序輸出名單:\n");
for(i=0; i<6; i++)
printf(
"%s\n
", name[i]);
return0;
} //
函式定義
//函式功能描述:使用選擇法對二維陣列str中的n個字串按字典序排序
3. 用指標處理字串
練習2(黃色為修改部分)
//用指標變數處理字串練習2
//刪除中間和末尾的* (即除了前導*,刪除字串中其它全部*)
#include void delstarbutprefix(char ); //
函式宣告(函式宣告中可以省略陣列名不寫)
intmain()
//函式定義
//函式功能描述
//刪除字元陣列s中除了前導*以外的所有*(即刪除字串中間和末尾出現的*)
void delstarbutprefix(char
s)
//從p指向的字元開始,把遇到的*刪除
while(*p)
else
p++;
//開始不太懂p++不在if裡面 就分開寫了
}
s[i] = '
\0'; //
*p=0是就結束迴圈了 s[i]沒有被賦結束符號
練習1、3未改動
二、實驗總結:
1.陣列名作為引數 vs. 指標變數作為引數
在形參、實參寫法
陣列名作為函式引數,傳遞的值是位址。
case1: 實參—陣列名,形參—陣列名
…case2: 實參—陣列名,形參——指標變數void f( int , int
);int
main()
void f(int x, int
n )
…case3: 實參—指標變數,形參—陣列名void f (int *, int
);int
main()
void f (int *p, int
n )
…case4: 實參—指標變數,形參—指標變數void f( int , int
);int
main()
void f(int x, int
n )
…2.常用指標定義小結void f( int , int
);int
main()
void f(int *q, int
n )
3.使用選擇法對字串排序時注意事項:
注意字串的比較和賦值,不能直接使用關係運算子和賦值運算子,要借助字串處理函式。
4.使用指標變數對字串進行處理
實驗五報告
實驗任務一 在成功彙編 連線程式後,使用debug調節 進行反彙編 然後執行程式,得到 實驗結果相同 實驗任務二 與一相似 除錯 反彙編,然後執行 實驗結果相同 實驗任務三 步驟大致同實驗一,結果如圖 實驗任務四 只有實驗三可以正確執行,因為只有三的開頭就是命令段 實驗任務五 源程式為 彙編連線後,...
高軟實驗五報告
網易雲課堂暱稱 軟體工程 c編碼實踐篇 mooc課程作業 鄔凱 sa17225394 一 實驗要求 給lab5 1.tar.gz找bug,quit命令無法執行的bug 利用callback函式引數使linktable的查詢介面更加通用 注意介面的資訊隱藏 二 實驗過程 1.修改lab5.1中的bug...
實驗五實驗報告
系統架構圖 首先我在我的電腦裡建立了有名稱要求的資料夾,然後開啟android studio clone了我們的小組專案。此處因為已經clone過了,所以無法再把這個專案clone進去 進行編譯,執行,測試均正常 我在遊戲主介面載入了乙個toast,點選可以短暫地顯示我的學號資訊 首先在封面檔案裡我...