實驗五報告

2022-06-04 17:21:12 字數 4348 閱讀 2034

一、實驗結論:

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: 實參—陣列名,形參—陣列名 

void f( int , int

);int

main()

void f(int x, int

n )

case2: 實參—陣列名,形參——指標變數

void f (int *, int

);int

main()

void f (int *p, int

n )

case3: 實參—指標變數,形參—陣列名

void f( int , int

);int

main()

void f(int x, int

n )

case4: 實參—指標變數,形參—指標變數

void f( int , int

);int

main()

void f(int *q, int

n )

2.常用指標定義小結

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,點選可以短暫地顯示我的學號資訊 首先在封面檔案裡我...